2022年時点での今どきのPHP実行環境を調べた

2022/04/18 時点で PHP の実行環境を調べたので整理してメモ。 結論としては「nginx + php-fpm」の構成を使う。

Webサーバー

アクセス頻度が高く、負荷が気になるなら nginx。 逆にアクセス頻度が低く、安定性を重視するなら、使い果たされた枯れた技術という意味で apache も候補に出るだろう。

PHP 実行方式

PHP の実行方法はモジュール方式(mod_php)と CGI 方式の2つがある。

CGI 方式は Webサーバーとは別個のプロセスでプログラムを動かす方式。 毎回プログラムをメモリにロードする分、モジュール版よりも実行速度が劣っている。 一方、良いこともあり、CGI(方式の PHP)を動かすユーザーと Webサーバー本体を動かすユーザーを別にできるためセキュリティ面や CGI を動かすユーザー同士の干渉の問題が起こりにくい。

モジュール方式は、Webサーバーに組み込まれたモジュールを使って、Web サーバー本体のプロセスの中で PHP を実行する方式。

一昔前はセキュリティは現在よりも軽視されがちで、マシンリソースも十分ではなかったことから PHP を動かすといえば、 Apache + mod_php(モジュール方式)の構成がほとんどだった。

現在は CGI を改良した FastCGI の仕様が策定されており、PHP における FastCGI 実装として PHP: FastCGI Process Manager (FPM) - Manual がよく利用されている。

参考