【问题标题】:Force defined php.ini log file强制定义 php.ini 日志文件
【发布时间】:2017-03-17 22:54:25
【问题描述】:

php.ini:

error_log = /var/log/php.log

在外壳上运行:

php@> error_log("test"); 
// WRITES TO /var/log/php.log

在 apache index.php 上运行:

error_log("test"); 
// WRITES to apache/error_log

Apache 2.4.6 / PHP 5.4.16

  • 我已经检查了替代的 php.ini 文件

  • 我需要的是控制它的 apache 指令,已经在手册页中查看过。

  • 已检查权限和文件所有权

【问题讨论】:

  • 他们使用不同的 php.ini 文件。可能是/etc/php5/cli 中的一个,/etc/php5/apache 中的另一个
  • 没有替代的 php.ini 文件,已经检查过了。
  • 所以phpinfo()里面的error_log;页面显示与php -i | grep error_log 命令的输出相同?
  • 我禁用了 phpinfo,但它只是启用了检查,它是一样的。 /var/log/httpd/php.log(我移动到 httpd 日志文件夹以检查它是否是来自 apache 的权限问题,但没有任何改变。);
  • 另请注意,php.ini 值可以在 Apache 配置中被覆盖。

标签: php apache lamp


【解决方案1】:

您可以直接从 PHP 代码设置此路径。例如:

ini_set("log_errors", 1);
ini_set("error_log",$_SERVER['DOCUMENT_ROOT']."/logs/php-error.log");

【讨论】:

  • 是的,我在另一个线程中看到了这个。我想知道发生了什么,我只在另一台服务器上使用了 error_log()。
  • 要找到真正的 php.ini 文件的路径,您可以使用 phpinfo() 函数
【解决方案2】:

我的新 vps 启用了 SELinux,所以我必须将此属性添加到文件中

sudo chcon -t httpd_log_t php.log

【讨论】:

    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2019-10-28
    相关资源
    最近更新 更多