複数バージョンのphpをapache+mod_fastcgiで扱う
前回は拡張子を変えるという紛らわしいやり方をしたが、これではそのままではうまく動かないフレームワークなどがあるので、ディレクトリ毎で調整するやりかたに変更。
apacheのバージョン
FastCgiWrapper Off #それぞれのバージョンのphp-fpmプロセスを指定 ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/ FastCgiExternalServer /var/www/fcgi-bin/php-fpm -host 127.0.0.1:9019 -pass-header Authorization FastCgiExternalServer /var/www/fcgi-bin/php-fpm70 -socket /var/run/php-fpm/php-fpm70.sock -pass-header Authorization # http://host.name/php56/info.php Alias /php56/ /var/www/php56/ <Directory "/var/www/php56"> allow from all Options +Indexes Action application/x-httpd-php-fastcgi /fcgi-bin/php-fpm <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php-fastcgi </FilesMatch> </Directory> # http://host.name/php70/info.php Alias /php70/ /var/www/php70/ <Directory "/var/www/php70"> allow from all Options +Indexes Action application/x-httpd-php70-fastcgi /fcgi-bin/php-fpm70 <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php70-fastcgi </FilesMatch> </Directory>
これで 9019ポートで動かしてるphp-fpmはエイリアス/php56で、unix socketで動かしてるphp-fpmは/php70以降でアクセスできるようになる。