skimemo


skimemo - 日記/2020-03-23/WindowsでApache+PHP5.6をfast-cgiで動かす

_ WindowsでApache+PHP5.6をfast-cgiで動かす

こちらの記事では、Windows上でPHP7.3をfast-cgiで動かしていました。
今回は、php5.6をfast-cgiで動かします。

_ php5.6のインストール

NTS版を入れました。これは、TS版だとphp-cgi.exeが安定してくれないためです。私の環境固有かもしれません。
以下のページから、古いPHPバイナリをダウンロードしてインストールします。
https://windows.php.net/downloads/releases/archives/

_ mod_fcgidのインストール

php7の時はproxy_fcgi_moduleというモジュールがあり、こちらで実現できました。
ところが5.6のphp-cgiにはバグがあるらしく、Windowsのパスを正しく認識してくれず、「No input file specified.」というメッセージが帰ってきてしまいます。(参考文献1)
そこで、参考文献1のコメントを頼りに、mod_fcgidを導入してみます。

参考文献2の記事に沿って、mod_fcgidをインストールします。

  1. こちらから、適切なmod_fcgidモジュールをダウンロード。
  2. mod_fcgid.soファイルをapacheのmodulesディレクトリにコピー。
  3. httpd.confに FcgidInitialEnv 等の一連の設定を行う。
    これを行わないと、最初のHTMLだけ処理されるものの、HTML内から読んでいるJavaScriptやCSS等のファイルが読み込めない現象が出るようです)
  4. httpd.conf内の目的のaliasにFCGIの設定を記述する。
    Alias /hoge "C:\...\htdocs_hoge"
    <Directory "C:\...\htdocs_hoge">
    	<Files ~ "\.(php|phtml)$">
    		AddHandler fcgid-script .php
    		Options +ExecCGI
    		FcgidWrapper "C:/.../php-5.6.39-nts-VC11/php-cgi.exe" .php
    	</Files>
    	AllowOverride all
    	Require all granted
    </Directory>

_ apacheを起動

phpinfo(); などで正常に5.6が表示されれば完了です。

_ 参考文献

  1. Apache mod_proxy_fcgi and PHP-FPM (php-cgi.exe) issue (No input file specified.) on Windows
    https://stackoverflow.com/questions/36415930/apache-mod-proxy-fcgi-and-php-fpm-php-cgi-exe-issue-no-input-file-specified
  2. (lounge mod_fcgid on 2.4.6)windowsでCGIをFastCGIで実行するように設定する
    http://algorhythnn.jp/blg/2013/10/31/fast_cgi-apache_lounge/
Category: [Windows] - 15:54:03



 
Last-modified: 2020-03-23 (月) 16:19:28 (14d)