我试图通过我的Web应用程序上传图像到服务器上。 我发现父目录上的771权限在我的本地机器上是可以接受的。 但是,在Web服务器上,即使是777个目录也不允许我上传图片。
假设代码本身没有缺陷,这里可能会发生什么? 我注意到的一个区别是,即使通过目录层次结构追溯,这些文件在我的本地机器上属于(和部分组)'daniel',而'root'拥有它们在Web服务器上。 否则我看不出有什么不同。
如果需要,我可以填写任何其他细节。
这些查找命令应该做的伎俩:
假设你的Apache正在作为www-data用户运行。 也可能没有人。 这将解决所有权:
find / path / to / your / docroot! -user www-data -exec chown www-data:www-data {} \;
修复目录上的烫发:
find / path / to / your / docroot -type d! -perm 755 -exec chmod 755 {} \;
修复文件上的烫发
find / path / to / your / docroot -type f! -perm 644 -exec chmod 644 {} \;
Apache或httpd也必须是UID或GID。 并具有读取,写入和执行权限。
在Ubuntu上,Apache运行www-data用户/组
所以如果你chown -R www-data pic/dir
或chgrp -R www-data pic/dir
它应该工作。
如果你chgrp一定要在目录上至less使用775
,而chown你可以在目录上使用755
权限。