📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の11版が非表示) | |||
| 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> | ||
| 123行目: | 125行目: | ||
#EnvironmentFile=/<Apache2の設定ファイルがあるディレクトリ>/conf/httpd.conf | #EnvironmentFile=/<Apache2の設定ファイルがあるディレクトリ>/conf/httpd.conf | ||
#Environment=LD_LIBRARY_PATH=/usr/local/ssl/lib:/usr/local/lib:/usr/local/lib64:/usr/lib | #Environment=LD_LIBRARY_PATH=/usr/local/ssl/lib:/usr/local/lib:/usr/local/lib64:/usr/lib | ||
ExecStart=/<Apache2のインストールディレクトリ>/bin/apachectl start | ExecStart=/<Apache2のインストールディレクトリ>/bin/apachectl -k start | ||
ExecReload=/<Apache2のインストールディレクトリ>/bin/apachectl graceful | ExecReload=/<Apache2のインストールディレクトリ>/bin/apachectl -k graceful | ||
ExecStop=/<Apache2のインストールディレクトリ>/bin/apachectl stop | ExecStop=/<Apache2のインストールディレクトリ>/bin/apachectl -k stop | ||
#ExecStart=/<Apache2のインストールディレクトリ>/bin/httpd \$OPTIONS -DFOREGROUND | #ExecStart=/<Apache2のインストールディレクトリ>/bin/httpd \$OPTIONS -DFOREGROUND | ||
| 134行目: | 136行目: | ||
# Normally, Systemd sends SIGTERM signal right after the ExecStop, which would kill httpd. We are sending useless SIGCONT here to give httpd time to finish. | # Normally, Systemd sends SIGTERM signal right after the ExecStop, which would kill httpd. We are sending useless SIGCONT here to give httpd time to finish. | ||
#KillSignal=SIGCONT | #KillSignal=SIGCONT | ||
PrivateTmp=true | |||
[Install] | [Install] | ||
| 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> | ||
| 735行目: | 829行目: | ||
インストール済みのPHPの情報が表示されていれば、Apache2が正常に動作している。<br> | インストール済みのPHPの情報が表示されていれば、Apache2が正常に動作している。<br> | ||
<br><br> | <br><br> | ||
== PHP-FPMを使用する場合 == | |||
PHP-FPMを使用する場合、PHP-FPMが動作するユーザ名およびグループ名 (www.confファイルにある<code>user</code>および<code>group</code>) と同名にする必要がある。 (<code>nobody</code>でもよい)<br> | |||
この設定を行わない場合、リクエストが来てもテキストファイルのように.phpファイルの内容を返してしまう。<br> | |||
<br> | |||
Apache2の設定ファイル (httpd.confファイル) において、<code>User</code>および<code>Group</code>を設定する。<br> | |||
sudo vi /<Apache2のインストールディレクトリ>/conf/httpd.conf | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
# /<Apache2のインストールディレクトリ>/conf/httpd.confファイル | |||
User <PHP-FPMが動作する同一のユーザ名またはnobody> | |||
Group <PHP-FPMが動作する同一のグループ名またはnobody> | |||
</syntaxhighlight> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:SUSE]] | [[カテゴリ:SUSE]][[カテゴリ:Web]] | ||