我正在使用CentOS来提供PHP网页。
我有“/ svr / www”里面的各种网站…我的问题是,我创build的文件夹,如:
/svr/www/website1.com /svr/www/website2.com
而这个文件夹有所有者“root”用户,我注意到,Apache不能在这个文件夹内创build新的文件。
我在apache error.log中有这个错误:
[Sat Oct 22 17:50:44 2011] [error] [client xx.xxx.xxx.xxx] PHP Warning: fopen(../index.htm): failed to open stream: Permission denied in /srv/www/site1.com/public/gne/gnerate.php on line 228 [Sat Oct 22 17:50:44 2011] [error] [client xx.xxx.xxx.xxx] PHP Warning: fputs() expects parameter 1 to be resource, boolean given in /srv/www/site1.com/public/gne/gnerate.php on line 229 [Sat Oct 22 17:50:44 2011] [error] [client xx.xxx.xxx.xxx] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /srv/www/site1.com/public/gne/gnerate.php on line 230
我的问题是…什么是正确的方法来设置文件夹中的权限,阿帕奇需要读取,写入和执行?
一些线索呢?
最好的祝福,
一般来说,你的Apache服务器应该可以读取我应该提供的任何东西,而写入权限应该严格限制在文件和文件夹中,Web应用程序需要运行。 你永远不应该有世界可写文件(例如777)。
你可以设置它,让你自己的用户拥有文件,但Apache组拥有组的所有权。
然后通过用户给予自己所需的权限,并通过设置组权限严格限制Web服务器。
1)通过input来检查Apache正在运行的用户
ps -ef | grep httpd
2)更改你想要Apache能够写的文件夹的权限(只是这些文件夹只是为了更“安全”)3)其他一切都可以有你喜欢的任何用户/权限,重要的是,Apache用户将能够阅读这些目录(所以他们应该至less755的文件夹和644的文件)。
Apache和PHP运行的apache用户。 为了赋予Apache(和PHP)读写权限,您应该首先使用chown -R apache: /srv/www/*更改文件的所有者。
你也应该确保你的PHP安装。 这里有一个快速和全面的指导: http : //www.jamescun.com/2011/10/securing-php/ 。 你也可以看看http://www.phpgenious.com/test/phpsecurity.pdf(PDF文件) – 有点老,但足以让你开始保护PHP。