无法在 php 上写入文件

无法在 php 上写入文件

我试图在 /tmp 目录中创建文件但无法。它甚至不允许我在我所在的同一目录(/var/www/html)中创建文件。我相信我的 php.ini 上没有正确的设置,但我不知道需要更改什么才能使其正常工作。

我的操作系统是 CentOS7,我正在使用 php 5.4.16 运行 Apache。我确实对 /var/www/html 进行了读/写操作,并且用户/组设置为 apache。下面只是编写不起作用的文件的通用代码,我不断收到“无法打开文件”

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
fclose($myfile);

答案1

首先,您没有为 newfile.txt 指定 /tmp 的路径,那么它如何知道将其写入何处?

第二件事是,CentOS 7 使用 systemd,如果您签入文件 /etc/systemd/system/multi-user.target.wants/httpd.conf

你会看到这条线

PrivateTmp=true

这意味着您的文件可能被写入(或将被)写入目录 /tmp/systemd-private... 或类似的目录中。

如果你不太关心这个,你可以将其更改为 false 并重新加载

systemctl daemon-reload 然后您可能需要重新启动 httpd。

相关内容