繁体   English   中英

chroot启用apache php5-fpm 404错误

[英]apache php5-fpm 404 error on chroot enable

我知道这个特定问题已被问过很多次,但我看不到任何解决的答案。

我在UBUNTU 14上配置了一个mod_proxy_fcgi + php5-fpm + apache 2.4,它的工作非常好

我想使php-fpm成为chroot (因此用户不会在共享环境中访问其他用户的资源),如果配置:

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

配置后:如果我在浏览器中访问php脚本,则会收到404错误“找不到文件”

如果我在chroot config上面评论了此内容,则php可以再次正常工作而没有任何错误!

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

chroot很好,但是会带来一些问题。 如果您计划向用户提供系统的SSH条目,则chroot很有趣。

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

在Freenod频道#php-fpm上,一个叫“ Kiranos”的人帮助我解决了这个问题。

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

问题是,我有TCP连接到vhost中的php-fpm套接字,如

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

在php-fpm pool conf中

chroot = /var/www/html/example.net/public_html/

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

vHost中的Conf错误:

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

在vHost中更正Conf:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/$1

完成此操作后,chroot开始工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM