WordPress環境のPHPバージョンアップ(5.4.16→7.3.9)

wordpress環境のPHPバージョンアップ(5.4.16 → 7.3.9)したのでメモ。

Contents

はじまり

勉強だりーな

AWS SAPの勉強しているというのに、手が付かない。
そうだ、アウトプットをしよう。と思ってwordpress開いたら鬼のようなプラグインアップデートの通知。

はいはい、更新更新・・・と思ったらJetPackがPHPバージョン低すぎて更新できない云々。。

他にも使いたかったコードハイライト用のプラグインとか使えないことを知り、これはいかんと感じる。
…よし、作業開始。

現在の環境・PHPのバージョンについて

現在のサーバ環境調べてみた。
ちなみにCentOSの標準yumリポジトリで入れたPHP。
後述のサイトにもあるようにyumだと古いPHPが入ってしまう。
自覚はあったけど、流石に時代に取り残されすぎたか。。

# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)  
# php -v
PHP 5.4.16 (cli) (built: Apr 12 2018 19:02:01) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

こちらを参考に整理。
えっ、私のPHPバージョン低すぎ・・・
https://qiita.com/bezeklik/items/72d1ff8393f66673e2bc

自覚はあったがやばい。

  • 5.4系最新でもない。 (5.4.16)
  • 最新(7.3)から遡ること6世代前。
  • サポートとっくに終了している。

どうせなので、最新PHPに上げてみたい。

下調べ

WordPress関連

wordpressはどこまで親切なのか、PHPアップデートに関する情報提供してくれる。
OSSの鑑かもしれない。
https://ja.wordpress.org/support/update-php/

※説明文がローカライズされた状態だと悪徳商法っぽい香りがした

この節は警告から始まりますが、安心してください。ほとんどが技術的な話で、PHP のバージョンアップ前に必要ないくつかの背景情報を説明するだけです。

ざっくり書くと、バックアップしておけ、互換性気にしてね。というところ。
※PHPバージョンアップについての記載は自前サーバなので自力で頑張る、後述。
特にプラグインについては便利な助言が。
何やら、PHP Compatibility Checkerなるプラグインで、アップデートしたいPHPバージョン指定でプラグイン互換性を調べてくれる、らしい。

試しにPHP7.3指定で実行した結果はこんな感じ。
警告対象についてはだめだったらちょっといじるか代替プラグイン探せば大丈夫なレベルのものばかり。

PHP関連

とりあえず7.3にあげてみたい。
centOS向けのコマンドチートシートレベルの良記事があったので、こちらを参考に。
https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0

具体的な作業

今回の作業スコープとしては、PHPを上げるだけ。
Wordpressプラグインはいったんそのままで、上げた後に確認してみる。
※人によってはWordpressの環境確認・準備をもっと行ったが良いと思う。

●epel・remi追加

# yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

●php.ini バックアップ (一応、存在確認)
# cp -p /etc/php.ini /root/.
# # ll /root/php.ini
-rw-r--r-- 1 root root 64946  9月 25 01:46 /root/php.ini

●さらば、PHP5.4 ,,,
# yum remove php-*

ちなみに削除されたパッケージは以下。
基本Baseから入れたものだけど一部メール通知用でepelからimap関連パッケージを入れていた。

===============================================================================
 Package             アーキテクチャー
                                   バージョン               リポジトリー  容量
===============================================================================
削除中:
 php                 x86_64        5.4.16-45.el7            @base        4.4 M
 php-cli             x86_64        5.4.16-45.el7            @base        8.8 M
 php-common          x86_64        5.4.16-45.el7            @base        3.8 M
 php-gd              x86_64        5.4.16-45.el7            @base        343 k
 php-imap            x86_64        5.4.16-7.el7             @epel        105 k
 php-mbstring        x86_64        5.4.16-45.el7            @base        1.3 M
 php-mysql           x86_64        5.4.16-45.el7            @base        232 k
 php-pdo             x86_64        5.4.16-45.el7            @base        193 k
 php-pear            noarch        1:1.9.4-21.el7           @base        2.2 M
 php-process         x86_64        5.4.16-45.el7            @base         79 k
 php-xml             x86_64        5.4.16-45.el7            @base        325 k

トランザクションの要約
===============================================================================
削除  11 パッケージ

続き、php7.3インストール
愚直にも上記パッケージを一発インストールしてみる。

# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php php-cli php-common php-gd php-imap php-mbstring php-mysql php-pdo php-pear php-process php-xml

結果、いい感じに依存性解決して後継パッケージをインストール試みてくれた。
これだからyumは便利。。
Is this ok [y/d/n] : →yキーをッターン!と叩いてインストール。

===============================================================================
 Package                  アーキテクチャー
                                    バージョン             リポジトリー   容量
===============================================================================
インストール中:
 php                      x86_64    7.3.9-1.el7.remi       remi-php73    3.2 M
 php-cli                  x86_64    7.3.9-1.el7.remi       remi-php73    4.9 M
 php-common               x86_64    7.3.9-1.el7.remi       remi-php73    1.1 M
 php-gd                   x86_64    7.3.9-1.el7.remi       remi-php73     80 k
 php-imap                 x86_64    7.3.9-1.el7.remi       remi-php73     87 k
 php-mbstring             x86_64    7.3.9-1.el7.remi       remi-php73    510 k
 php-mysqlnd              x86_64    7.3.9-1.el7.remi       remi-php73    233 k
 php-pdo                  x86_64    7.3.9-1.el7.remi       remi-php73    127 k
 php-pear                 noarch    1:1.10.9-3.el7.remi    remi          359 k
 php-process              x86_64    7.3.9-1.el7.remi       remi-php73     82 k
 php-xml                  x86_64    7.3.9-1.el7.remi       remi-php73    207 k
依存性関連でのインストールをします:
 gd-last                  x86_64    2.2.5-8.el7.remi       remi          134 k
 libargon2                x86_64    20161029-3.el7         epel           23 k
 libwebp7                 x86_64    1.0.2-1.el7.remi       remi          265 k
 oniguruma5               x86_64    6.9.3-1.el7.remi       remi          193 k
 php-fedora-autoloader    noarch    1.0.0-1.el7.remi       remi          8.9 k
 php-json                 x86_64    7.3.9-1.el7.remi       remi-php73     65 k

トランザクションの要約
===============================================================================
インストール  11 パッケージ (+6 個の依存関係のパッケージ)

インストール後はPHP7.3インストール直後のphp.iniを一応バックアップとって、コピってたphp.iniと差し替え。
Apache再起動して動作確認。
phpバージョンは7.3.9になりました。 (なんだ、簡単。。)

# cp -p /etc/php.ini /etc/php.ini.default73
# cp -p /root/php.ini /etc/php.ini
cp: `/etc/php.ini' を上書きしますか? y

# systemctl restart httpd
# php -v
PHP 7.3.9 (cli) (built: Aug 27 2019 22:52:39) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies

結果

割とサクッとPHP7.3にできた! JetPackもいい感じに動作
wordpress側の動作も今の所問題なし。
重ねて言うけれど、雑な使い方しているので人によってはこんなにスムーズに行かないのだろうな。

まとめ

ミドルウェアのバージョンアップはやってみたら簡単な場合もあるので、面倒くさがらず、意識高めであろう。と思った。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする