我有一个可以写入文件的 php 脚本。但是当我尝试实际写入文件时,权限被拒绝。如何知道需要将哪个用户名添加到文件权限中才能让 php 写入文件?
答案1
我怎样才能知道需要将什么用户名添加到文件权限中以便 php 可以写入它?
ps axu|grep apache|grep -v grep
答案2
无论文件是什么,或者目录是什么,如果 apache 需要写入它,它就需要由apache
、httpd
、www-data
或在您的服务器上运行 apache 的用户拥有。您在回复中说它是www-data
,所以作为 root ,您应该chown www-data filename
更改所有权。
我强烈建议不要将权限更改为 777,因为在您的服务器上拥有全世界可读/可写的文件和目录可能会带来一些安全风险。
最后,我会将您的脚本配置为写入设置路径,然后将该路径的所有权更改为,以便www-data
将来可以在需要时在那里创建文件,而无需您的交互。
这也带来了自身的风险,因为受到感染的脚本可以从该目录中写入并可能执行它想要的任何内容。
尽管这可能很麻烦,但逐个文件地进行操作风险较小。
答案3
我倾向于将文件的 CHMOD 改为 777,假设您运行的是 Unix 平台。这可能不是最安全的方法,但必须能够可靠地完成工作。不过我相信其他人会有更好的解决方案!