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.降順で並び替える 関連モジュール タイトル
コンテンツの管理 7.16 PHP 好きなところにノードを埋め込みたい
サイトの構築 7.19 Plesk Pleskでdrupal7(プライベートファイルシステム)を使う場合の注意点
サイトの構築 7.22 Views Devel Viewsの設定ページが変に?
PHP 7.22 PHP ノードに付いたコメントを好きな場所に表示する
サイトの構築 7.22 Views フィールドセットの伸縮をノンプログラミングでやりたい
ユーザ 7.22 Realname ユーザーIDではなくニックネーム等を表示したい
コンテンツの作成 7.22 node Views ノードに付いたコメントに関する情報を得る
テーマ 7.23 hook ページや状況によってテーマを切り替える
サイトの構築 7.23 Conditional fields ノード編集フォームを動的にしたい
ブロック 7.23 伸縮するfieldsetブロックを追加したい
サイトの環境設定 7.23 Image Style 画像スタイルの使い方(Crop)
ユーザ 7.23 PHP user_load_multiple()の復帰値
ユーザ 7.23 User 長い投稿者名の表示が切れる
コンテンツの作成 7.23 maxlength テキストフィールドの最大長のチェック&カウントダウン
サイトの環境設定 7.23 Pathauto 自動生成されるURLエイリアスがおかしい
表示 7.26 Views ページ内に2つ目Viewsブロックを設置するときPagerが連動してしまう
コンテンツの作成 7.26 PHP ノード内の一部(フィールド)を変更する
サイトの構築 7.26 Field Views フォーム選択肢(プルダウンやチェックボックス、ラジオボタン)のカスタマイズ方法
排他 7.26 lock Viewsモジュールの設定ページのような排他機能
コンテンツの作成 7.26 CKEditor Views Viewsでティザーを一覧するとページのレイアウトが崩れることがある

ページ