正如很多PHP服务器一样,您可能会认为会有更多关于这个主题的指南。
的快乐所有者。
乔喜欢乌本图的咖啡。Joe想要使用PHP构建一个网站。Joe get的数百个库试图设置Apache、PHP和MySQL。乔终于得到了PHP设置,因为日出把可怜的疲惫的乔击倒了。
Joe在PHP工作中醒来。乔开始写代码。Joe会得到PHP无法创建文件的错误。
这让乔很烦。
Joe天真地将/var/www目录指向0777。PHP工作,Joe很高兴。几分钟后,当PHP尝试编写另一个文件时,Joe也遇到了同样的问题。
乔意识到这很糟糕。
Joe发现了chown和一个名为www-data的组织。Joe反转他的CHMOD并将/var/www转换为www-data。但是,PHP仍然不能工作。PHP是无名小卒。
Joe回去为McDonalds工作,意识到编写PHP代码是不可能的。
发布于 2010-02-22 20:32:24
除非您的PHP进程正在创建/var/www中的每个文件,否则chown‘in /var/www到www-data是个坏主意。我打赌Joe已经在/var/www下创建了一个目录结构,他的PHP进程正在尝试将这些目录中的一个写到www-data以外的其他目录中。您应该只记录您需要写入的目录--其他目录最好保留为web服务器无法写入的内容。
发布于 2010-02-22 21:13:14
Nicholas看到Joe的查询,并建议创建一个PHP可以写入的单独目录。他指出,如果Joe不打算让Apache直接从它提供文件,那么这个目录就不应该在Apache服务的任何地方。
他还注意到,在基于Debian的发行版(如Ubuntu (以及PHP) )中,几乎总是以www-data的形式运行,并指出,如果在Apache下运行的PHP不能写入该组可写的目录,那么在某个地方发生了一些奇怪的事情。
在重新阅读时,Nicholas还建议让Joe希望写入的文件夹属于www-data (chgrp www-data $folder)组,然后由该组编写,因为他认为当PHP运行时,它可能是www-data的成员,而不是以该用户的身份运行。
Nicholas指出,在Apache下在Ubuntu上安装PHP的过程不应该比“apt-获取安装apache2 libriache2-mod- PHP 5 php5 php5-mysql”和"sudo a2enmod php5“复杂得多,而且如果Joe不得不做更多的工作,那么可能有一些根本上的错误正在破坏PHP的运行。
尼古拉斯指出,这篇文章中有一些听起来比严格意义上更有惠顾之嫌,并将其归咎于继承下来的第三人称格式。
发布于 2010-02-22 20:23:16
Joe知道PHP脚本想要写入哪个目录吗?该目录需要www-数据权限才能写入。
https://serverfault.com/questions/115545
复制相似问题