※記事内に商品プロモーションを含む場合があります
今まで、php5を使っていましたが、
WordPressの管理画面が遅いので気なっていました。
PHP7だと、メモリ使用率も下がり、高速化するらしいので
インストールしてみました。
PHP7のインストール
CentOS7の標準レポジトリではPHP5しかインストールできません。
追加レポジトリにremi,remi-php71を指定することで
Centos7でもyumでPHP7(PHP7.1)がインストールできます。
実際のコマンド
yum install –enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-fpm php-mysql php-xml
アップデート後確認する事
ApacheのPHP7の実行にmod_phpを使っている場合は、
confファイルを確認しておきましょう。
Apache 2.4.6では/etc/httpd/conf.modules.d/15-php.conf
のファイルです。
モジュールの読み込みがphp7となっていることを確認します。
LoadModule php7_module modules/libphp7.so
preformMPMなら上のようになっています。
APCu , OPcacheでさらなる高速化
PHP7でも早くなりました。
APCu とOPcacheを導入する事でもっと早く、メモリの節約にもなります。
APCが無くなって、APCuになった
数年前、PHPのキャッシュ機能と言えばAPCでした。
この時もPHP高速化のためAPCをインストールしましたが、
有効化するとWordpressが真っ白になってしまいました。
この現象が直らなかったため、APCは無効化していました。
今回PHPのキャッシュを、使うにあたり調べるとAPCがありません。
なぜか、オペコードキャシュのZend OPcache、
データキャッシュの APCu に分裂していました。
これは、前のAPCの時代にオペコードキャシュ部分に深刻なバグ
があった事が原因のようです。
APCからAPCuに変わり、オペコードキャシュ機能が削除され
データキャッシュを行っています。
オペコードキャシュはZend OPcacheが行っています。
詳しくはこちら
【参考】APCがAPCuとZend OPcacheに取って代わられたワケ
インストールはyumからできました。
実際のコマンド
yum install –enablerepo=remi,remi-php71 php-pecl-apcu php-pecl-zendopcache
参考にしたのはこちらのサイト
CentOS7 に 旧 APC (apcu & opcache)を導入する
テンプレート更新しても反映されない
apcu & opcacheで高速化はできるのですが唯一のデメリットがあります。
WordPressテンプレートやプラグインを更新しても反映されない事です。
apcu & opcacheでキャッシュされているので、記事は反映されます。
phpコード部分であるテンプレートやプラグインはキャッシュが残るので
キャッシュをクリアしないと更新が反映されません。
apcu & opcacheキャッシュをクリアする方法
一番簡単で手軽なのが、Apacheの再起動をする。
mod_php限定です。
もうひとつがopcache_resetを使う方法。
opcache_reset();
と書いたファイルを拡張子をphpにして保存。
webからアクセスできる所にアップロードしてアクセスすると
キャッシュがクリアされます。
WordPressならプラグインもあるので
こちらを利用しても良いでしょう、ただし日本語翻訳がありません。
【参考】WP OPcache
PHP7でCPU使用率が下がった
さくらのVPSの管理画面でCPU時間が表示されているのですが
PHP7に変えた頃からCPU時間が低下しています。
同時にメモリの使用率も下がっています。
サーチコンソールでもページのダウンロード時間 (ミリ秒)の
平均時間が、この頃から下がっています。
あとがき
本来は超高速WordPress仮想マシン「KUSANAGI」でも使われているHHVM
を使う予定でした。
PHP-FPMもダメでした。
今後、別サーバーなどでテストしHHVMかPHP7のPHP-FPMを設定する予定です。
HHVMかPHP-FPMならApacheのMPMをeventにしても効率が良いので
より早くなりそうです。