CentOS7の標準yumリポジトリでは、PHP5.4が提供されています。
新しいバージョンは、Remiというプロジェクトのリポジトリを利用すると、yumで最新のPHPをインストールすることができるそうです。
ので、さっそくやってみます。以下、su -での作業です。
- Remiリポジトリの追加
EPELのリポジトリも必須用件なので、EPELリポジトリの追加を行った後、Remiリポジトリを追加します。
# yum -y install epel-release
文字が流れたあと、Complete!と表示されプロンプトに戻ります。Remiのリポジトリ情報をインストール
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
warning: /var/tmp/rpm-tmp.rDCQ8u: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:remi-release-7.2-1.el7.remi ################################# [100%]
プロンプトに戻って完了です。 - 現在バージョンの確認と削除
バージョンを確認します
# rpm -qa | grep php
php-pdo-5.4.16-36.3.el7_2.x86_64
php-mysql-5.4.16-36.3.el7_2.x86_64
php-cli-5.4.16-36.3.el7_2.x86_64
php-pear-1.9.4-21.el7.noarch
php-common-5.4.16-36.3.el7_2.x86_64
php-process-5.4.16-36.3.el7_2.x86_64
php-mbstring-5.4.16-36.3.el7_2.x86_64
php-5.4.16-36.3.el7_2.x86_64
php-xml-5.4.16-36.3.el7_2.x86_64削除しなくてもアップデートされるそうですが、念のため消しておきます。
# yum -y remove php-*
順にパッケージが削除されて行きます。
Complete!と表示されプロンプトに戻れば完了です。 - PHP5.6をインストール
Remiリポジトリはyumコマンドで通常は検索対象にならないように設定されているそうです。
Remiリポジトリを利用する際には–enablerepoオプションを付ける必要があります。
# yum -y install –enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd
Complete!と表示されプロンプトに戻れば完了です。 - バージョン確認
# rpm -qa | grep php
php-gd-5.6.28-1.el7.remi.x86_64
php-pecl-jsonc-1.3.10-1.el7.remi.5.6.x86_64
php-pdo-5.6.28-1.el7.remi.x86_64
php-pecl-zip-1.13.5-1.el7.remi.5.6.x86_64
php-pecl-jsonc-devel-1.3.10-1.el7.remi.5.6.x86_64
php-mbstring-5.6.28-1.el7.remi.x86_64
php-cli-5.6.28-1.el7.remi.x86_64
php-devel-5.6.28-1.el7.remi.x86_64
php-5.6.28-1.el7.remi.x86_64
php-common-5.6.28-1.el7.remi.x86_64# php –version
PHP 5.6.28 (cli) (built: Nov 9 2016 07:14:50)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
無事インストールできたようです。 - php.iniを編集
PHPの設定を変更します。
# vi /etc/php.ini
:
[Data]
; Defines the default timezone used by the date functions
; http://php.net/data.timezone
date.timezone = “Asia/Tokyo”
:
[mbstring]
; language for internal character representation.
; The affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese
:
mbstring.internal_encoding = UTF-8
:
mbstring.http_input = UTF-8
:
mbstring.http_output = pass
:
mbstring.encoding_translation = On
:
mbstring.detect_order = auto
:
mbstring.substitute_charset = none
: - Apache再起動
Apacheを再起動し、変更を反映します。
# systemctl restart httpd
何も表示されません。終わればプロンプトに戻ります。
以上でPHP5.6のインストール作業は終わりました。
phpinfo()を見てみまと、
大丈夫なようです。