Apache 2.4 event mpm+ php-fpm で WordPress を立ち上げる

Pocket

お名前.com の VPS から さくらの VPS に乗り換えました
Apache event mpm + php-fpm を使う構成に
WordPress を移行したのですが、つまづいた点を記載しておきます

お名前のVPSの乗り換えを考える

KVM の VPS でないと使いにくかったため、DTI の ServersMan からお名前の VPS に変更してました

だがしかし、httpd が夜中に接続できなくなる事象が多発

はずれVPSだったのでしょうか・・・

ということで、乗り換えを決意します

ついでに、OS 自体も CentOS 6.6 から最新の CentOS 7 に乗り換えられればなー と。

Apache の event mpm への変更

CentOS 7 の apache は prefork mpm が読み込まれるようになってます

それを event のモジュールが読み込まれるように変更します

# vi /etc/httpd/conf.moduled.d/00-mpm.conf

prefork をコメントにし、event をコメント外します

php-fpm のインストール

php はスレッドセーフでないらしく、prefork で動かすしかありません
event で動かす場合、fast cgi として動かす必要があります

ですので、php の fast cgi manager をインストール

# yum install php-fpm
# systemctl enable php-fpm
# systemctl start php-fpm

設定はデフォルトのまま使います

fast cgi に対応する apache の設定

fast cgi に対応するために apache の設定をします

バーチャルホストとして設定し、あとからサイトを追加しても対応できるようにします
また、mod_macro の機能を使ってみます

<Macro VhostPHP $domain>
<VirtualHost *:80>
  ServerAdmin webmaster@$domain
  ServerName www.$domain
  ServerAlias $domain *.$domain
  DocumentRoot /var/www/$domain

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/$domain/$1

  CustomLog logs/$domain/access_log combined
  ErrorLog  logs/$domain/error_log

  <Directory /var/www/$domain>
    AllowOverride All
    Require all granted

  </Directory>
</VirtualHost>
</Macro>

USE VhostPHP example.jp

どう書けばいいのか悩んだのですが、最終的にシンプルになり、
ProxyPassMatch で拡張子が .php の場合に php-fpm のプロキシ経由にします

このファイルを virtual.conf として作成し、apache を再起動します

# vi /etc/httpd/conf.d/virtual.conf
# systemctl restart httpd

結果

WordPress の DB とファイルを移行も完了
ベンチマークでもとっておけばよかったのですが、
お名前で使っていた頃と比較して、爆速になりました

コメントを残す