首页 > 解决方案 > 写入日志文件错误 file_put_contents(/var/www/html/myproject/ulogs/my-log.log):无法打开流:权限被拒绝

问题描述

我继承了一个 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):无法打开流:第11行/var/www/html/myproject/app/lib/log_fns.php中的权限被拒绝

我已经拨打了 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 目录时可以看到的路径。

我已经尝试将 chmod ulogs 目录组合到 777 并将目录 chown 到 apache:apache 但仍然出现此错误。

有什么想法可以让我接下来看看或如何解决?

TIA

标签: phpapache

解决方案


运行此命令

sudo chmod 777 /var/www/html/myproject/ulogs/

通过这项工作,您file_put_contents可以在此目录中生成或编辑文件


推荐阅读