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