一尘不染

file_put_contents未创建txt文件

linux

当前,当浏览器浏览器浏览到网页时,我正在运行一个php脚本。我想做的是在脚本运行时编写一个存储变量的文本文件。文件夹的所有者是apache,但每个人都具有读写功能,严格出于测试目的。(我认为这可能是权限问题)服务器上启用了SELINUX,当我从控制台运行脚本时,它会在正确的目录中很好地创建文本文件。

file_put_contents("My working file location", $myString);

我正在使用此行尝试编写和创建文本文件,我知道我的文件位置可以正常运行,因为我可以在脱机模式下运行它并创建它,即IE通过控制台运行它。问题是我要编写的变量是通过HTTP
Post填充的,当我通过浏览器运行脚本时,或者当apache运行脚本时,它不会写入或创建文件。我该怎么做才能明智地访问写入/更改语法,以使该脚本写入此文本文件?


阅读 530

收藏
2020-06-07

共1个答案

一尘不染

您的问题很可能是由于apache没有权限写入您指定的文件位置。转到该目录,并使用以下ls命令检查权限和组所有权:

cd "My working file location"
ls -l .

输出中的三列显示目录的权限,所有者和组。它们很可能是由root拥有的,并且没有apache写目录的权限。

如果是这种情况,那么当您尝试创建文件时,您将在apache日志中看到一个错误。在浏览器中运行脚本时,尝试添加日志:

tail -f /var/log/apache2/error.log
2020-06-07