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 のモジュールが読み込まれるように変更します

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

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

php-fpm のインストール

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

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

<br />
# yum install php-fpm<br />
# systemctl enable php-fpm<br />
# systemctl start php-fpm<br />

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

fast cgi に対応する apache の設定

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

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

<br />
&amp;lt;Macro VhostPHP $domain&amp;gt;<br />
&amp;lt;VirtualHost *:80&amp;gt;<br />
  ServerAdmin webmaster@$domain<br />
  ServerName www.$domain<br />
  ServerAlias $domain *.$domain<br />
  DocumentRoot /var/www/$domain</p>
<p>  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/$domain/$1</p>
<p>  CustomLog logs/$domain/access_log combined<br />
  ErrorLog  logs/$domain/error_log</p>
<p>  &amp;lt;Directory /var/www/$domain&amp;gt;<br />
    AllowOverride All<br />
    Require all granted</p>
<p>  &amp;lt;/Directory&amp;gt;<br />
&amp;lt;/VirtualHost&amp;gt;<br />
&amp;lt;/Macro&amp;gt;</p>
<p>USE VhostPHP example.jp<br />

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

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

<br />
# vi /etc/httpd/conf.d/virtual.conf<br />
# systemctl restart httpd<br />

結果

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

コメントを残す