CentOS7にPHP7.3をインストールしていく手順です。7系は同じ手順で大丈夫です。 デフォルトのyumでは5.4までしかインストールできないため、EPELとRemiを追加しています。
2019-01-07 追記 EPELのリポジトリを有効にしてインストールするようにコマンドを修正。
環境
- CentOS7.6
- x86_64
目的のPHPは7.3です。
PHPのインストール前の準備
EPELやRemiが追加済みであれば、飛ばしてください。
現在のPHPバージョンを確認
$ rpm -qa | grep php
$ php -v
-bash: php: コマンドが見つかりません
PHPは入っていないようです。
インストール済みのPHPを削除する場合はyum remove php-*
です。
EPELリポジトリを追加
CentOS7のExtraパッケージにEPELのrpmがあります。 EPELをインストール後、更新します。
# EPELをインストール
$ sudo yum install epel-release
# yumを更新
$ sudo yum update
Remiリポジトリを追加
RemiこちらもEPELと同様に便利なリポジトリです。 Remiをインストール後、更新します。
# Remiをインストール
$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yumを更新
$ sudo yum update
remi-release-8.rpmもありましたがEnterprise Linux - Development versionだったので、remi-release-7.rpmを使いました。
リポジトリのリストを確認
現在のリポジトリリストです。
$ sudo yum repolist
リポジトリー ID リポジトリー名
base/7/x86_64 CentOS-7 - Base
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64
EPELとRemiが入っており、バージョンも大丈夫そうです。
PHP7.xをインストールする
PHP7.3をインストールします。 他の7.x系をお探しのかたは、数値を読み替えてください。
yumでPHP7.3をインストールする
remi-php73と依存関係のモジュールをインストールします。
$ sudo yum -y install --enablerepo=epel,remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
インストール:
php.x86_64 0:7.3.4-1.el7.remi php-devel.x86_64 0:7.3.4-1.el7.remi
php-gd.x86_64 0:7.3.4-1.el7.remi php-mbstring.x86_64 0:7.3.4-1.el7.remi
php-pdo.x86_64 0:7.3.4-1.el7.remi php-pecl-mcrypt.x86_64 0:1.0.2-2.el7.remi.7.3
php-xml.x86_64 0:7.3.4-1.el7.remi
依存性関連をインストールしました:
apr.x86_64 0:1.4.8-3.el7_4.1 apr-util.x86_64 0:1.5.2-6.el7
autoconf.noarch 0:2.69-11.el7 automake.noarch 0:1.13.4-3.el7
cpp.x86_64 0:4.8.5-36.el7_6.1 dejavu-fonts-common.noarch 0:2.33-6.el7
dejavu-sans-fonts.noarch 0:2.33-6.el7 fontconfig.x86_64 0:2.13.0-4.3.el7
fontpackages-filesystem.noarch 0:1.44-8.el7 gcc.x86_64 0:4.8.5-36.el7_6.1
gcc-c++.x86_64 0:4.8.5-36.el7_6.1 gd-last.x86_64 0:2.2.5-8.el7.remi
glibc-devel.x86_64 0:2.17-260.el7_6.4 glibc-headers.x86_64 0:2.17-260.el7_6.4
httpd.x86_64 0:2.4.6-88.el7.centos httpd-tools.x86_64 0:2.4.6-88.el7.centos
確認する
コマンドでインストールを確認します。
$ php -v
PHP 7.3.4 (cli) (built: Apr 2 2019 13:48:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
$ rpm -qa | grep php
php-devel-7.3.4-1.el7.remi.x86_64
php-mbstring-7.3.4-1.el7.remi.x86_64
php-pecl-mcrypt-1.0.2-2.el7.remi.7.3.x86_64
php-pdo-7.3.4-1.el7.remi.x86_64
php-json-7.3.4-1.el7.remi.x86_64
php-cli-7.3.4-1.el7.remi.x86_64
php-gd-7.3.4-1.el7.remi.x86_64
php-common-7.3.4-1.el7.remi.x86_64
php-7.3.4-1.el7.remi.x86_64
php-xml-7.3.4-1.el7.remi.x86_64
インストールできているが、php73でコマンドが通っているようです。
tips
php-○○ と共通部分を書くのが面倒くさい
モジュールを追加していくとphp-○○と同じ文字が並んで書くのがだるくなります。
そこでphp-{devel,mbstring}
と書くとphp-devel, php-mbstring
をそれぞれインストールしてくれます。
インストールと同様に書くとこんな感じです。
$ sudo yum -y install --enablerepo=epel,remi,remi-php73 php php-{devel,mbstring,pdo,gd,xml,mcrypt}
リポジトリの有効化
モジュールによっては依存関係を解消できない等でエラーが出ます。
// 例
Error: Package: php-cli-7.3.13-1.el7.remi.x86_64 (remi-php73)
Requires: libargon2.so.0()(64bit)
Remiだけでphp-cliをインストールした際に依存関係を解消できずエラーがでました。epelのリポジトリも有効にしてsudo yum -y install --enablerepo=remi,epel
とすると解消します。
その他のモジュールなどで必要なリポジトリがある場合は--enablerepo
の後に追記してください。
また、--skip-broken
を付けるとエラーが出た際にインストールを止めずに全て試みることができます。
最後にSkipped (dependency problems):
とスキップしたものの一覧が出ます。
参考
- CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール
- [CentOS7]EPELリポジトリの簡単な追加方法
- 【Laravel超入門】Laravel5.6 + PHP7.2 + centOS7 + Vagrant 環境構築