web-dev-qa-db-ja.com

ApacheProxyPassワーカー名が長すぎます

PhpファイルをApache.confファイル内のphp5-fpmに渡しますが、Apacheサーバーを再起動するとエラーメッセージが表示されます。

ProxyPassワーカー名(fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$ 1)が長すぎます。

私はphpファイルをphp-fpmに次の方法で渡します:

ProxyPassMatch ^/(.*\.php(/.*)?)$ \
  fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$1

もちろん、ディレクトリ名を短くすれば問題なく動作します。ただし、これは実際にはオプションではありません。

実行中:Apache/2.4.10(Ubuntu 14.04)PHP5-FPM

私はこれに困惑していて、その回避策を見つけようとして一日を過ごしました。私のサーバースキルは最強ではありません。フィードバックをいただければ幸いです。

2
Jayden Bryant

回避策として、長いパスへの短い名前のシンボリックリンクを作成できます。例えば:

ln -s /home/averyverylong/directoryname/tothe/www/working/directory \
  /var/www/html/shortcut

次に、

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/shortcut
0
Andrew Schulman

別の(そして私の意見では、よりエレガントな)解決策は、このApacheバグレポートで説明されているように、RewriteEngineを使用することです https://bz.Apache.org/bugzilla/show_bug.cgi?id=53218

# This directive must come before the following one in order
# block access to arbitrary URIs on the Origin server!
# As an alternative one can also use "RewriteRule /UNUSED - [F]"
ProxyPass /UNUSED !

# Configure a connection pool for the Origin server
# http://myserver.example.org:9081
ProxyPass /UNUSED fcgi://127.0.0.1:9000

RewriteEngine On

# Proxy "/long" to a long URI on the Origin server,
# [P] flag at end of line is important
RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/averyverylong/directoryname/tothe/www/working/directory/$1 [P]

これにより、どこにでも手動でシンボリックリンクを作成するオーバーヘッドなしに、同じファイル構造を引き続き使用できます(これは、Windowsマシンでは機能しません)。ワーカー名の制限はApacheの将来のバージョンで引き上げられると思いますが、今のところ、この回避策で希望する結果が得られるはずです。

3
Nathan

Apacheのsymfonyドキュメントによると> = 2.4.9を使用できます

<FilesMatch \.php$>
    # 2.4.10+ can proxy to unix socket
    # SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"

    # Else we can just use a tcp socket:
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html#php-fpm-with-Apache-2-2
https://serversforhackers.com/video/Apache-and-php-fpm

0
GeorgeKaf

Ubuntuにバグが報告されました。影響を受けていることを示し、Trustyの更新をリクエストしてください。修正を安定したリリースにするには、コミュニティからの入力が必要になります。

https://bugs.launchpad.net/Apache2/+bug/1668474

0
roktechie