概要
以前、PHPの任意のバージョンを同一サーバー上に共存させ、Apacheのバーチャルホストを設定し、接続ドメインごとにPHPのバージョンを切り替える設定をすること(参考:PHP複数バージョンインストール(バーチャルホストでPHP切替))をしていましたがphpバージョン古くなってきたので、php73,php74版も記載します。
前提条件
・WebサーバはApacheを利用する
・PHP複数バージョンインストール(バーチャルホストでPHP切替)が実施済みであること
php73,php74インストール
php73/74をインストールする
for v in 73 74 ; do yum -y install php$v php$v-php-{gd,xml,mbstring,mysqlnd} ; done
for v in 73 74 ; do yum -y install php$v-php-{opcache,pecl-apcu,pecl-memcached} ; done
php73,php74バージョン確認
# for v in 73 74 ; do php$v -v ; echo \ ; done
php.ini 配置場所確認
# for v in 73 74 ; do php$v --ini | grep Loaded | awk '{print $4}' ; done
php73,php74のphp-fpmインストール
# for v in 73 74 ; do yum -y install php$v-php-fpm ; done
php-fpm 設定(php72から74をデフォルトに切り替え)
for v in 72 73 ; do sed -i '/pm = /s/dynamic/ondemand/' /etc/opt/remi/php$v/php-fpm.d/www.conf ; done
※php72から74をデフォルトに切り替えするため72,73としています
php-fpm 設定(php72から74をデフォルトに切り替え)確認
# for v in 72 73 ; do grep 'pm = ondemand' /etc/opt/remi/php$v/php-fpm.d/www.conf ; done
php-fpm listenポート指定
for v in 72 73 ; do sed -i "s/9000/90$v/" /etc/opt/remi/php$v/php-fpm.d/www.conf ; done
※リッスンポートphp72をデフォルト(9000)から変更してphp74をデフォルト(9000)にする
Apacheの設定(バーチャルホスト)
# cat << "_EOF_" > /etc/httpd/conf.d/remi.conf
### php73
ServerName do.pineapplefanboy.com
SetHandler "proxy:fcgi://127.0.0.1:9000"
### php72
ServerName php72.do.pineapplefanboy.com
DocumentRoot /var/www/phpdir/php72
ErrorLog logs/php72.do.pineapplefanboy.com-error.log
CustomLog logs/php72.do.pineapplefanboy.com-access.log combined
SetHandler "proxy:fcgi://127.0.0.1:9072"
### php71
ServerName php71.do.pineapplefanboy.com
DocumentRoot /var/www/phpdir/php71
ErrorLog logs/php71.do.pineapplefanboy.com-error.log
CustomLog logs/php71.do.pineapplefanboy.com-access.log combined
SetHandler "proxy:fcgi://127.0.0.1:9071"
_EOF_
※ご自身のドメイン名に合わせてServerNameを変更してください。
php-fpm の起動
# systemctl restart php72-php-fpm
# for v in 73 74 ; do systemctl start php$v-php-fpm ; systemctl enable php$v-php-fpm ; done
PHP接続確認(URL)
サンプルファイルの作成
# echo "PHP Version: <?php echo phpversion();" > /var/www/html/index.php
# mkdir -p /var/www/phpdir/php73/
# mkdir -p /var/www/phpdir/php74/
# cp -p /var/www/html/index.php /var/www/phpdir/php73
# cp -p /var/www/html/index.php /var/www/phpdir/php74
※ドメインごとにPHPのバージョンが切替わっていること
参考リンク
Yum で複数バージョンの PHP を共存させる
ありがとうございます
コメント