Eu instalei o apache2 no ubuntu 13.10. Se eu tentar reiniciá-lo usando
sudo /etc/init.d/apache2 restart
Recebo esta mensagem:
AH00558: apache2: Não foi possível determinar com segurança o nome de domínio totalmente qualificado do servidor, usando 127.0.1.1. Defina a diretiva 'ServerName' globalmente para suprimir esta mensagem
Então, li que deveria editar meu httpd.conf
arquivo. Mas, como não consigo encontrá-lo na /etc/apache2/
pasta, tentei localizá-lo usando este comando:
/usr/sbin/apache2 -V
Mas a saída que recebo é esta:
[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}
A linha 74 /etc/apache2/apache2.conf
é a seguinte:
Mutex file:${APACHE_LOCK_DIR} default
Dei uma olhada no meu /etc/apache2/envvar
arquivo, mas não sei o que fazer com ele.
O que devo fazer?
apache-2.2
ubuntu
Kurt Bourbaki
fonte
fonte
Respostas:
Esta mensagem é exibida porque você executou diretamente o binário apache2. No Ubuntu / Debian, a configuração do apache depende do arquivo envvar, que é ativado apenas.
Se você iniciar o apache com o script init ou apachectl.
Seu problema original é que você não possui um nome de host adequado (fqdn) para sua máquina.
Se você não pode alterá-lo, altere a
ServerName
variável/etc/apache2/apache2.conf
paralocalhost
ou seu FQDN preferido.fonte
ServerName localhost
paraapache2.conf
(porquehttpd.conf
nem sempre é usado no Ubuntu) e agora tudo funciona como deveria. Você poderia adicionar detalhes às suas respostas, para que eu possa sinalizá-lo como aceito?apache2ctl
não funcionou para mim, eu tive que usar o serviço :sudo service apache2 restart
apache2
comando em primeiro lugar?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
mas não resolveConfig variable ${APACHE_LOCK_DIR} is not defined
.Crie seus envvars executando-o assim:
e depois
Voce deveria pegar:
fonte
/etc/apache2/envvars
não existeapachectl -V
vez de carregar manualmente as variáveis de ambiente.source /etc/apache2/envvars && sudo -E apache2 -V
loginroot
e faça conforme a resposta acima. O fornecimento do ambiente apache2 para um usuário comum que precisa usar o sudo não funcionará sem "-E". As permissões regulares do usuário não podem ler a pasta particular do certificado entre outros problemas. Você receberá um erro. Você precisa sudo -E ou executar completamente na conta root.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Verifique seu
/etc/apache2/envvars
APACHE_LOCK_DIR. No meu Ubuntu 12.04, isto é/var/lock/apache2$SUFFIX
, estar SUFFIX normalmente vazio.Verifique se o diretório existe e é gravável.
Pode ser que o arquivo envvars não seja originado corretamente? Se você der uma olhada,
/etc/init.d/apache2
pode ver que ele é originário.Meu (padrão)
/etc/apache2/envvars
:Se nada funcionar, eu tentaria reinstalar o (s) pacote (s).
fonte
Como dito anteriormente, você deve carregar (fonte) seu ambiente antes de executá-lo diretamente. Outra opção é usar:
apache2ctl
por exemplosudo apache2ctl -S
despejar meus anfitriões
fonte
TL; DR; Você deve iniciar o apache2 usando o que você já possui:
Detalhado:
Esta mensagem significa que você precisa definir o nome do servidor / nome de domínio. Não é essencial fazer isso para um host local / teste de produção, você não precisa se preocupar com isso.
Ao tentar executá-lo de outra maneira, usando apenas
apache2
, você receberá essas mensagens de erro por causa do que foi dito antes: as variáveis de ambiente são definidas quando você começa a usar o script padrãoinit.d
.fonte
Talvez isso resolva seu problema
fonte
Você precisa atualizar o DocumentRoot de
/var/www/html
para/var/www
Edite o arquivo /etc/apache2/sites-available/000-default.conf da seguinte maneira
fonte
Isso funciona para mim
fonte