Ubuntu Apache2 DefaultRuntimeDir debe ser un directorio válido, absoluto o relativo a ServerRoot

16

Tengo un servidor web con Ubuntu 17.04 que estoy intentando configurar Apache. Todo funcionó muy bien hasta que decidí alojar dos sitios web en una sola máquina a través de virtualHosts. Ahora se apacheniega a iniciar incluso con un solo host habilitado. Cada vez que intento iniciar Apacheme sale este error:

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

Ninguno de mis intentos de solucionar esto ha llegado a nada, incluyendo:

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

Toda la línea 80 del mensaje de error me dice que es DefaultRuntimeDir ${APACHE_RUN_DIR}.

Y en ningún momento veo dónde o qué APACHE_RUN_DIRse declara como.

¿Alguien me puede ayudar?

timhyd
fuente

Respuestas:

16

El comando

source /etc/apache2/envvars

Solucioné mi problema (después de probar TODOS los demás).

Para verificar si todo está bien o no, use el comando

apache2 -S

Descubrí que era más rápido que usar mis registros DNS.

ianm
fuente
1
He utilizado el source /etc/apache2/envvarspero después de eso mi directorio cambiado desde ~que homey cuando escribí cd se notaba -bash: cd: HOME not set. Cuando entré a los envvars, una de las primeras líneas es # this won't be correct after changing uidy unset HOME. ¿Algúna idea de cómo arreglar esto?
Mihail Minkov
7

Falta una actualización en "man apache2", al menos para la opción -V;

Hoy, uno debería usar "apachectl" o "apache2ctl" en lugar de

"apache2" para al menos algunas opciones, como se indica en

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

Rocdufer
fuente
No está nada claro cómo responde esto a la pregunta.
Randy Cragun
6

Apache2 utiliza /etc/apache2/envvarspara establecer variables de entorno. Puede usar esta información para asegurarse de que el directorio ${APACHE_RUN_DIR}apunte es válido.

Estaba experimentando el mismo problema al actualizar de 14.04 a 17.04. El problema era: ${APACHE_RUN_DIR}estaba configurado en /var/run/apache2, pero faltaba la carpeta apache2 /var/run.

La solución para mí fue: mkdir /var/run/apache2

Niyol
fuente
77
incluso si creó la carpeta o si la carpeta ya está presentada (como en mi situación), debe ejecutar el siguiente comando. source /etc/apache2/envvars
Peshmerge
solo necesita ejecutar el comando envvares si está iniciando Apache sin el script de inicio, si está usando init.d / system.d el archivo se obtendrá automáticamente.
Niyol
@Peshmerge GRACIAS! ¿Me puede decir cómo conservarlo después de reiniciar? parece que al reiniciar tenemos que ejecutar manualmente ese comando cada vez
T.Todua
1

en mi caso, se trataba de la línea "Requerir todo denegado" en el archivo apache2.conf que (nuevamente) en mi caso se escribió simplemente como "Requerir denegado"

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

Volver a habilitar el php5.6módulo apache ayuda a solucionar este problema.

Presione Ctrl+ Alt+ Ty escriba estos:

sudo a2dismod php5.6
sudo a2enmod php5.6

Luego reinicie el servicio apache2:

sudo service apache2 restart
Vladimir Ch
fuente