php - 写入日志文件错误 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
解决方案
运行此命令
sudo chmod 777 /var/www/html/myproject/ulogs/
通过这项工作,您file_put_contents
可以在此目录中生成或编辑文件
推荐阅读
- python-3.x - 当输入错误时,程序的第一部分不会使用户重新输入输入
- typescript - 为 TypeScript 文件禁用 ESLint
- python - 使用 tf.GradientTape() 训练逻辑回归无法收敛
- html - 如何将 HTML 代码与 CSS 等 Ext JS 代码分开?
- debugging - 如何在插入之前获取.ko模块的加载地址?
- node.js - rados_clone_range返回的-95错误码是什么意思?
- scala - 等到主管准备好再执行测试
- azure - 使用 Azure 通过 URL 呈现 MP3 文件
- django - Django 批准的评论
- php - 通过 PHP 脚本从目录中获取所有文件名