web-dev-qa-db-ja.com

複数の仮想ホスト用の単一のfastcgi / php-cgiサーバー?

私は現在、次の設定を使用してクライアントのサイトをホストしています。

  • Apache 2.2.16
  • mod_fastcgi 2.4.7
  • php 5.3.3

ApacheはワーカーMPMを使用し、動的なFastCGI構成を介してPHPを提供します:

 FastCgiSuexec /usr/sbin/suexec
FastCgiConfig -singleThreshold 0 -pass-header Authorization -idle-timeout 3600 
 SuexecUserGroupユーザーグループ
アクションapplication/x-httpd -fastphp /cgi-bin/php.fcgi
AddType application/x-httpd-fastphp .php 

これはうまく機能しますが、これにより各VirtualHostのphp-cgiインスタンスが作成されるため(cgi-binディレクトリが特定のアカウントで物理的に同じであっても)、クライアントにいくつかのサブドメインがある場合、クライアントは合計を開始し、サーバーを枯渇させ、ゴミ箱に移動しますそれ。

だから、これは私に実際の質問をもたらします、単一のphp-cgiインスタンスを介してアカウントのすべてのphpリクエストを処理することは可能ですか?クライアントがディレクトリ外のファイルを読み取らないように、suexecビットを維持することが望ましい。

1
hlidotbe

個人的な意見を追加する場合があります。

Nginxを使用してください。これは、より速く、よりシンプルで、はるかに簡単に実行できます。(そして使用するメモリがはるかに少なくなります)

私の個人的な好み..:D

https://calomel.org/nginx.html は素晴らしい詳細な例です

0
Arenstar

仮想ホストごとにfcgid構成がありますか? (グローバルfcgid構成は別として)、つまり、タグ内ですか?

これが問題の考えられる理由の1つであると考えました。これは、すべてのWebアカウントに共通のファイルシステムパスにfcgid構成を追加することで解決できます(たとえば、/ etc/Apache2 /)。 sites-enabled/000-default(Ubuntuを使用している場合):

NameVirtualHost SOME-IP-ADDRESS:80

<Directory /some-path/webaccounts/>
    AddHandler fcgid-script .php
    FCGIWrapper /usr/lib/cgi-bin/php5 .php
</Directory>

<VirtualHost SOME-IP-ADDRESS:80>
...

少なくとも、2Gb RAMマシン(Ubuntu 8.04)で20〜30個のvhostを使用してfcgidを問題なく使用しており、上記のように設定しています。

0
Samuel Lampa