PHP複数バージョンインストール
(バーチャルホストでPHP切替)※php73,php74版

スポンサーリンク

概要

以前、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 を共存させる
ありがとうございます

BlogInfraPHP
スポンサーリンク
インフラエンジニア|パイナップル星人 ブログ

コメント

タイトルとURLをコピーしました