こんにちは、伊藤です。前回phpに関する記事を書きましたが今回もphpについて書きます。
古いphpをバージョンアップせず放置しているとセキュリティの脆弱性にさらされるリスクがあるのでなるべく避けたいですね。CentOS7を使っている場合、公式のyumリポジトリが提供しているphpのバージョンが5.4.16となっているので、標準のままyum install phpを打つと古いphp5.4.16がインストールされます。
ただ、phpの公式サポート状況を見ると、2020年9月時点で7.1以下のバージョンは既にサポートが終了しているので、7.2以上をインストールする必要があります。しかし、7.2以上のphpは公式のyumリポジトリから提供されていないので、別のリポジトリからインストールする必要があります。
pkgs.orgというLinuxパッケージ検索サイトで探してみると、7.2以上のphpを提供しているリポジトリは多々あるようですが、今回は一般的に使われるremiと呼ばれるリポジトリから、phpの現行バージョンを7.2以上にアップ/ダウングレードする方法を解説します。
目次
remiリポジトリとは
remiリポジトリは、サードパーティリポジトリと呼ばれる、CentOSが標準で用意している以外のサードパーティが提供しているリポジトリの一種です。
公式サイトによると、remiリポジトリの役割として
PHPスタックの最新バージョン、フル機能、およびその他のソフトウェアを、FedoraおよびEnterprise Linux(RHEL、CentOS、Oracle、Scientific Linuxなど)のユーザーに提供します。
が挙げられるようです。最新のphpをインストールできるということですね。
remiが提供しているパッケージには、php以外にもApacheやMySQLも入っているので、remiのパッケージを使うことでLAMP環境を構築できます。
remiの使用に際して注意点があります。最新のパッケージを入手できるものの、発見されてないセキュリティホールが残っていたりするので信頼性が不安です。また、remiはサードパーティリポジトリでCentOSのサポート対象外なので、利用は自己責任です。
前提条件
CentOS7を使用
EPELとremiの追加
①remiを使用するには、先に依存関係にあるEPELというリポジトリを追加します。(EPELもサードパーティリポジトリです)
1 |
yum install epel-release |
②続いてremiを追加します
1 |
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm |
③epelとremiがインストールされたか確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@localhost /]# ls -l /etc/yum.repos.d | egrep 'epel|remi' -rw-r--r--. 1 root root 1149 9月 18 2019 epel-testing.repo -rw-r--r--. 1 root root 1050 9月 18 2019 epel.repo -rw-r--r--. 1 root root 446 8月 17 19:29 remi-glpi91.repo -rw-r--r--. 1 root root 446 8月 17 19:29 remi-glpi92.repo -rw-r--r--. 1 root root 446 8月 17 19:29 remi-glpi93.repo -rw-r--r--. 1 root root 446 8月 17 19:29 remi-glpi94.repo -rw-r--r--. 1 root root 855 8月 17 19:29 remi-modular.repo -rw-r--r--. 1 root root 456 9月 13 13:43 remi-php54.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php70.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php71.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php72.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php73.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php74.repo -rw-r--r--. 1 root root 1314 8月 17 19:29 remi-php80.repo -rw-r--r--. 1 root root 750 8月 17 19:29 remi-safe.repo -rw-r--r--. 1 root root 2605 8月 17 19:29 remi.repo |
epel.repoとremi-phpが入っていればOKです。
phpのバージョンアップグレード手順
①まずは現在インストールされているphpとphpの関連モジュールを検索します。
1 2 3 4 5 6 7 |
[root@localhost /]# yum list installed | grep php php.x86_64 5.4.45-18.el7.remi @remi-php54 php-cli.x86_64 5.4.45-18.el7.remi @remi-php54 php-common.x86_64 5.4.45-18.el7.remi @remi-php54 |
remiのphp5.4.45がインストールされていました。
②新しいphpのバージョンをインストールする為に、アンインストールします。
1 2 3 4 5 6 7 8 |
[root@localhost /]# yum remove -y php* 削除しました: php.x86_64 0:5.4.45-18.el7.remi php-cli.x86_64 0:5.4.45-18.el7.remi php-common.x86_64 0:5.4.45-18.el7.remi |
③インストールしたいphpのバージョンのremiリポジトリを有効化します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@localhost /]# vim /etc/yum.repos.d/remi-php73.rep # This repository only provides PHP 7.3 and its extensions # NOTICE: common dependencies are in “remi-safe” [remi-php73] name=Remi’s PHP 7.3 RPM repository for Enterprise Linux 7 - $basearch #baseurl=<a class="c-link" href="http://rpms.remirepo.net/enterprise/7/php73/$basearch/" target="_blank" rel="noopener noreferrer" data-stringify-link="http://rpms.remirepo.net/enterprise/7/php73/$basearch/" data-sk="tooltip_parent">http://rpms.remirepo.net/enterprise/7/php73/$basearch/</a> #mirrorlist=<a class="c-link" href="https://rpms.remirepo.net/enterprise/7/php73/httpsmirror" target="_blank" rel="noopener noreferrer" data-stringify-link="https://rpms.remirepo.net/enterprise/7/php73/httpsmirror" data-sk="tooltip_parent">https://rpms.remirepo.net/enterprise/7/php73/httpsmirror</a> mirrorlist=<a class="c-link" href="http://cdn.remirepo.net/enterprise/7/php73/mirror" target="_blank" rel="noopener noreferrer" data-stringify-link="http://cdn.remirepo.net/enterprise/7/php73/mirror" data-sk="tooltip_parent">http://cdn.remirepo.net/enterprise/7/php73/mirror</a> enabled=1 #←enabled=0を1に変更し、有効化する gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php73-debuginfo] name=Remi’s PHP 7.3 RPM repository for Enterprise Linux 7 - $basearch - debuginfo baseurl=<a class="c-link" href="http://rpms.remirepo.net/enterprise/7/debug-php73/$basearch/" target="_blank" rel="noopener noreferrer" data-stringify-link="http://rpms.remirepo.net/enterprise/7/debug-php73/$basearch/" data-sk="tooltip_parent">http://rpms.remirepo.net/enterprise/7/debug-php73/$basearch/</a> enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
yum install php =============================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 =============================================================================================== インストール中: php x86_64 7.3.22-1.el7.remi remi-php73 3.2 M 依存性関連でのインストールをします: php-cli x86_64 7.3.22-1.el7.remi remi-php73 4.9 M php-common x86_64 7.3.22-1.el7.remi remi-php73 1.1 M php-json x86_64 7.3.22-1.el7.remi remi-php73 68 kトランザクションの要約 =============================================================================================== インストール 1 パッケージ (+3 個の依存関係のパッケージ)総ダウンロード容量: 9.3 M インストール容量: 37 M Is this ok [y/d/N]:y |
今回は7.3.22がインストールされました。
③を行わずに、yumのオプションでリポジトリを指定することも可能です。
その場合、下記のコマンドを実行してインストールします。
1 |
yum --enablerepo=remi-php73 install php |
⑤phpのバージョンが7.3.22になっていることを確認します。
1 2 3 4 |
[root@localhost ~]# php -v PHP 7.3.22 (cli) (built: Sep 1 2020 09:44:58) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.22, Copyright (c) 1998-2018 Zend Technologies |
⑥Apacheを再起動します
1 |
[root@localhost ~]# systemctl restart httpd |
1 2 |
[root@localhost ~]# systemctl is-active httpd active |
⑦phpinfo();で、Apacheで読み込まれているphpのバージョンがphp7.3.22であることを確認します
1 2 3 4 |
[root@localhost ~]# vim /var/www/html/index.php <?php phpinfo(); |
1 2 3 |
[root@localhost ~]# php /var/www/html/index.php | grep “PHP Version” PHP Version => 7.3.22 #ここが7.3.22ならOK PHP Version => 7.3.22 |
これでphpのバージョンをアップグレードできました!
ダウングレードのやり方も同じ
今回はアップグレードしましたが、ダウングレードの場合もやり方は同じです。
手順③で、ダウングレードしたいバージョンのリポジトリを選択すればOKです。
1 2 3 |
例:5.4に変えたい /etc/yum.repos.d/ remi-php54.repoのenabledを1にして、7.3のenabledを0に戻してからインストール |
CentOSでremiとEPELを使いphpのバージョンをアップ/ダウングレードする方法まとめ
|
- Simple AWS DeepRacer Reward Function Using Waypoints - 2023-12-19
- Restrict S3 Bucket Access from Specified Resource - 2023-12-16
- Expand Amazon EBS Volume on EC2 Instance without Downtime - 2023-09-28
- Monitor OpenSearch Status On EC2 with CloudWatch Alarm - 2023-07-02
- Tokyo’s Coworking Space Hidden Gem: AWS Startup Loft Tokyo - 2023-05-24