CentosでPHPのバージョンアップ(例:5.3->5.6)を行う方法

カテゴリ アップデート コアバージョン 8.9.x 関連モジュール PHP

現在の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

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール タイトル降順で並び替える
サイトの環境設定 8.9.x 編集
コンテンツの作成 7.15 Darty Form 編集ページでの操作ミス
サイトの環境設定 7.23 Pathauto 自動生成されるURLエイリアスがおかしい
フォーム 7.16 Webform, Mail System, Mime Mail, Jp Mail Helper 送信メールのサブジェクトが長いと文字化けする
ユーザ 7.23 User 長い投稿者名の表示が切れる
テーマ 8.9.x patch パッチ 開発環境のファイル変更を本番環境にパッチでデプロイする方法(画像含まず)
開発 mail 7.50 Mail Safety 開発/テスト用サイトのメール

ページ