2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon Linux 2 に複数PHPバージョンを同居

Last updated at Posted at 2021-09-07

Amazon Linux 2 に複数のPHPバージョンを同居

PHPインストール時に複数バージョンを同居しても問題ないよう、インストールしてる手順をメモ

汎用的なやり方ではないと思いますが、簡単に設定・切替えしたい人向けです。

① yum updateした後に、remiリポジトリを追加

# 最新版へupdate
sudo yum -y update
# remiリポジトリを追加
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

② 利用するPHPバージョン毎にインストール

# PHPを使うバージョン毎にインストール
for v in  70 74 80; do sudo yum -y install php$v php$v-php php$v-php-{mbstring,mysqlnd,redis,pecl-apcu,opcache,xml,gmp}; done
# PHP7.0を使う場合
php70 -v
# PHP7.4を使う場合
php74 -v
# PHP8.0を使う場合
php80 -v

③ apacheの自動起動を有効化 ※versionは2.4以上

sudo systemctl enable httpd
sudo systemctl list-unit-files | grep -e httpd

④ apacheのphp.confを勝手にロードされないよう、ファイル名変更

cd /etc/httpd/conf.modules.d/
# php.confの拡張子を変更
sudo rename php.conf php.conf.org *php.conf

⑤ alternativesで各バージョンを管理
※「複数のバージョンの PHP を切り替えて使う」記事を参考にしました。

# PHP7.0
sudo update-alternatives \
--install /usr/bin/php                          php     /opt/remi/php70/root/usr/bin/php 10    \
--slave   /usr/bin/php-cgi                      php-cgi /opt/remi/php70/root/usr/bin/php-cgi   \
--slave   /usr/bin/phar.phar                    phar    /opt/remi/php70/root/usr/bin/phar.phar \
--slave   /etc/httpd/conf.modules.d/10-php.conf webphp  /etc/httpd/conf.modules.d/15-php70-php.conf.org
# PHP7.4
sudo update-alternatives \
--install /usr/bin/php                          php     /opt/remi/php74/root/usr/bin/php 10    \
--slave   /usr/bin/php-cgi                      php-cgi /opt/remi/php74/root/usr/bin/php-cgi   \
--slave   /usr/bin/phar.phar                    phar    /opt/remi/php74/root/usr/bin/phar.phar \
--slave   /etc/httpd/conf.modules.d/10-php.conf webphp  /etc/httpd/conf.modules.d/15-php74-php.conf.org
# PHP8.0
sudo update-alternatives \
--install /usr/bin/php                          php     /opt/remi/php80/root/usr/bin/php 10    \
--slave   /usr/bin/php-cgi                      php-cgi /opt/remi/php80/root/usr/bin/php-cgi   \
--slave   /usr/bin/phar.phar                    phar    /opt/remi/php80/root/usr/bin/phar.phar \
--slave   /etc/httpd/conf.modules.d/10-php.conf webphp  /etc/httpd/conf.modules.d/20-php80-php.conf.org

⑥ メインで使うphpに切替え

$ sudo update-alternatives --config php

There are 3 programs which provide 'php'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/remi/php70/root/usr/bin/php
   2           /opt/remi/php74/root/usr/bin/php
   3           /opt/remi/php80/root/usr/bin/php

Enter to keep the current selection[+], or type selection number:

※php.ini設定を忘れずに(タイムゾーン等)

# PHP7.0.ini
sudo vi /etc/opt/remi/php70/php.ini
# PHP7.4.ini
sudo vi /etc/opt/remi/php74/php.ini
# PHP8.0.ini
sudo vi /etc/opt/remi/php81/php.ini

コンテナ毎に各バージョンを用意してもOKだが、こちらがお手軽かなと。

殆ど自分用メモですが、ご指摘等頂けると助かります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?