O Ubuntu Apache2 DefaultRuntimeDir deve ser um diretório válido, absoluto ou relativo ao ServerRoot

15

Eu tenho um servidor web executando o Ubuntu 17.04 com o qual estou tentando configurar Apache. Tudo correu muito bem até que eu decidi hospedar dois sites em uma única máquina através do virtualHosts. Agora apachese recusa a iniciar com até um único host habilitado. Cada vez que tento iniciar Apache, recebo este erro:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

Nenhuma das minhas tentativas de corrigir isso chegou a algo incluindo:

apt purge apache2 && rm -r /etc/apache2 

Toda a linha 80 da mensagem de erro diz que é DefaultRuntimeDir ${APACHE_RUN_DIR}.

E em nenhum momento vejo onde ou o que APACHE_RUN_DIRé declarado.

Alguém pode me ajudar?

timhyd
fonte

Respostas:

16

O comando

source /etc/apache2/envvars

resolvido o meu problema (depois de tentar todos os outros).

Para verificar se está tudo bem ou não, use o comando

apache2 -S

Eu achei que era mais rápido do que usando meus registros DNS.

eu sou
fonte
1
Eu usei o, source /etc/apache2/envvarsmas depois disso meu diretório pessoal mudou de ~para homee quando eu escrevi o CD, ele apareceu -bash: cd: HOME not set. Quando entrei nos envvars uma das primeiras linhas é # this won't be correct after changing uide unset HOME. Alguma idéia de como consertar isso?
Mihail Minkov 21/03/19
7

Há uma atualização ausente no "man apache2", pelo menos para a opção -V;

Hoje, deve-se usar "apachectl" ou "apache2ctl" em vez de

"apache2" para pelo menos algumas opções, conforme declarado em

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879571

Rocdufer
fonte
Não está nada claro como isso responde à pergunta.
Randy Cragun
6

O Apache2 usa /etc/apache2/envvarspara definir variáveis ​​de ambiente. Você pode usar essas informações para garantir que o diretório ${APACHE_RUN_DIR}aponte para que seja válido.

Eu estava enfrentando o mesmo problema ao atualizar de 14.04 para 17.04. O problema foi: ${APACHE_RUN_DIR}foi definido como /var/run/apache2, mas a pasta apache2 estava ausente /var/run.

A correção para mim foi: mkdir /var/run/apache2

Niyol
fonte
7
mesmo se você criou a pasta ou se a pasta já está apresentada (como na minha situação), você deve executar o seguinte comando. source /etc/apache2/envvars
Peshmerge
você só precisa executar o comando envvares se estiver iniciando o Apache sem o script de inicialização, se estiver usando init.d / system.d, o arquivo será originado automaticamente.
Niyol 31/10/19
@Peshmerge THanks! você pode me dizer como retê-lo após a reinicialização? parece que na reinicialização, temos que executar manualmente esse comando toda vez
T.Todua 19/18
1

no meu caso, tratava-se da linha "Exigir tudo negado" no arquivo apache2.conf que (novamente) no meu caso foi digitado como apenas "Exigir negado"

Гдето Якутский
fonte
0

Renomear o php5.6módulo apache ajuda a corrigir esse problema.

Pressione Ctrl+ Alt+ Te digite:

sudo a2dismod php5.6
sudo a2enmod php5.6

Em seguida, reinicie o serviço apache2:

sudo service apache2 restart
Vladimir Ch
fonte