Apache httpd をフォアグラウンド実行するには -DFOREGROUND オプションを付けます。しかし、Debian/Ubuntu のパッケージに入っている設定ファイルそのままだとこれだけではうまく動きません。

# apache2 -DFOREGROUND
[Fri Aug 30 13:48:20.314938 2024] [core:warn] [pid 32:tid 32] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
#

確かに何か書いてあります。

# grep -n APACHE_RUN_DIR /etc/apache2/apache2.conf
80:DefaultRuntimeDir ${APACHE_RUN_DIR}
#

この環境変数は /etc/apache2/envvars にシェルスクリプト形式で書いてあります。

# cat /etc/apache2/envvars
# envvars - default environment variables for apache2ctl
(中略)
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
(以下略)

というわけで、フォアグラウンド実行するにはここから環境変数を読んでおけばよいです。

# . /etc/apache2/envvars && apache2 -DFOREGROUND

あるいは、apachectl を使いたい場合は、

# APACHE_STARTED_BY_SYSTEMD=false APACHE_ARGUMENTS="-DFOREGROUND" apachectl start

ちなみに私は実際には exec したかったのですが、 apachectl を使う場合でも APACHE_HTTPD 環境変数を与えればできます。

# APACHE_HTTPD="exec /usr/sbin/apache2" APACHE_STARTED_BY_SYSTEMD=false APACHE_ARGUMENTS="-DFOREGROUND" exec apachectl start
Trackback

no comment untill now

Add your comment now