8月
30
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
no comment untill now