Apache php-fpm fastcgi

Apache環境でPHP-FPM+FastCGIを動かす設定

Apache php-fpm fastcgi

Apache php-fpm fastcgiお客様の要件に合わせる為、色々なミドルウェアを組み合わせて環境を作ります。

今回はApache同梱のmod_phpを使わないでCGIでPHPを動作させる設定です。細かい部分はあるのですが、動くようにわかりやすく要点だけまとめます。

FastCGIの導入をします。

FastCGI

 

プロセス初回実行時に該当プロセスを一定時間サーバー内に保持することで、次回以降、実行時の「プロセスの起動/終了」を省略し、 高速化や、プロセスの起動/終了に伴うCPUへの負荷を軽減することで、速度面で優れるとされるモジュール版PHPと同等の処理能力を持つ動作方式です。

「FastCGI」を有効(ON)にすることで、一度「プロセスの起動」をすると、一定時間は「プロセスの終了」を することなく起動し続けることで、処理時間の大幅な短縮と、プロセスの起動/終了に伴うCPUへの負荷を軽減します。

 

@see https://www.xserver.ne.jp/manual/man_server_php_fastcgi.php

 

リポジトリを入れる

【EPEL】

【 RPMforge】

mod_fastcgiのインストール

 

mod_fastcgiモジュールを入れます。

PHPをFastCGIで動かす設定

所有権設定

実行権限を与えます。

 

バーチャルホスト設定

 

設定を適用させる。

 

これでひとまずfastcgiでPHPが動きます。

ここからPHP-FPMと連携させる

 

PHP-FPMはプロセスを制御・管理してくれる。

FPM (FastCGI Process Manager)

PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。

以下のような機能があります。

  • 緩やかな (graceful) 停止/起動 機能を含む高度なプロセス管理

  • 異なる uid/gid/chroot/environment でのワーカーの開始、 異なるポートでのリスン、異なる php.ini の使用 (safe_mode の代替)

  • 標準出力および標準エラー出力へのログ出力

  • opcode キャッシュが壊れた場合の緊急再起動

  • 高速なアップロードのサポート

  • “slowlog” – 実行時間が非常に長いスクリプトの記録 (スクリプト名だけでなく、PHP バックトレースも記録します。バックトレースを取得するために、 ptrace やそれと同等の仕組みを使ってリモートプロセスの execute_data を読みます)

  • fastcgi_finish_request() – 何か時間のかかる処理 (動画の変換や統計情報の処理など) を継続しながら リクエストを終了させてすべてのデータを出力させるための特殊な関数

  • 動的/静的 な子プロセスの起動

  • 基本的な SAPI の動作状況 (Apache の mod_status と同等)

  • php.ini ベースの設定ファイル

@see http://php.net/manual/ja/install.fpm.php

yumでPHP-FPMをインストール

設定ファイル

 

ディレクトリだけ作る(※空で大丈夫)

 

 

さっき設定したバーチャルホストの設定をPHP-FPM用に書き換える。

Apache既存のmod_phpモジュール用設定ファイルを無効化する。

Apacheに設定を反映させる

php-fpmを起動させよう

簡単にまとめるつもりが長くなっちゃいましたね。

お疲れ様です。

なんだか大変そうだなぁと思ったらご相談下さい。

Apache php-fpm fastcgi
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG