PHP7. xをチューニングしてwordpressを高速化 -ドメインソケット -OPcache

スポンサーリンク

wordpressの高速化について

wordpressを運用されている方で、サーバのパフォーマンスが悪くて、困っている方多いですよね。
PHPのバージョンとチューニングをするだけで、劇的に変わります。
今回は以下の3点でwordpressを高速化します。

  • PHPのバージョン
  • ドメインソケットの利用
  • OPcacheとAPCuの利用

検証環境

  • CentOS7.4
  • nginx 1.13.9
  • php 7.1
  • mariadb 10.2
  • wordpress 4.9.4

PHPのバージョンについて

PHPのバージョンは、5系が一般的に利用されていますが、7系を利用しましょう。
理由は、5→7で大幅な性能の改善が行われたからです。
Facebookで開発されたHHVMとの性能差はほとんどないか、チューニング次第で上回るほどみたいです。
VPSやレンタルサーバをご利用の方は、Webインターフェイスから簡単にバージョンを変更できます。

PHP7.1のインストール

  • リポジトリの登録
# yum -y install epel-release
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
  • リポジトリの確認
# ls /etc/yum.repos.d | grep php
remi-php54.repo
remi-php70.repo
remi-php71.repo
remi-php72.repo
  • インストール
# yum install --enablerepo=remi-php71 php php-mbstring php-pear php-fpm php-mcrypt php-devel php-xml php-pdo php-mysqlnd php-pecl-mysql

今回は7.1をインストールしていますが、”–enablerepo=remi-php71″でお好きなバージョンに変更してください。

ドメインソケットについて

nginxには、PHPの実行環境が付随していないので、php-fpmに処理を渡してあげなければなりません。
その際に、TCP通信かUNIXドメインソケットを利用しなければなりませんが、UNIXドメインソケットのほうがはるかにスループットが優れています。
TCPの場合、127.0.0.1:9000 に処理を受け渡します。TCPを利用するので信頼性は担保されますが速度が遅いです。
UNIXドメインソケットは、”.sock”ファイルを通して通信を行います。

ドメインソケットの設定

# vi /etc/php-fpm.d/www.conf
user = nginx → 変更
group = nginx → 変更
listen = /var/run/php-fpm/php-fpm.sock → 変更
listen.owner = nginx → 変更
listen.group = nginx → 変更
listen.mode = 0660 → 変更
# vi /etc/nginx/conf.d/default.conf
fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;  → 変更

OPcacheについて

PHPで書かれているWebサイトは、リクエストがあるたびにソースをコンパイルして、レスポンスを返しています。OPcacheを利用するとソースをコンパイルしたものをキャッシュとして保持していて、それをレスポンスとして返します。コンパイルをする手間がなくなるので、レスポンスの速度が上がります。

OPcacheとAPCuのインストール

  • インストール
# yum install --enablerepo=remi-php71 php-opcache php-pecl-apcu
  • サービスの再起動
# systemctl restart php-fpm
# systemctl restart nginx

基本的に、サービスの再起動で反映されるみたいです。

最後に

今回は、PHPをチューニングして高速化を図りました。正確に図っていませんが性能が上がっているのは間違いないです。次回は、nginxとmariadbのチューニングを取り上げたいと思います。

コメント

タイトルとURLをコピーしました