【问题标题】:apache php5-fpm 404 error on chroot enablechroot 启用 apache php5-fpm 404 错误
【发布时间】:2014-09-23 09:04:55
【问题描述】:

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

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

我想让 php-fpm chrooted(这样用户就不会访问共享环境中的其他用户资源)如果配置:

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

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

如果我在 chroot 配置上评论了这个,那么 php 会再次运行而不会出现任何错误!

【问题讨论】:

    标签: apache php ubuntu-14.04 chroot


    【解决方案1】:

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

    chroot 很好,但会带来一些问题。如果您打算为用户提供进入系统的 SSH 入口,那么 chroot 会很有趣。

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

    【讨论】:

      【解决方案2】:

      在 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 池配置中

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

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

      vHost 中的错误配置:

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

      在 vHost 中正确配置:

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

      执行此操作后 chroot 正在工作..

      【讨论】:

        猜你喜欢
        • 2015-03-14
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2012-05-15
        • 1970-01-01
        • 2013-11-29
        • 1970-01-01
        • 2013-08-28
        相关资源
        最近更新 更多