特殊な拡張子でphp-fpm + Apacheを使う

都合上php5.4とphp5.6を併用して運用する必要が出てきたのでメモ。なかなか動かなくて苦労しました。

実行環境

  • php5.4
    • Apacheモジュール版で実行。古くから使ってる環境。
  • php5.6
    • 自前でコンパイルしたもの。fastcgi + php-fpmで実行。

Apacheの設定

fastcgi.confの内容。

 
FastCgiWrapper Off
ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
FastCgiExternalServer /var/www/fcgi-bin/php-fpm  -host 127.0.0.1:9019 -pass-header Authorization
 
AddHandler php-fastcgi .php56
Action php-fastcgi /fcgi-bin/php-fpm
AddType application/x-httpd-php .php56
 

ここでひっかかったのが、 FastCgiWrapper Off にするというもの。Onになっているとnot foundとなって動いてくれない。

php-fpmの設定

とりあえず大事なところだけピックアップ。

 
listen = 127.0.0.1:9019
security.limit_extensions =  .php56
 

security.limit_extensions で指定しないと Access deniedとなってスクリプトが実行できない。

php-fpmの起動

-yで設定を指定することにより、いろんな設定のphp-fpmを起動することができます。

/php56/install/path/sbin/phpfpm y /phpfpm/config/dir/php-fpm.conf