Memo

メモ > サーバ > 各論: プログラミング > PHPのバージョンを同居させて使用する

PHPのバージョンを同居させて使用する
PHP7.0〜7.4を同時に使えるようにしたときのメモ(使用するPHPは、バーチャルホストごとに.htaccessで指定する) 今回はRemiのリポジトリを使用するので、あらかじめ追加しておく ■うまく行かなかった方法 remiリポジトリから以下のように複数のPHPをインストールすると、
# yum -y install --enablerepo=remi-php73 php php-cli php-common php-devel php-fpm # yum -y install --enablerepo=remi-php74 php php-cli php-common php-devel php-fpm
PHPのバージョンは最後にインストールした7.4になる PHPは /etc/php.d にインストールされる
# php -v PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS ) # php74 -v -bash: php74: command not found # php73 -v -bash: php73: command not found
PHPは「php73 -v」や「php74 -v」ではなく、「php -v」で参照できるのみ ■うまく行った方法 以下を実行すると、新たにPHP7.3とPHP7.4のインストールが始まる
# yum -y install php73 php73-php-gd php73-php-xml php73-php-mbstring php73-php-mysqlnd # yum -y install php74 php74-php-gd php74-php-xml php74-php-mbstring php74-php-mysqlnd
それぞれがインストールされる
# php -v PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS ) # php74 -v PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS ) # php73 -v PHP 7.3.31 (cli) (built: Sep 21 2021 10:24:03) ( NTS )
以下を実行すると、新たにPHP7.0とPHP7.1とPHP7.2がインストールされる
# yum -y install php70 php70-php-gd php70-php-xml php70-php-mbstring php70-php-mysqlnd # yum -y install php71 php71-php-gd php71-php-xml php71-php-mbstring php71-php-mysqlnd # yum -y install php72 php72-php-gd php72-php-xml php72-php-mbstring php72-php-mysqlnd
なお、最低限以下の指定だけでインストールできる(PHP7.2の場合の例)
# yum -y install php72
Yum で任意のバージョンの PHP をインストールする - Qiita https://qiita.com/bezeklik/items/74106f3ed528584293c3 上記によると、別バイナリ名として「php70」「php71」などが登録されているらしい 複数バージョンのPHPを共存できるようにするために提供されているのかもしれない これにより、例えば以下のようにインストールすると
# yum -y install --enablerepo=remi-php74 php php-cli php-common php-devel php-fpm # yum -y install php74 php74-php-gd php74-php-xml php74-php-mbstring php74-php-mysqlnd # yum -y install php73 php73-php-gd php73-php-xml php73-php-mbstring php73-php-mysqlnd
以下のように参照できる
$ php -v PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS ) $ php74 -v PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS ) $ php73 -v PHP 7.3.31 (cli) (built: Sep 21 2021 10:24:03) ( NTS )
Apacheから参照するには、php-fpmを利用する /etc/php-fpm.d/www.conf はそのままデフォルトとし、
listen = 127.0.0.1:9000 pm = dynamic
/etc/opt/remi/php74/php-fpm.d/www.conf は70〜74までそれぞれ設定する(以下はPHP7.4用の設定)
listen = 127.0.0.1:9000 pm = dynamic ↓ listen = 127.0.0.1:9074 pm = ondemand
/etc/httpd/conf.d/vhosts.conf などで以下のように指定する(「FilesMatch」のブロックを追加。この場合はPHP7.2)
<VirtualHost *:80> ServerName php.development.local DocumentRoot /var/www/vhosts/php/html </VirtualHost> ↓ <VirtualHost *:80> ServerName php.development.local DocumentRoot /var/www/vhosts/php/html <FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9072" </FilesMatch> </VirtualHost>
これで任意のPHPを使用することができる ■参考 参考になりそうなページ Yum で複数バージョンの PHP を共存させる - Qiita https://qiita.com/bezeklik/items/860ba080bf4c664cd8e9 複数のバージョンの PHP を切り替えて使う - Qiita https://qiita.com/centipede/items/0a5e2f55ec3f66dc6bd9 PHP5.6、PHP7.0、PHP7.1の混在環境の構築 | agathion アメブロ支店 https://ameblo.jp/amebajes/entry-12322702469.html

Advertisement