it-swarm.com.de

Die Apache2-Konfigurationsvariable ist nicht definiert

Ich habe Apache2 unter Ubuntu 13.10 installiert. Wenn ich versuche, es mit neu zu starten

Sudo /etc/init.d/Apache2 restart

Ich bekomme diese Nachricht:

AH00558: Apache2: Der vollständig qualifizierte Domänenname des Servers konnte unter Verwendung von 127.0.1.1 nicht zuverlässig ermittelt werden. Legen Sie die Direktive 'ServerName' global fest, um diese Nachricht zu unterdrücken

Also habe ich gelesen, dass ich meine httpd.conf Datei bearbeiten soll. Da ich es jedoch nicht im Ordner /etc/Apache2/ Finden kann, habe ich versucht, es mit diesem Befehl zu finden:

/usr/sbin/Apache2 -V

Aber die Ausgabe, die ich bekomme, ist folgende:

[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}

Zeile 74 von /etc/Apache2/Apache2.conf Lautet wie folgt:

Mutex file:${Apache_LOCK_DIR} default

Ich habe mir meine /etc/Apache2/envvar - Datei angesehen, weiß aber nicht, was ich damit machen soll.

Was sollte ich tun?

68
Kurt Bourbaki
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${Apache_LOCK_DIR} is not defined

Diese Meldung wird angezeigt, weil Sie die Apache2-Binärdatei direkt ausgeführt haben. In Ubuntu/Debian basiert die Apache-Konfiguration auf der nur aktivierten envvar-Datei.

Wenn Sie Apache mit dem Init-Skript oder Apachectl starten.

Ihr ursprüngliches Problem ist, dass Sie keinen richtigen Hostnamen (fqdn) für Ihren Computer haben.

Wenn Sie es nicht ändern können, ändern Sie die Variable ServerName in /etc/Apache2/Apache2.conf bis localhost oder Ihren bevorzugten FQDN.

62
ah83

Geben Sie Ihre Envvars wie folgt ein:

source /etc/Apache2/envvars

und dann

/usr/sbin/Apache2 -V

Du solltest bekommen:

[email protected]:/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"
89
nadavkav

Überprüfe dein /etc/Apache2/envvars für das Apache_LOCK_DIR. In meinem Ubuntu 12.04 ist dies /var/lock/Apache2$SUFFIX, wobei SUFFIX normalerweise leer ist.

Überprüfen Sie, ob das Verzeichnis vorhanden und beschreibbar ist.

Kann es sein, dass die envvars-Datei nicht korrekt bezogen wurde? Wenn Sie sich /etc/init.d/Apache2 Sie können sehen, dass es beschafft wurde.

Mein (Standard) /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'

Wenn nichts funktioniert, würde ich versuchen, die Pakete neu zu installieren.

7
erny

Wie bereits erwähnt, müssen Sie Ihre Umgebung laden (quellen), bevor Sie sie direkt ausführen können. Eine weitere Option ist die Verwendung von: Apache2ctl z.B.

Sudo Apache2ctl -S

meine Gastgeber zu entleeren

2
amd

TL; DR; Sie sollten Apache2 mit dem starten, was Sie bereits haben:

Sudo /etc/init.d/Apache2 {start|stop|restart}

Detailliert :

AH00558: Apache2: Der vollständig qualifizierte Domänenname des Servers konnte unter Verwendung von 127.0.1.1 nicht zuverlässig ermittelt werden. Legen Sie die Direktive 'ServerName' global fest, um diese Nachricht zu unterdrücken

Diese Nachricht bedeutet, dass Sie Ihren Servernamen/Domänennamen definieren müssen. Es ist nicht unbedingt erforderlich, dies für einen lokalen Host/Test der Produktion zu tun. Sie müssen sich darüber keine Sorgen machen.

Wenn Sie versuchen, es andersheraus auszuführen und nur Apache2 Zu verwenden, werden diese Fehlermeldungen aufgrund der zuvor genannten Informationen angezeigt: Die Umgebungsvariablen werden definiert, wenn Sie das Standardskript in init.d.

2
George