2014-09-23 75 views
1

我知道这个问题已经被问了很多次,但是我没有看到任何解决方案的答案。apache php5-fpm 404 chroot enable错误

我有一个mod_proxy_fcgi + php5-fpm + apache 2.4在UBUNTU 14上配置了它的工作完全没问题

我想使PHP-FPM chroot的(所以用户不会访问其他用户共享ENV资源),如果配置:

prefix = /var/www/html/example.com/public_html/ 
chroot = $prefix 
chdir =/

配置后:如果我在浏览器访问PHP脚本,我得到404错误“文件未找到”

如果我评论这上面的chroot配置,然后php再次运行没有任何错误!

回答

0

在名为 “Kiranos” Freenod通道#的php-fpm的人帮我解决这个问题。

我的设置是:Apache 2.4.7 + mod_proxy_fcgi + php5-fpm on Ubuntu 14.04

的问题是,我有一个像

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/example.net/public_html/$1 

和PHP-FPM池的conf我有

chroot = /var/www/html/example.net/public_html/ 
在虚拟主机的TCP连接到PHP-FPM插座

注意:由于Apache 2.4.7不支持unix套接字连接,我不得不使用TCP。在使用TCP时,不需要提及ProxyPassMatch中用于chrooting的完整文档路径。

错误CONF在虚拟主机:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/example.net/public_html/$1 

在虚拟主机正确CONF:

​​

这样做的chroot后,工作..

0

我不知道chroot是否是完美的解决方案。 chroot不是自动的,意味着更好的安全性。例如,更好的方法是使用suexec运行其他用户下的每个站点。然后,每个客户都拥有自己的用户,只有在自己的文件夹中具有指定的权限

chroot不错,但会造成一些问题。如果你计划给用户一个SSH入口到你的系统,那么chroot很有趣。

https://serverfault.com/questions/139826/apache-suexec-php-fpm-how-to-set-them-up