Apache2をubuntu 13.10にインストールしました。を使用して再起動しようとした場合
Sudo /etc/init.d/Apache2 restart
私はこのメッセージを受け取ります:
AH00558:Apache2:127.0.1.1を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 'ServerName'ディレクティブをグローバルに設定して、このメッセージを抑制します
ですから、httpd.conf
ファイルを編集する必要があると読みました。しかし、/etc/Apache2/
フォルダーにそれが見つからないため、次のコマンドを使用してそれを見つけようとしました。
/usr/sbin/Apache2 -V
しかし、私が得る出力はこれです:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/Apache2/Apache2.conf:
Invalid Mutex directory in argument file:${Apache_LOCK_DIR}
/etc/Apache2/Apache2.conf
の74行目は次のとおりです:
Mutex file:${Apache_LOCK_DIR} default
/etc/Apache2/envvar
ファイルを確認しましたが、どうすればよいかわかりません。
私は何をすべきか?
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOCK_DIR} is not defined
このメッセージは、Apache2バイナリを直接実行したために表示されます。 Ubuntu/Debianでは、Apacheの設定は、アクティブ化のみされるenvvarファイルに依存しています。
Initスクリプトまたはapachectlを使用してApacheを起動した場合。
元の問題は、マシンに適切なホスト名(fqdn)がないことです。
変更できない場合は、/etc/Apache2/Apache2.conf
のServerName
変数をlocalhost
またはお好みのFQDNに変更します。
次のように実行して、envvarsを入手します。
source /etc/Apache2/envvars
その後
/usr/sbin/Apache2 -V
あなたは得るべきです:
el@apollo:/home/el$ Apache2 -V
Server version: Apache/2.4.7 (Ubuntu)
Server built: Apr 3 2014 12:20:28
Server's Module Magic Number: 20120211:27
Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/Apache2"
-D SUEXEC_BIN="/usr/lib/Apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/Apache2.pid"
-D DEFAULT_SCOREBOARD="logs/Apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="Apache2.conf"
/etc/Apache2/envvars
(Apache_LOCK_DIR用)。私のUbuntu 12.04では、これは/var/lock/Apache2$SUFFIX
、通常はSUFFIXです。
ディレクトリが存在し、書き込み可能かどうかを確認してください。
Envvarsファイルが正しく読み込まれていない可能性がありますか? /etc/init.d/Apache2
供給元であることがわかります。
私(デフォルト)/etc/Apache2/envvars
:
# envvars - default environment variables for Apache2ctl
# this won't be correct after changing uid
unset HOME
# for supporting multiple Apache2 instances
if [ "${Apache_CONFDIR##/etc/Apache2-}" != "${Apache_CONFDIR}" ] ; then
SUFFIX="-${Apache_CONFDIR##/etc/Apache2-}"
else
SUFFIX=
fi
# Since there is no sane way to get the parsed Apache2 config in scripts, some
# settings are defined via environment variables and then used in Apache2ctl,
# /etc/init.d/Apache2, /etc/logrotate.d/Apache2, etc.
export Apache_RUN_USER=www-data
export Apache_RUN_GROUP=www-data
export Apache_PID_FILE=/var/run/Apache2$SUFFIX.pid
export Apache_RUN_DIR=/var/run/Apache2$SUFFIX
export Apache_LOCK_DIR=/var/lock/Apache2$SUFFIX
# Only /var/log/Apache2 is handled by /etc/logrotate.d/Apache2.
export Apache_LOG_DIR=/var/log/Apache2$SUFFIX
## The locale used by some modules like mod_dav
export LANG=C
## Uncomment the following line to use the system default locale instead:
#. /etc/default/locale
export LANG
## The command to get the status for 'Apache2ctl status'.
## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
#export Apache_LYNX='www-browser -dump'
## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#Apache_ULIMIT_MAX_FILES='ulimit -n 65536'
何もうまくいかない場合は、パッケージを再インストールしようとします。
他の人が言ったように、直接実行する前に環境をロード(ソース)する必要があります。別のオプションはApache2ctl
を使用することです。
Sudo Apache2ctl -S
私のホストをダンプする
TL; DR;すでに持っているものを使用してApache2を起動する必要があります。
Sudo /etc/init.d/Apache2 {start|stop|restart}
詳細:
AH00558:Apache2:127.0.1.1を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 'ServerName'ディレクティブをグローバルに設定して、このメッセージを抑制します
このメッセージは、サーバー名/ドメイン名を定義する必要があることを意味します。ローカルホストや本番環境のテストでこれを行うことは必須ではありません。心配する必要はありません。
Apache2
のみを使用して別の方法で実行しようとすると、前述の理由により、これらのエラーメッセージが表示されます。環境変数は、init.d
のデフォルトスクリプトの使用を開始すると定義されます。