概要
CentOS 7 の標準の yum リポジトリでは PHP 5.4 が提供されていますが、新しくサーバーを構築する際にはもっと新しいバージョンの PHP をインストールしたい場合があります。 本稿では CentOS 7 に PHP 7.2 を yum でインストールする手順について解説します。
なお、もっと新しい PHP をインストールする記事をお探しの場合は、次の記事を参考にしてください。
Remi を活用しよう
上記の通り、CentOS 7 の標準リポジトリでは PHP 7.2 が提供されていません。 しかし、RedHat 系 Linux に PHP の最新版を提供することをミッションとする Remi というプロジェクトのリポジトリを利用すれば、yum で最新の PHP をインストールすることができます。
Remi リポジトリの追加
それではさっそく Remi の yum リポジトリを追加してみましょう。 ここからは、root 権限を持つユーザでコマンドを実行してください。 Remi で提供されているソフトウェアをインストールするためには EPEL のリポジトリも必須要件となっていますので、先に EPEL のリポジトリの追加を行った後に Remi のリポジトリを追加します。
EPEL のリポジトリ情報は CentOS 7 標準の yum リポジトリで提供されていますので、次の yum install コマンドでインストールすることができます。
# yum -y install epel-release
EPEL のリポジトリ情報がインストールできましたので、次に Remi のリポジトリ情報をインストールします。 remi の RPM の URL は、Remi のリポジトリの公式サイトで確認することができますが、CentOS 7 の場合は次のように URL を指定して yum コマンドでインストールします。 ※サーバーが海外にあるからか、たまに RPM が見つからないなどのエラーが発生しますが、次のインストールコマンドを何回か粘り強く実行したらインストールできます。
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
EPEL と Remi のリポジトリの追加が完了すると、yum のリポジトリ情報が保存されている /etc/yum.repo.d の配下は次のようになり、EPEL, Remi のリポジトリが追加されたことがわかります。 特にここで注目すべきは remi-php72.repo というファイルができていることです。
# ls -l /etc/yum.repos.d/
total 60
-rw-r--r--. 1 root root 1664 Aug 30 15:53 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Aug 30 15:53 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Aug 30 15:53 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Aug 30 15:53 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Aug 30 15:53 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Aug 30 15:53 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 Aug 30 15:53 CentOS-Vault.repo
-rw-r--r--. 1 root root 957 Dec 27 2016 epel.repo
-rw-r--r--. 1 root root 1056 Dec 27 2016 epel-testing.repo
-rw-r--r--. 1 root root 457 Jun 30 2017 remi-php54.repo
-rw-r--r--. 1 root root 1316 Jun 30 2017 remi-php70.repo
-rw-r--r--. 1 root root 1316 Jun 30 2017 remi-php71.repo
-rw-r--r--. 1 root root 1316 Jun 30 2017 remi-php72.repo
-rw-r--r--. 1 root root 2609 Jun 30 2017 remi.repo
-rw-r--r--. 1 root root 751 Jun 30 2017 remi-safe.repo
PHP 7.2 のインストール
Remi リポジトリを利用して PHP 7.2 をインストールする準備が整いました。 さっそく PHP 7.2 をインストールしてみましょう。
Apache httpd + PHP 7.2 の組合せでインストール
PHP は WEB サーバー上で動作させることがほとんどですので、今回は Apache httpd と組合せて PHP 7.2 をインストールしてみたいと思います。 まずは yum search で httpd と PHP 7.2 のパッケージを検索して、リポジトリで提供されていることを確認してみます。 パッケージ名には httpd と php72 を指定します。
# yum search httpd php72
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* epel: ftp.jaist.ac.jp
* extras: www.ftp.ne.jp
* remi-safe: mirror.bebout.net
* updates: www.ftp.ne.jp
(中略)
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
(中略)
php72.x86_64 : Package that installs PHP 7.2
php72-build.x86_64 : Package shipping basic build configuration
php72-php.x86_64 : PHP scripting language for creating dynamic web sites
httpd.x86_64 や php72.x86_64 などの検索結果が表示され、どちらも利用できることがわかりました。 PHP 7.2 関連のパッケージは php72-xxxxx のような名称になっています。
それでは httpd と PHP 7.2 をインストールします。 今回は Apache httpd の上で PHP が動く最低限のパッケージをインストールします。 利用するアプリケーションに合わせて、追加で mbstring などの PHP の拡張をインストールするようにしてください。
# yum -y install httpd php72 php72-php
インストールが完了したら、Apache httpd が再起動時に自動で起動するように設定します。
# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
そして Apache httpd を起動します。
# systemctl start httpd.service
PHP 7.2 が本当にインストールされたかを確認するため、インストールされている PHP の情報を表示する phpinfo 関数を実行する PHP ファイルを /var/www/html/info.php として作成します。
# vi /var/www/html/info.php
<?php
phpinfo();
それでは今作成した info.php にアクセスしてみましょう。 http://<あなたのサーバホスト名>/info.php にアクセスします。 すると次のように画面が表示され、PHP 7.2 がインストールされたことが確認できると思います。 (画面が表示されない場合は CentOS の Firewall 機能などによりアクセスが遮断されている可能性がありますので、Firewall の設定などを見なおしてください。 オススメはしませんが、Firewalld は systemctl stop firewalld コマンドで停止できます。)
おわりに
本稿では CentOS 7 に PHP 7.2 をインストールする手順について解説しました。 インストールが完了した次のステップとして次の記事を参考に、パフォーマンス設定・セキュリティ設定をすることをお勧めします。