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脚本也不起作用。
答案 0 :(得分:1)
不仅是重要的权限,还有拥有文件的人。如果文件夹/文件由用于运行Web服务器的同一用户拥有,则755就足够了。
直接写入public_html目录存在巨大的安全风险。我建议创建一个子目录(可能最好在public_html之外)并为其提供适当的权限/所有权。
拥有运行apache的用户所拥有的文件夹(或者正在使用的任何Web服务器)更安全 - 通常类似于apache或www-data而不是给予世界写权限。