使error_log可以被apache读取

设置:CentOS 6.6,Apache 2.2.15,php 5.5.21

我正在build立一个php脚本,显示/var/log/httpd/error_log文件的内容。 不幸的是,这是行不通的。 错误消息指出:

第405行的/var/www/domain.com/tools/server-logs-viewer.php中的权限被拒绝

第405行: $f = fopen($filename, "rb");

我已经修改了文件,只是为了检查,仍然没有去。 所以我认为这个消息是指文件所有权。 日志文件由root:root拥有,而php脚本由apache:apache拥有。

我能做些什么来给apache足够的读取文件的权限,而不会影响错误报告过程?

我一直是年龄,我没有做任何事情在PHP中,但没有进一步的信息会有一些系统configuration元素和php.ini设置,我会检查:

日志文件的path

请确保运行apache的用户能够访问文件所在的目录。 这意味着它应该有r + x访问沿path的目录。

php.ini设置

请看看php的fopen手册 :

  • safe_mode:取决于你使用的版本(看起来它已经在5.4.0中被删除)
  • open_basedir:拒绝打开任何不在此树中的东西。

SELinux,AppArmor

你在运行SELinux还是AppArmor? 这可能会阻止Apache进程访问文件,尽pipe有权限。

最好的祝福