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.38 node form ノード編集フォームをテーブル表示形式にしたい
コンテンツの作成 7.22 node Views ノードに付いたコメントに関する情報を得る
コンテンツの管理 7.15 Pagenation 一つの長いページをBookなどのように連続して読ませることはできますか?
ユーザ 7.44 Password Policy 無効なユーザーを整理したい
テーマ 8.9.x patch パッチ 開発環境のファイル変更を本番環境にパッチでデプロイする方法(画像含まず)
サイトの環境設定 7.23 Pathauto 自動生成されるURLエイリアスがおかしい
権限 7.15 Path_Access Content_Access 特定のページ(パス)をアクセス制限したい
ユーザの管理 7.50 Paypal continued billing drupal7のPaypal継続課金モジュールについて
PHP 7.22 PHP ノードに付いたコメントを好きな場所に表示する
JavaScript 8.5.x PHP Commerce決済モジュール設定をJavaScriptにデータに渡す方法
JavaScript 7.34 PHP PHPからJavaScriptに変数値を渡したい
ユーザ 7.23 PHP user_load_multiple()の復帰値
PHP-FPM 8.9.x PHP PHP-FPM 環境で .htaccess に php_value を 書いてもダメ
PHP 8.3x PHP drupa8でhook_init()する方法
チューニング 7.26 PHP DrupalはNginxで動く?
PHP 8.9.x PHP YamlをPHP配列にする方法
コンテンツの管理 7.16 PHP 好きなところにノードを埋め込みたい
Database 7.34 PHP データベースクエリ(SELECT)時のSQL関数
アップデート 8.9.x PHP CentosでPHPのバージョンアップ(例:5.3->5.6)を行う方法
コンテンツの作成 7.26 PHP ノード内の一部(フィールド)を変更する

ページ