📢 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のインストールディレクトリ> --enable-threads --with-valgrind
  ../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
  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]]