さくらのVPSに複数PHPインストール

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

Twitterでフォローしよう

おすすめの記事