首页 > 解决方案 > PHP 错误日志级别控制:htaccess vs php.ini vs code 和 virtualhost

问题描述

我的 WAMP 本地服务器中有一个虚拟主机,我在其中设置了我的日志文件。

我想将我的 PHP 日志错误级别更改为仅警告和错误。

最好的方法应该是.htaccess,我试过这个解决方案:

如何在 .htaccess 文件中禁用 PHP 中的通知和警告?

不工作(也尝试过其他人)。

最后转到 php.ini 文件,但选项不太灵活。

1) 此级别错误指令的优先级是什么?(php.ini vs htaccess vs code)我猜那个顺序?

2) 为什么不在 .htaccess 中工作?我只是将它设置在 .htaccess 之上,但没有用。

标签: php.htaccessinierror-logging

解决方案


我的建议是使用 httpd环境变量

这可以作为一个标志来通知您的 Web 应用程序有关环境的信息。假设您有一个白标产品,例如在设置特定虚拟主机应使用的配置时,它可能很有用。

<VirtualHost *:80>
  DocumentRoot "/srv/www/foo/public"
  ServerName foo.com

  <Directory /srv/www/foo/public>

    # production | development | staging
    SetEnv APPLICATION_ENV development
    ...

然后在您的 PHP 代码中,您可以像这样访问它:

<?php
define('APPLICATION_ENV_LOCAL', 'local');
define('APPLICATION_ENV_DEVELOPMENT', 'development');
define('APPLICATION_ENV_STAGING', 'staging');
define('APPLICATION_ENV_PRODUCTION', 'production');

$app_env = (getenv('APPLICATION_ENV')) ? getenv('APPLICATION_ENV') : false;
if (empty($app_env) || ! in_array($app_env, array(APPLICATION_ENV_LOCAL, APPLICATION_ENV_DEVELOPMENT, APPLICATION_ENV_STAGING, APPLICATION_ENV_PRODUCTION))) {
    throw new Exception("APPLICATION ENV IS NOT SPECIFIED OR IS INVALID.");
}

我要做的是根据环境包含完全独立的配置/INI 类型文件。这些可以确定错误报告行为,维护不同的数据库连接,以及其他任何依赖于应用程序环境的东西。


推荐阅读