php - 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 之上,但没有用。
解决方案
我的建议是使用 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 类型文件。这些可以确定错误报告行为,维护不同的数据库连接,以及其他任何依赖于应用程序环境的东西。
推荐阅读
- java - 在 Esper 中从 CSV 读取事件
- python - 我的 CI 作业以 root 身份创建 __pycache__,无法在下次运行时清理工作区
- ios - 无法使用 CGRect 更改 CollectionView 框架
- typescript - 打字稿重复 T 扩展 X 可能很麻烦,它们是更好的方法吗?
- latex - bookdown 的数学渲染下降了吗?
- php - while循环获得第二个值而不是第一个值?PHP MSQL SP FPDF
- android - 输入内容后编辑文本失去焦点
- python - 根据时差计算一天是否已经过去,如果有,则插入更新的日期
- javascript - Javascript - 从一个 switch 语句案例到另一个 switch 语句
- apache-spark-sql - 如何将 Databricks 中的 VALUES 插入表中