簡體   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