Help us understand the problem. What is going on with this article?

Apache2.4+PHP-FPMのhttpd.confの個人的メモ

More than 5 years have passed since last update.

丁寧な解説を書くのが面倒なので個人的メモ。

Apache2.4と言えばevent-mpmが目玉。しかしPHPを素直にmod_phpとして使おうとするとprefork-mpmになってしまい、event-mpmが使えず何だかもったいない。

Apache自体はeventで、PHPはPHP-FPMによるFastCGIで、と組み合わせる場合、mod_proxy_fcgiを使うと楽らしい。2.4から標準装備になっており、設定を有効にするだけで使える。

このページが詳しい。

PHP-FPM - Httpd Wiki http://wiki.apache.org/httpd/PHP-FPM

インストール手順は省略。
httpd.confでは、この2行のコメントアウトを外しておく。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

PHP-FPMはポート9000で起動しているものとすると、個別のサイト設定は↓こんな感じ。

<Macro VhostPHP $domain $droot>
<VirtualHost $domain:80>
  ServerName $domain
  DocumentRoot $droot
  ProxyPassMatch \.(?:ico|png|gif|jpeg|jpg|css|js|html|php|json|xml)$ !
  ProxyPassMatch ^(.*)$ fcgi://127.0.0.1:9000$droot/index.php$1

  <Directory $droot>
    Require all granted
  </Directory>
</VirtualHost>
</Macro>

Macroはmod_macroをインストールしないと動かない部分なので、VirtualHostの中身をコピペして$XXXXを書き換える感じでも動く。

ProxyPassMatchで簡単な置き換えができるので、SymfonyやZend Frameworkのようなよくあるフロントコントローラーに直接リクエストを投げることができる。(上記の例ならmod_rewrite不要)

nginxを使う場合とそっくり?

Hiraku
PHP, Go界隈をうろうろしています。最近はgRPCと戦ってる。 特に明示していなければ、記事中のソースコード片は `CC-0 1.0` とします。出典表示無しで自由にコピペして頂いて構いません。 ただ、記事自体をコピペされるのは嫌なので、ソースコード部分以外の文章は通常通り全ての著作権を私が保持するものとします。 引用を超える範囲のコピペは止めて下さい。
http://blog.tojiru.net/
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away