[最終更新] 2017年5月31日
当サイトはConoHaのVPSで、用意されているCentOS 7のイメージをベースに、WordPressで構築している。CentOS 7では、標準のphpが5.4だが、今回高速と噂のphp7にバージョンアップさせた。GoogleのPageSpeed Insightsでサーバーの応答速度を見ると、確かに改善されたようだ。体感でも実感できる。作業のためにサーバーを止めた時間は1分程度じゃなかろうか。
環境
当サイトは以下の環境である。
- ConoHaのVPS
- CentOS 7.3
- nginx 1.10.2
- php 5.4.16
- MariaDB 5.5
何故かCentOS 7はphp 5.4.16でずっとメンテナンスされているらしい。MariaDBのバージョンも低い(WordPress 4.7の推奨はバージョン10以上)のが気になるが、今回は手を付けないことにする。
前準備
あまり自分でソースをダウンロードしてコンパイルして…などと頑張りたくないので、できればyumコマンドでインストールしたい。Remiリポジトリを用いると、yumで簡便にインストールすることが可能であるようなので、それを利用する。そのためにはEPELリポジトリを使う必要があるが、ConoHaのCentOSイメージは最初からEPEL有効化されている仕様なので、ここでは触れない。Remi、EPELについては「yum が便利になる RPMforge、Remi、EPEL とは一体何なのか – oki2a24」の解説が詳しい。
以下のコマンドを実行。
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi,remi-php71 info php
一応yum infoでバージョン7.1がインストールできることを確認。
あとは、使用しているプラグインや自分の書き加えたコードが、PHP7でも問題ないかであるが、これはもう環境によるとしか言えないのがつらいところだ。自分はあまりややこしいことはしていない(できない)し、使用しているプラグインもせいぜい10程度で、またサポートが続いているものを選んでいるので、まず問題なかろうと判断した。
前準備はこれだけ。
PHPのアップデート作業
ここからアップデート作業に入る。やることは以下。
- WordPress関連サービスの停止
- 現行のPHPの削除
- PHP7のインストール
- WordPress関連サービスの起動
サーバーを止めて作業をすることになるので、できれば人の少ない時間を見計らって行いたい。トラブルが起きなければ停止時間は1分程度で済むが、トラブルが起きれば……。
# 関連サービスの停止
sudo systemctl stop mariadb.service
sudo systemctl stop php-fpm.service
sudo systemctl stop nginx.service
# 現在のPHPを削除
sudo yum remove php*
# PHP7をインストール
sudo yum install --enablerepo=remi,remi-php71 php php-mbstring php-gd php-mysql php-pspell php-xml php-xmlrpc php-fpm
# PHPのバージョン確認
php --version
# PHP-FPMの再設定(nginx)
sudo sed -i "s/user = apache/user = nginx/" /etc/php-fpm.d/www.conf
sudo sed -i "s/group = apache/group = nginx/" /etc/php-fpm.d/www.conf
# 関連サービスの起動と有効化
sudo systemctl start nginx.service
sudo systemctl start php-fpm.service
sudo systemctl start mariadb.service
sudo systemctl enable php-fpm.service
PHP-FPMは設定し直しなことに注意。
サイトにアクセスして、問題なければOK。問題あったら……頑張ろう。自分の場合はPHP-FPMの設定を忘れていて、WordPressの操作をするユーザー名がapacheのままになっており、その関係でメディアのアップロードやプラグインのアップデートでエラーが出るようになった(WordPressを使っている人なら一度は見るだろう、FTP接続せよと促すアレである)。ただし、サーバーを停止した時間自体は恐らく1分ほど。サーバーが停止していたことに気づいた人はいなかったかもしれない。
高速化されたか
さて、PHP7にして当初の目的であった高速化は果たされたかであるが、これは驚くべきことに本当に速くなった。そういう触れ込みで、またそのような個人によるレポートも多くあり、だからこそ今回の作業を行ったのであるけれど、本当に快適になると驚いてしまう。
まず体感としてページの表示がキビキビとなされるようになったことがわかる。といっても体感でわかるのは平生からサイトにアクセスしている自分くらいであるから、参考程度に数値を出す。
「PageSpeed Insights」にて測ったところ、サーバーの応答速度が約0.5秒から約0.25秒にまで短縮された。

この「サーバーの応答時間」は、サーバーの負荷の具合などによって左右されるので、指標としてはあまり当てになるものではないかもしれない。しかし、日付や時間を変えて何度か計測したところ、いずれも0.25秒前後であった。この数値はこれまで見られないものだったので、高速化が言えるように思う。
こんなにスムーズにいくなら、もっと早くやっておけばよかったかな。それは結果論か。満足のいく結果だった。
関連記事
WordPress の記事
- [2019年9月27日] WordPressでナビゲーションメニューからランダムな記事に飛ばす固定ページを作る
- [2018年6月27日] WordPressのサイト(nginx)を同一サーバー上に複製する手順
- [2018年4月5日] WordPressでGoogle Tag Managerを利用する
- [2018年4月3日] WordPressでGoogle Analyticsを利用する
- [2017年5月8日] TwentySeventeenで1カラム(シングルカラム)にする
- ---本記事---
- [2017年5月3日] TwentySeventeenに変更。さらば黒枠。よりモノクロームに
- [2017年4月2日] WordPressの数式表現はMathJaxが一等便利
- [2017年1月17日] WordPress: get_the_category()で取得した記事のカテゴリー一覧を、親のカテゴリーのIDに基づき並べ替える
- [2017年1月7日] 滞りなくWordPress 4.7 にアップデート
- [2016年11月30日] Twenty Sixteen で記事本文の左側に回り込むフッターを回り込ませない
スポンサーリンク