0

test.php 打开 test.txt 并写入它。它在一台托管服务器上运行良好。

将代码迁移到另一台主机后,test.php 现在无法写出 test.txt。错误显示:

Warning: fopen(/home/username/public_html/test.txt)
[function.fopen]: failed to open stream: Permission denied

仅当 test.txt 文件设置为 777 时才有效。在原始主机上,test.txt 设置为 755。

在这个新主机上允许 test.php 在没有 777 的情况下写入文件,我缺少什么?

此外,文件上传 PHP 脚本也不起作用。

4

1 回答 1

1

重要的不仅仅是权限,还有谁拥有这些文件。如果文件夹/文件由用于运行 Web 服务器的同一用户所有,则 755 就足够了。

直接写入 public_html 目录是一个巨大的安全风险。我建议创建一个子目录(可能最好在 public_html 之外)文件夹并赋予它适当的权限/所有权。

让运行 apache(或正在使用的任何 Web 服务器)的用户拥有的文件夹更安全——通常是 apache 或 www-data 之类的东西,而不是授予世界写入权限。

于 2013-02-19T22:39:06.533 回答