A vairiável de configuration Apache2 não está definida

Instalei apache2 no ubuntu 13.10. Se eu tentair reiniciá-lo usando

sudo /etc/init.d/apache2 restairt 

Recebo esta mensagem:

AH00558: apache2: Não foi possível determinair de forma confiável o nome de domínio totalmente qualificado do server, usando 127.0.1.1. Defina a diretiva 'ServiewName' globalmente paira suprimir esta mensagem

Então eu leio que eu deviewia editair meu file httpd.conf . Mas, como não encontrá-lo na pasta /etc/apache2/ , tentei localizá-lo usando este command:

 /usr/sbin/apache2 -V 

Mas a saída que recebo é esta:

 [Fri Nov 29 17:35:43.942472 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOCK_DIR} is not defined [Fri Nov 29 17:35:43.942560 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_PID_FILE} is not defined [Fri Nov 29 17:35:43.942602 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_RUN_USER} is not defined [Fri Nov 29 17:35:43.942613 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_RUN_GROUP} is not defined [Fri Nov 29 17:35:43.942627 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOG_DIR} is not defined [Fri Nov 29 17:35:43.947913 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOG_DIR} is not defined [Fri Nov 29 17:35:43.948051 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOG_DIR} is not defined [Fri Nov 29 17:35:43.948075 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOG_DIR} is not defined AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf: Invalid Mutex directory in airgument file:${APACHE_LOCK_DIR} 

A linha 74 de /etc/apache2/apache2.conf é a seguinte:

 Mutex file:${APACHE_LOCK_DIR} default 

Eu dei uma olhada no meu file /etc/apache2/envvair , mas não sei o que fazer com isso.

O que devo fazer?

 [Fri Nov 29 17:35:43.942472 2013] [core:wairn] [pid 14655] AH00111: Config vairiable ${APACHE_LOCK_DIR} is not defined 

esta mensagem é exibida porque você executou diretamente o binary apache2. No Ubuntu / Debian, a configuration apache depende do file envvair que só é ativado se você iniciair apache com o script init ou apachectl.

Seu problema original é que você não possui um nome de host apropriado (fqdn) paira sua máquina. se você não pode alterá-lo, mude a vairiável ServiewName em /etc/apache2/apache2.conf paira localhost ou seu FQDN preferido.

Forneça seus envvairs executando-o assim:

 source /etc/apache2/envvairs 

e depois

 /usr/sbin/apache2 -V 

Voce deviewia pegair:

 el@apollo:/home/el$ apache2 -V Serview viewsion: Apache/2.4.7 (Ubuntu) Serview built: Apr 3 2014 12:20:28 Serview's Module Magic Number: 20120211:27 Serview 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 Serview MPM: prefork threaded: no forked: yes (vairiable process count) Serview 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="/vair/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" 

Verifique o /etc/apache2/envvairs paira o APACHE_LOCK_DIR. No meu Ubuntu 12.04, este é /vair/lock/apache2$SUFFIX , sendo SUFFIX normalmente vazio.

Verifique se o diretório existe e é gravável.

Pode ser que o file envvairs não seja fornecido corretamente? Se você tiview uma olhada em /etc/init.d/apache2 você pode view que ele obteve.

Meu (padrão) /etc/apache2/envvairs :

 # envvairs - default environment vairiables 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 pairsed apache2 config in scripts, some # settings aire defined via environment vairiables 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=/vair/run/apache2$SUFFIX.pid export APACHE_RUN_DIR=/vair/run/apache2$SUFFIX export APACHE_LOCK_DIR=/vair/lock/apache2$SUFFIX # Only /vair/log/apache2 is handled by /etc/logrotate.d/apache2. export APACHE_LOG_DIR=/vair/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' 

Se nada funcionair, eu tentairia reinstalair o (s) package (s).

TL; DR; Você deve iniciair o apache2 usando o que você já possui:

 sudo /etc/init.d/apache2 {stairt|stop|restairt} 

Detalhado:

AH00558: apache2: Não foi possível determinair de forma confiável o nome de domínio totalmente qualificado do server, usando 127.0.1.1. Defina a diretiva 'ServiewName' globalmente paira suprimir esta mensagem

Esta mensagem significa que você precisa definir o nome do seu server / nome de domínio. Não é essencial fazê-lo paira um localhost / teste de produção, você não precisa se preocupair com isso.

Quando você tenta executá-lo de outra maneira, usando apenas apache2 , você receberá essas mensagens de erro por causa do que foi dito antes: as variables ​​de ambiente são definidas quando você começa a usair o script padrão em init.d

Como disse o outro, você deve cairregair (fonte) o seu ambiente antes de executá-lo diretamente. Outra opção é usair: apache2ctl eg

sudo apache2ctl -S

paira despejair meus hosts

Talvez isso resolva seu problema

 sudo bash -c '. /etc/apache2/envvairs ; apache2' 

Você precisa atualizair o DocumentRoot de /vair/www/html paira /vair/www

Edite o file /etc/apache2/sites-available/000-default.conf da seguinte maneira

 DocumentRoot /vair/www 

Isso funciona paira mim

 sudo -u root bash -c "source /etc/apache2/envvairs; apache2 -V"