【发布时间】:2021-07-03 10:15:59
【问题描述】:
我继承了一个 PHP 应用程序,需要调查各种问题。我不是 PHP 程序员,所以请多多包涵。
我编写了一个将消息记录到自定义日志文件的函数。
<?php
function my_logger($log_msg)
{
error_log("USER INFO:::::",0);
error_log(get_current_user());
error_log(exec('whoami'));
file_put_contents('/var/www/html/myproject/ulogs/my-log.log', date('G:i:s') . ">>$ " . $log_msg . "\n", FILE_APPEND);
}
在出现大量 500 错误并且没有任何信息后,我发现以下行正在写入 error_log.log
PHP 警告: file_put_contents(/var/www/html/myproject/ulogs/my-log.log):未能 打开流:权限被拒绝 /var/www/html/myproject/app/lib/log_fns.php 在第 11 行
我已经拨打了 get_current_user 和 whoami 的电话,这表明我:
[07-Apr-2021 14:26:04 UTC] USER INFO:::: [07-Apr-2021 14:26:04 UTC] root [07-Apr-2021 14:26:04 UTC] apache
我现在从一个名为 http:///test_log.php 的简单 php 页面调用它:
<?php
require("/var/www/html/myproject/app/lib/log_fns.php");
//phpinfo();
my_logger("This is a test message from test_log.php");
?>
我尝试将文件 chmod 到 ./lib 目录中的 777,但仍然收到此错误。我已经硬编码了您在上面创建 ulogs 目录时可以看到的路径。
我尝试过将 ulogs 目录 chmod 到 777 并将目录 chown 到 apache:apache 的组合,但仍然出现此错误。
有什么想法可以让我看看下一步或如何解决?
TIA
【问题讨论】: