mod_fcgidを使用してWindows上でApacheの下にいくつかのバージョンのPHPをセットアップしました。mod_fcgidヘッダ、PHPの複数のバージョンの前に、パイプからの読み込みタイムアウトの終了、
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "c:/php/tmp"
FcgidInitialEnv TMP "c:/php/tmp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 600
FcgidConnectTimeout 600
FcgidProcessLifeTime 3600
FcgidMaxRequestsPerProcess 900
FcgidMaxProcesses 10
FcgidMaxRequestLen 80131072
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
し、各バーチャルホストディレクティブ内の特定のfcgiのハンドラ:
<Virtualhost *:80>
VirtualDocumentRoot "e:/hosts/example"
ServerName example.local
# location of php.ini
FcgidCmdOptions c:/php/php5.5.12/php-cgi.exe InitialEnv PHPRC="c:/php/php5.5.12/"
FcgidWrapper "c:/php/php5.5.12/php-cgi.exe" .php
</Virtualhost>
<Virtualhost *:81>
VirtualDocumentRoot "e:/hosts/example"
ServerName example.local
# location of php.ini
FcgidCmdOptions c:/php/php7.0.12/php-cgi.exe InitialEnv PHPRC="c:/php/php5.5.12/"
FcgidWrapper "c:/php/php7.0.12/php-cgi.exe" .php
</Virtualhost>
PHP 5.5で動作http://example.local/この方法が、http://example.local:81/は同じコードを提供していますが、PHP 7.0での設定は、このようなものです。同じシステム上の複数バージョンのPHPをテストするのに非常に便利です。
しかし、私は約40-60秒後にfcgiタイムアウトを取得し続けているので、xdebugを効果的に使用することができません。
私は同様の質問をいくつか確認しましたが、そのほとんどはFcgidIOTimeout
オプションの高い値を設定することを正しく提案していますが、これは私のシステムには全く影響しません。