現在のPHPのバージョンを確認
$ php -v PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)
OSのバージョンを確認
$ cat /etc/redhat-release CentOS release 6.7 (Final)
現在インストールされているライブラリを確認
$ rpm -aq | grep php php-5.3.3-27.el6_5.1.x86_64 php-common-5.3.3-27.el6_5.1.x86_64 php-gd-5.3.3-27.el6_5.1.x86_64 php-pear-1.9.4-4.el6.noarch php-devel-5.3.3-27.el6_5.1.x86_64 php-mbstring-5.3.3-27.el6_5.1.x86_64 php-pdo-5.3.3-27.el6_5.1.x86_64 php-mysql-5.3.3-27.el6_5.1.x86_64 php-cli-5.3.3-27.el6_5.1.x86_64 php-xml-5.3.3-27.el6_5.1.x86_64
epelリポジトリを追加
$ sudo yum install epel-release
CentOS系の remiリポジトリを追加
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
- Centos7なら remi-release-7.rpm
設定ファイルを保存
$ sudo cp /etc/php.ini /etc/php.ini.YYMMDD $ sudo cp -pr /etc/php.d /etc/php.ini.d.YYMMDD
- YYMMDDは実行日など
PHPのバージョンアップ
アップデートされるライブラリをチェック
$ sudo yum check-update --enablerepo=remi-php56,remi php.x86_64 5.6.16-1.el6.remi remi-php56 php-cli.x86_64 5.6.16-1.el6.remi remi-php56 php-common.x86_64 5.6.16-1.el6.remi remi-php56 php-fpm.x86_64 5.6.16-1.el6.remi remi-php56 php-intl.x86_64 5.6.16-1.el6.remi remi-php56 php-mbstring.x86_64 5.6.16-1.el6.remi remi-php56 php-mysqlnd.x86_64 5.6.16-1.el6.remi remi-php56 php-opcache.x86_64 5.6.16-1.el6.remi remi-php56 php-pdo.x86_64 5.6.16-1.el6.remi remi-php56 php-pecl-apcu.x86_64 4.0.10-1.el6.remi.5.6 remi-php56 php-pecl-igbinary.x86_64 1.2.1-1.el6.remi.5.6 remi-php56 php-pecl-jsonc.x86_64 1.3.9-1.el6.remi.5.6 remi-php56 php-pecl-memcached.x86_64 2.2.0-3.el6.remi.5.6 remi-php56 php-pecl-msgpack.x86_64 0.5.7-1.el6.remi.5.6 remi-php56 php-pecl-zip.x86_64 1.13.1-1.el6.remi.5.6 remi-php56 php-process.x86_64 5.6.16-1.el6.remi remi-php56 php-xml.x86_64 5.6.16-1.el6.remi remi-php56
上記「アップデートされるライブラリ」内容でOKなら その内容でアップデート
$ sudo yum update php --enablerepo=remi-php56,remi 更新: php x86_64 5.6.16-1.el6.remi remi-php56 2.7 M 依存性関連での更新をします。: php-cli x86_64 5.6.16-1.el6.remi remi-php56 3.9 M php-common x86_64 5.6.16-1.el6.remi remi-php56 1.1 M php-fpm x86_64 5.6.16-1.el6.remi remi-php56 1.3 M php-intl x86_64 5.6.16-1.el6.remi remi-php56 206 k php-mbstring x86_64 5.6.16-1.el6.remi remi-php56 965 k php-mysqlnd x86_64 5.6.16-1.el6.remi remi-php56 273 k php-opcache x86_64 5.6.16-1.el6.remi remi-php56 121 k php-pdo x86_64 5.6.16-1.el6.remi remi-php56 116 k php-pecl-apcu x86_64 4.0.10-1.el6.remi.5.6 remi-php56 80 k php-pecl-igbinary x86_64 1.2.1-1.el6.remi.5.6 remi-php56 38 k php-pecl-jsonc x86_64 1.3.9-1.el6.remi.5.6 remi-php56 50 k php-pecl-memcached x86_64 2.2.0-3.el6.remi.5.6 remi-php56 101 k php-pecl-msgpack x86_64 0.5.7-1.el6.remi.5.6 remi-php56 54 k php-pecl-zip x86_64 1.13.1-1.el6.remi.5.6 remi-php56 52 k php-process x86_64 5.6.16-1.el6.remi remi-php56 60 k php-xml x86_64 5.6.16-1.el6.remi remi-php56 213 k アップグレード 17 パッケージ 総ダウンロード容量: 11 M
アップデートされる内容が不満、または うまくいかなかった場合、ライブラリを指定してアップデート
$ sudo yum update --enablerepo=remi,remi-php56 php php-common php-gd php-pear php-devel php-mbstring php-pdo php-mysql php-cli php-xml
- php以降のライブラリは「現在インストールされているライブラリを確認」したライブラリを指定
そもそもアップデートがうまくゆかなかった場合、再インストールする
$ sudo yum remove php-* // アンインストール $ sudo yum list installed | grep php // アンインストールされたことを確認 $ sudo yum install --enablerepo=remi,remi-php56 php php-common php-gd php-pear php-devel php-mbstring php-pdo php-mysql php-cli php-xml
- php以降のライブラリは「現在インストールされているライブラリを確認」したライブラリを指定
設定確認 & 移行
$ sudo vimdiff /etc/php.ini /etc/php.ini.YYMMDD $ sudo vimdiff /etc/php.d/〜.ini /etc/php.d.YYMMDD/〜.ini
- vimdiff が無い場合は yum でインストールする。
- PHP5.5 までは mbstring の設定を細かく行うのが恒例でしたが、PHP5.6 からは、mbstring の設定がいくつか非推奨になりました。mbstring の設定をデフォルトのままにしておき、代わりに php.ini で default_charset(drupalの場合 UTF-8) を設定することが推奨されています。
確認
$ php -v PHP 5.6.23 (cli) (built: Jan 3 2018 13:11:40) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies