SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

Apacheで複数バージョンのphp-fpmをホスト名で切り替える

問題

php-fpmを5系、7系、8系と実行していて、

Apacheからはホスト名を変えると使うphpのバージョンが切り換えれるようにしたいです。

例)

php5.example.com → php5.6
php7.example.com → php7.4
php8.example.com → php8.2

答え

debian、ubuntu ではapacheの設定を a2enconf, a2disconf で有効化、無効化できる。

例)php8.2有効化、php7.4無効化、php5.6無効化、apache再起動で反映
a2enconf php8.2-fpm
a2disconf php7.4-fpm
a2disconf php5.6-fpm
systemctl reload apache2.service

できるのだが、これではバージョンを切り替えたいときにいちいち有効化、無効化、再起動の操作が必要となる。

a2enconf、a2disconf で反映される設定ファイルはVirturlHostのファイルとは別ファイルとなっているので、php-fpmの設定をVirtualHostでどうにかしようとする前に、指定したバージョンのphpが全体的に有効になってしまう。

というわけで、VirtualHostの中でIncludeさせてみる。

<VirtualHost>
ServerName php8.exapmle.com
include /etc/apache2/conf-available/php8.2-fpm.conf
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost>
ServerName php7.exapmle.com
include /etc/apache2/conf-available/php7.4-fpm.conf
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost>
ServerName php5.exapmle.com
include /etc/apache2/conf-available/php5.6-fpm.conf
DocumentRoot /var/www/html
</VirtualHost>

conf は全部無効化。

a2disconf php8.2-fpm
a2disconf php7.4-fpm
a2disconf php5.6-fpm
systemctl reload apache2.service

できました。

関連するメモ

コメント