我正在build立我的网站,我需要移动一些文件。 我创build了一个简单的PHP脚本,涉及诸如mkdir(),copy()等东西,但我得到权限错误。
设置受影响的文件夹为777后,一切正常,但在我的旧网站上,我设置了755。
如果我在Plesk中的用户是Johnnie,并且该文件上的用户是Johnnie(并且该组是psacln),那么PHP脚本不能访问吗? 如果没有,我需要设置用户为我的浏览器能够移动文件?
你是指什么访问? – 查看文件属性; – 打开文件阅读; – 打开文件写入; – 打开文件进行读/写; – 打开文件执行。
请注意,PHP应用程序中的用户名与Unix用户不同,即使它们具有相同的名称。
请注意,apache / php运行的是Apache,www,www-data,nobody …用户。 这是在Apacheconfiguration中configuration的。 find这个:
egrep -r '^User|^Group' /etc/{apache*,http*}
在任何更改之前运行备份。
find你的用户和apache用户所属的公共组。 如果没有创build一个。
将DocumentRoot中的文件和文件夹组更改为以下组:
chown -R myuser:commongroup /var/www/
更改文件夹的SUID,以便新文件归该组所有:
find /var/www/ -type d -print0|xargs -0r chmod g+rxs chmod -R u+r,g+r,o= /var/www/
对于要写入PHP的文件夹和文件,请执行以下操作:
chmod g+w /var/www/folder/subfolder /var/www/folder/file.txt
如果你通过CGI或MOD-PHP使用PHP,而没有额外的补丁/模块来处理权限,那么你的PHP脚本可能正在执行与Web服务器的帐户。 这通常是www-data,nobody,或其他非root帐户。
您可能需要将运行Web服务器的用户添加到组中,或者创build一个包含Web服务器和其他需要访问的用户的组。