关于SuPHP与文件权限设定

来源:岁月联盟 编辑:exp 时间:2012-05-24
关于SuPHP与文件权限设定
cPanel中将PHP Handler 模式改变为SuPHP,因此造 成了造访页面时发生HTTP 500 Error,后来询问原因之后才知道,在SuPHP的模式下不允许任何权限为777 的目录及文件。另外在SuPHP的模式下也不支持透过.htaccess 文件修改php.ini 参数,因此如果原本.htaccess文件中有存在着php_ 开头的设定,也将造成造访网页时,产生500错误。
那遇到这些问题时,该怎么解决呢?
首先先检查网站上,网页的文件中是否还有目录或文件权限为777,如果有,则把目录权限修改为755,文件权限修改为644。感觉只要在网页目录下执行chmod 644 -R *.*就可以解决了,但,事情总没有那么简单,这样的执行并不完整,最后在网络上找到了关于主机设定为SuPHP后要如何设定的数据,看到了更完整更好的修改所有目录及权限方法。
 
修改目录权限
find /home/*/public_html -type d -exec chmod 755 {} /;
 
修改文件权限
find /home/*/public_html -type f -exec chmod 644 {} /;
上述的方法之中,可以把find里的路径修改为自己主机上的路径,其实可以算是find很进阶的使用。如果你的主机并不是所有的文件都要设定为644那,可以参考这个网页中的方法
 
find /home/*/public_html/ -type d -print0 | xargs -0 chmod 0755 # For directories
find /home/*/public_html/ -type f -not -name "*.pl" -not -name "*.cgi" -not -name "*.sh" -print0 | xargs -0 chmod 0644 # For files
至于,为什么主机那边要从CGI改变为SuPHP呢?根据这一篇文章中所提到的,可以看到主要的原因就是SuPHP安全性比较高,但性能相对于CGI较差。