EPELリポジトリの確認
# yum list installed epel-release
Remiリポジトリのインストール
Remiレポジトリは様々なバージョンのphpのパッケージを配布しているレポジトリ
# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
remiリポジトリの有効/無効を切り替える「yum-config-manager」コマンド(yum-utilsパッケージに含まれてる)があるか確認してremiリポジトリを有効化
# which yum-config-manager
/usr/bin/yum-config-manager (あるので有効化)
# yum-config-manager --enable remi
PHPのインストール
バージョン7.4.0のインストール
# yum -y install php74 php74-php-{gd,xml,mbstring,mysqlnd}
# yum -y install php74-php-{opcache,pecl-apcu,pecl-memcached}
# yum --enablerepo=remi-php74 -y install php-pdo php-pgsql
バージョン5.4.45のインストール
# yum -y install php54 php54-php-{gd,xml,mbstring,mysqlnd}
# yum -y install php54-php-pecl-{apcu,zendopcache,memcached}
# yum --enablerepo=remi-php54 -y install php-pdo php-pgsql
バージョンとphp.iniの配置場所確認
# for v in 54 74 ; 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
with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies
# for v in 54 74 ; do php$v --ini | grep Loaded | awk '{print $4}' ; done
/opt/remi/php54/root/etc/php.ini
/etc/opt/remi/php74/php.ini
フォルダ(ポート)で環境切り分け
php-fpm のインストール
# yum -y install php54-php-fpm
# yum -y install php74-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/php74/php-fpm.d/www.conf
確認
# grep 'pm = ondemand' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'pm = ondemand' /etc/opt/remi/php74/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/9074/" /etc/opt/remi/php74/php-fpm.d/www.conf
確認
# grep 'listen = 127' /opt/remi/php54/root/etc/php-fpm.d/www.conf
# grep 'listen = 127' /etc/opt/remi/php74/php-fpm.d/www.conf
php-fpmの起動とデーモン化
# systemctl start php54-php-fpm
# systemctl enable php54-php-fpm
# systemctl start php74-php-fpm
# systemctl enable php74-php-fpm
Apache の設定
/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ProxyPassMatch ^/php74/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9074/var/www/html/php74/$1
ProxyPassMatch ^/php54/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9054/var/www/html/php54/$1
</VirtualHost>
Apache の再起動
# systemctl restart httpd.service
確認
ディレクトリとPHP情報が表示されるページを作成
# mkdir /var/www/html/php74
# mkdir /var/www/html/php54
# echo "<?php phpinfo(); ?>" > /var/www/html/php74/index.php
# echo "<?php phpinfo(); ?>" > /var/www/html/php54/index.php
http://アドレス/php74/ と http://アドレス/php54/ で違うバージョンの情報が表示されていればOK