ホームページ > 運用・保守 > Apache > MOD_PHPまたはPHP-FPMを使用してPHPで動作するようにApacheを構成するにはどうすればよいですか?

MOD_PHPまたはPHP-FPMを使用してPHPで動作するようにApacheを構成するにはどうすればよいですか?

James Robert Taylor
リリース: 2025-03-12 18:44:16
オリジナル
204 人が閲覧しました

mod_phpまたはphp-fpmを使用してPHPで動作するようにApacheを構成する

ApacheをPHPで動作するように構成するには、 mod_phpとPHP-FPM(FastCGI Process Manager)の2つの主要な方法から選択することが含まれます。 mod_php PHPをモジュールとしてApacheに直接統合し、PHP-FPMはFastCGIインターフェイスを介してApacheと通信する別のプロセスマネージャーとして実行されます。

MOD_PHPの使用:これはよりシンプルなアプローチであり、設定が少なくなる必要があります。 PHPをインストールした後、Apacheモジュールmod_phpが有効になっていることを確認してください。これには、通常、インストール後にApacheを再起動するか、システムのパッケージマネージャーを使用してモジュールを明示的に有効にすることが含まれます(たとえば、 7.4がPHPバージョンを表すDebian/Ubuntuシステムのa2enmod php7.4 )。 Apacheは、 .php拡張機能を備えたファイルのPHP処理を自動的に処理します。通常、それ以上の構成は必要ありませんが、特定の設定に対してphp.iniファイルを調整する必要がある場合があります。

PHP-FPMの使用:この方法は、特に重い負荷の下で、より良いパフォーマンスとリソース管理を提供します。まず、PHP-FPMをインストールします。次に、FastCGIクライアントとして機能するようにApacheを構成する必要があります。これには、Apache構成ファイル内に構成ブロックを追加することが含まれます(通常、システムに応じて/etc/apache2/sites-available/000-default.confにあります)。このブロックには、通常、PHPファイルの場所を指定し、 proxy_passディレクティブを使用してPHP-FPMソケットにリクエストを転送する<location></location>または<directory></directory>ディレクティブが含まれます。典型的な構成は次のようになるかもしれません:

 <code class="apache"><directory> Options Indexes FollowSymLinks AllowOverride All Require all granted <filesmatch> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </filesmatch> </directory></code>
ログイン後にコピー

/run/php/php7.4-fpm.sock PHP-FPMソケットへの実際のパスで置き換え、 Directoryディレクティブを調整してWebルートを指すようにしてください。 Apacheを構成した後、変更が有効になるように再起動します。 PHP-FPMはすでに実行中です。そうでない場合は、システムのinitシステムを使用して起動します(たとえば、 systemctl start php7.4-fpm )。

PHP-FPMとPHP-FPMの利点と短所

mod_php:

利点:

  • シンプルさ:セットアップと構成が簡単です。
  • オーバーヘッドの減少:プロセス間の通信オーバーヘッドはありません。

短所:

  • パフォーマンス: PHPの実行を直接処理するため、重い負荷の下で遅くなる可能性があります。
  • リソースの使用:各ApacheプロセスはPHPリソースを消費し、メモリ消費量の増加につながります。
  • 安定性が低い:単一のPHPスクリプトのクラッシュは、Apacheプロセス全体に潜在的に影響する可能性があります。

php-fpm:

利点:

  • パフォーマンス:重い負荷の下では大幅に高速で効率的です。
  • リソース管理:プロセスプーリングを通じて、より良いリソース利用と管理。
  • 安定性:単一のPHPスクリプトでのクラッシュは、Webサーバー全体に影響しません。
  • スケーラビリティ: PHP-FPMワーカーを追加することで、水平方向に簡単にスケーリングできます。

短所:

  • 複雑さ:より多くの構成とセットアップが必要です。
  • オーバーヘッド:プロセス間の通信オーバーヘッドを導入します(ただし、パフォーマンスの向上と比較して最小限です)。

PHPをApacheと統合するときの一般的なエラーのトラブルシューティング

トラブルシューティングの問題は、 mod_php使用しているのかphp-fpmを使用しているかによって異なります。

mod_php:

  • 「内部サーバーエラー」:特定のエラーメッセージについては、Apacheエラーログ( error.log )を確認します。一般的な原因には、PHPコードの構文エラー、PHP拡張機能の欠落、または許可の問題が含まれます。
  • 空白ページ: PHPが正しくインストールされ、 mod_phpモジュールが有効になっていることを確認してください。 PHPファイルのファイル許可を確認します。
  • 出力が正しくありません:エラーについては、PHPコードを確認してください。構成の問題については、 php.iniファイルを調べます。

php-fpm:

  • 「502 Bad Gateway」:これは、ApacheがPHP-FPMに接続できなかったことを示しています。 php-fpmが実行されているかどうかを確認してください。 Apache構成のソケットパスを確認します。ユーザーApacheがソケットにアクセスするための適切なアクセス許可を持っていることを確認してください。
  • 「内部サーバーエラー」: PHP-FPMエラーログ(通常は/var/log/php-fpm/error.logにあるか、同様のパスにあります)を確認します。このログは、より詳細なエラーメッセージを提供します。
  • 応答時間の遅い時間: PHP-FPMプール設定(ワーカープロセスの数など)を調整して、ワークロードのパフォーマンスを最適化します。

ApacheにPHPサポートをインストールおよび有効にします

インストールと有効化プロセスは、オペレーティングシステムとパッケージマネージャーによって異なります。

mod_phpを使用:

  1. PHPをインストール:システムのパッケージマネージャーを使用します(例: apt-get install php7.4 libapache2-mod-php7.4にDebian/Ubuntu)。
  2. モジュールを有効にする:システムのパッケージマネージャーを使用して、 mod_phpモジュールを有効にします(たとえば、 a2enmod php7.4 )。
  3. Apacheを再起動します:変更を有効にするためにApacheを再起動します(例、 systemctl restart apache2 )。

PHP-FPMの使用:

  1. PHPとPHP-FPMのインストール:システムのパッケージマネージャーを使用してください(たとえば、 apt-get install php7.4 php7.4-fpm )。
  2. Apacheの構成:最初のセクションで説明されているように、必要な<location></location>または<directory></directory>ブロックをApache構成ファイルに追加します。
  3. PHP-FPMを開始: PHP-FPMサービスを開始します(例: systemctl start php7.4-fpm )。
  4. Apacheを再起動:変更が有効になるためにApacheを再起動します。

7.4実際のPHPバージョンに置き換えることを忘れないでください。最も正確で最新の指示については、常に配布のドキュメントを参照してください。

以上がMOD_PHPまたはPHP-FPMを使用してPHPで動作するようにApacheを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート