📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の7版が非表示) | |||
| 50行目: | 50行目: | ||
APR-Utilをビルドおよびインストールする。<br> | APR-Utilをビルドおよびインストールする。<br> | ||
mkdir apr-util-build && cd apr-util-build | mkdir apr-util-build && cd apr-util-build | ||
../configure --prefix=<APRのインストールディレクトリ> -- | ../configure --prefix=<APRのインストールディレクトリ> \ | ||
--with-apr=<APRのインストールディレクトリ> \ # APRを任意のディレクトリにインストールしている場合 | |||
--with-valgrind # Valgrindを有効にする場合 | |||
<br> | <br> | ||
最後に、[https://httpd.apache.org/download.cgi Apache2の公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | 最後に、[https://httpd.apache.org/download.cgi Apache2の公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | ||
| 178行目: | 180行目: | ||
Webブラウザに、http://localhost と入力する。<br> | Webブラウザに、http://localhost と入力する。<br> | ||
"Welcome to SUSE Web Site"と記載されたWebページが表示されれば、Apache2のインストールは完了である。<br> | "Welcome to SUSE Web Site"と記載されたWebページが表示されれば、Apache2のインストールは完了である。<br> | ||
<br><br> | |||
== mod_fcgidモジュール (FastCGI) == | |||
==== mod_fcgidモジュールとは ==== | |||
mod_fcgidモジュールは、Apache HTTP ServerのFastCGI実装の1つであり、動的なWebコンテンツを効率的に処理するためのモジュールである。<br> | |||
<br> | |||
mod_fcgidモジュールの特徴として、従来のCGIに比べて高いパフォーマンスを実現する。<br> | |||
これは、プロセスを再利用することにより、リクエスト毎にプロセスを生成・破棄する従来のCGIの問題点を解決しているためである。<br> | |||
<br> | |||
設定では、基本的な設定だけで運用を開始できる。<br> | |||
プロセス管理も自動的に行われて、必要に応じてプロセスの数を増減させることができる。<br> | |||
<br> | |||
セキュリティにおいては、実行ユーザ、グループの制御、タイムアウト設定、プロセス数の制限等が可能である。<br> | |||
これにより、サーバリソースの過剰な使用を防ぎ、安全な運用を実現できる。<br> | |||
<br> | |||
mod_fcgidモジュールは、PHP、Python、Perl等のスクリプト言語との相性が良い。<br> | |||
また、他のFastCGI実装であるmod_fastcgiモジュールと比較すると、より軽量で設定が簡単という特徴がある。<br> | |||
<br> | |||
ただし、高度な設定オプションはmod_fastcgiモジュールの方が多く用意されている。<br> | |||
<br> | |||
==== mod_fcgidモジュールのインストール ==== | |||
[https://httpd.apache.org/download.cgi Apache2の公式Webサイト]にアクセスして、mod_fcgidモジュールのソースコードをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf mod_fcgid-<バージョン>.tar.gz | |||
cd mod_fcgid-<バージョン> | |||
<br> | |||
mod_fcgidモジュールをビルドおよびインストールする。<br> | |||
export APXS=/<Apache2のインストールディレクトリ>/bin/apxs; \ | |||
./configure.apxs --prefix=<Apache2のインストールディレクトリ> | |||
make -j $(nproc) | |||
make install | |||
<br> | |||
==== mod_fcgidモジュールの設定 ==== | |||
<syntaxhighlight lang="apache"> | |||
# FastCGIデーモンプロセスの基本設定 | |||
LoadModule fcgid_module modules/mod_fcgid.so | |||
<IfModule mod_fcgid.c> | |||
# メモリリークを防ぐための重要な設定 | |||
# プロセスの生存時間を3600秒 (1時間) に設定 | |||
# 長時間実行されているプロセスをクリーンアップして、メモリリークを防ぐ | |||
FcgidProcessLifeTime 3600 | |||
# サーバリソースの制御 (高負荷環境ではFcgidMaxProcessesの値を増やすことを検討する) | |||
# 同時に実行可能な最大プロセス数を5に制限 | |||
# サーバリソースの過剰使用を防ぐための重要な設定 | |||
# 必要に応じてサーバスペックに合わせて調整可能 | |||
FcgidMaxProcesses 5 | |||
# メモリ管理とパフォーマンスのバランス (環境に応じて500〜5000の範囲で調整) | |||
# 1つのプロセスが処理できる最大リクエスト数を1000に設定 | |||
# プロセスのメモリリークを防ぎ、定期的なプロセス再起動を強制 | |||
# 値を小さくするとプロセスの再起動が頻繁になり、大きくするとメモリリークのリスクが増加 | |||
FcgidMaxRequestsPerProcess 1000 | |||
# レスポンス時間とリソース効率のトレードオフを制御 (メモリに余裕がある場合はFcgidMinProcessesPerClassを1以上に設定する) | |||
# クラスごとの最小プロセス数を0に設定 | |||
# 必要な時のみプロセスを起動して、アイドル状態のプロセスを持たない | |||
# リソース効率を重視する場合は0、レスポンス時間を重視する場合は1以上を設定 | |||
FcgidMinProcessesPerClass 0 | |||
# 追加の推奨設定例: | |||
# プロセスのタイムアウト時間 (秒) | |||
#FcgidProcessConnectTimeout 20 | |||
# IOタイムアウト時間 (秒) | |||
#FcgidIOTimeout 40 | |||
# 1リクエストあたりの最大実行時間 (秒) | |||
#FcgidBusyTimeout 300 | |||
# スクリプトのタイムアウト時間 (秒) | |||
#FcgidIdleTimeout 30 | |||
# 最大リクエストサイズ (バイト) | |||
# アップロードサイズを制限することを推奨 | |||
#FcgidMaxRequestLen 1073741824 | |||
# エラーログの詳細レベル (debug, info, warn, error) | |||
#FcgidLogLevel error | |||
</IfModule> | |||
# 特定のディレクトリに対する個別の設定例 | |||
#<Directory "/var/www/html/fcgi-bin"> | |||
# SetHandler fcgid-script | |||
# Options +ExecCGI | |||
# AllowOverride None | |||
# Require all granted | |||
#</Directory> | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
| 737行目: | 831行目: | ||
== PHP-FPMを使用する場合 == | == PHP-FPMを使用する場合 == | ||
PHP-FPMを使用する場合、PHP- | PHP-FPMを使用する場合、PHP-FPMが動作するユーザ名およびグループ名 (www.confファイルにある<code>user</code>および<code>group</code>) と同名にする必要がある。 (<code>nobody</code>でもよい)<br> | ||
この設定を行わない場合、リクエストが来てもテキストファイルのように.phpファイルの内容を返してしまう。<br> | |||
<br> | <br> | ||
Apache2の設定ファイル (httpd.confファイル) において、<code>User</code>および<code>Group</code>を設定する。<br> | |||
sudo vi /<Apache2のインストールディレクトリ>/conf/httpd.conf | sudo vi /<Apache2のインストールディレクトリ>/conf/httpd.conf | ||
<br> | <br> | ||
| 746行目: | 840行目: | ||
# /<Apache2のインストールディレクトリ>/conf/httpd.confファイル | # /<Apache2のインストールディレクトリ>/conf/httpd.confファイル | ||
User <PHP- | User <PHP-FPMが動作する同一のユーザ名またはnobody> | ||
Group <PHP- | Group <PHP-FPMが動作する同一のグループ名またはnobody> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:SUSE]] | [[カテゴリ:SUSE]][[カテゴリ:Web]] | ||