PHPのインストール
yumでインストールできるバージョン確認
$ sudo yum search "php"
(あえて古い)バージョン5.4.45のインストール をしてみる
$ sudo yum -y install php54 --skip-broken
$ sudo yum -y install php54-{gd,xml,mbstring,mysqlnd}
$ sudo yum -y install php54-pecl-{apc,memcached}
httpd24-tools との依存関係で怒られたので php54 をインストールする時に --skip-broken 付ける
バージョン7.2.24のインストール
$ sudo yum -y install php72 --skip-broken
php72-php-{gd,xml,mbstring,mysqlnd}
# yum -y install php72-php-{opcache,pecl-apcu,pecl-memcached}
バージョンとphp.iniの配置場所確認
# for v in 54 72 ; do php$v -v ; echo \ ; done
PHP 5.4.45 (cli) (built: Oct 22 2019 13:23:07)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
PHP 7.2.24 (cli) (built: Oct 22 2019 11:28:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24, Copyright (c) 1999-2018, by Zend Technologies
# for v in 54 72 ; do php$v --ini | grep Loaded | awk '{print $4}' ; done
/opt/remi/php54/root/etc/php.ini
/etc/opt/remi/php72/php.ini
フォルダ(ポート)で環境切り分け
php-fpm のインストール
# yum -y install php54-php-fpm
# yum -y install php72-php-fpm
php-fpm の設定
プロセスマネージャーの変更
設定
# sed -i '/pm = /s/dynamic/ondemand/' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# sed -i '/pm = /s/dynamic/ondemand/' /etc/opt/remi/php72/php-fpm.d/www.conf
確認
# grep 'pm = ondemand' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'pm = ondemand' /etc/opt/remi/php72/php-fpm.d/www.conf
listen のポート指定
変更
# sed -i "s/9000/9054/" /opt/remi/php54/root/etc/php-fpm.d/www.conf
# sed -i "s/9000/9072/" /etc/opt/remi/php72/php-fpm.d/www.conf
確認
# grep 'listen = 127' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'listen = 127' /etc/opt/remi/php72/php-fpm.d/www.conf
php-fpmの起動とデーモン化
# systemctl start php54-php-fpm
# systemctl enable php54-php-fpm
# systemctl start php72-php-fpm
# systemctl enable php72-php-fpm
Apache の設定
/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ProxyPassMatch ^/php72/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9072/var/www/html/php72/$1
ProxyPassMatch ^/php54/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9054/var/www/html/php54/$1
</VirtualHost>
Apache の再起動
# systemctl restart httpd.service