[aman@aman-Inspiron-1440:~$ apache2
[Mon Apr 21 17:36:38.019213 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Apr 21 17:36:38.019345 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Apr 21 17:36:38.019370 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Apr 21 17:36:38.019385 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Apr 21 17:36:38.019414 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.028756 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029032 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029056 2014] [core:warn] [pid 4134] 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}
Este es el contenido del /etc/apache2/apache2.conf
archivo.
Respuestas:
Tuve este problema: la causa está en el archivo
donde la raíz ha cambiado:
antes de actualizar =
/var/www
después de actualizar =
/var/www/html
Así que edite para modificar este archivo
Y reiniciar apache
fuente
000-default.conf
archivo.html
subcarpeta ya existe, lo que en mi caso es irrelevante ya que todos mis sitios usan VirtualHostsDocumentRoot
configuración.Tuve este problema a pesar de que apache funcionaba para mí. Simplemente quería hacer un rápido
para encontrar el valor de
SERVER_CONFIG_FILE
. Como esa no es la forma de iniciar apache2, falla con los errores que publica el OP. Una solución rápida y sucia es simplemente establecer primero los entornos que faltan:Esto establece la variable APACHE_LOCK_DIR y todo está bien (
-D SERVER_CONFIG_FILE="apache2.conf"
).fuente
apache2 -S
falló. Todo arreglado.apache2
embargo, ejecutarse como root solucionó el problema.apache2ctl -V
Síntomas y solución.
En muchos sitios web o foros de preguntas y respuestas, las personas confunden síntomas y causas reales. Acabo de actualizar un servidor ubuntu de 13.10 a 14.04.1 y encontré exactamente los mismos síntomas descritos por el OP, incluyendo:
1- apache aparentemente no funciona. 2- variable de configuración de apache indefinida. 3- el error de sintaxis mencionado por el OP.
El problema es que no todos estos síntomas están realmente relacionados con el problema real y solo sirven como una distracción para aquellos que hacen todo lo posible por ayudar.
Diferentes problemas de raíz pueden hacer que los administradores visiten sitios como este con aproximadamente la misma descripción: "Actualicé el sistema operativo y ahora Apache no funciona ..."
Una causa específica
Teniendo exactamente los mismos síntomas aparentes que el OP, me atrajo esta pregunta. ¡Desafortunadamente, la única respuesta que contenía una pista válida de la causa raíz real de mi problema fue rechazada (-1), publicada por el usuario 1469291 con un representante de 1 !! Así que busqué más en otros sitios web hasta que encontré una explicación clara del problema (y, por lo tanto, de la solución).
La solución que sigue puede que no resuelva el verdadero problema del OP, pero estoy seguro de que ayudará a otros que puedan sentirse atraídos por esta pregunta por las mismas razones que yo.
/etc/apache2/apache2.conf contiene:
lo que significa que solo se cargarán los archivos de configuración del sitio en / etc / apache2 / sites-enabled / que terminan en .conf. Los enlaces simbólicos más antiguos en ese directorio serán ignorados.
Solía ser simplemente sitios habilitados / *. Es por eso que todos mis archivos de configuración de host virtual que simplemente llamé ww1.example.com, ww2.example.com, etc., solían funcionar pero de repente e inicialmente inexplicablemente dejaron de funcionar después de la actualización.
Por lo tanto, cambie la directiva anterior y vuelva a cargar apache, o, como hice, elimine manualmente todos los enlaces simbólicos más antiguos en sitios habilitados /, cambie el nombre de todos los archivos en sitios disponibles / para agregar el sufijo .conf y luego vuelva a habilitar cada Sitio individualmente.
Además, la directiva predeterminada en apache.conf es más estricta:
Entonces, si aloja sus sitios virtuales en / home / user / algún lugar, asegúrese de anular la directiva de manera adecuada.
fuente
Mirando de cerca su problema, solo está corriendo
apache2
. Para iniciar apache en Ubuntu, ejecute el siguiente comando:La configuración de Apache se divide en varios archivos, uno de esos archivos son variables de entorno. Cuando está ejecutando solo
apache2
, estas variables no están establecidas.El script apache2ctl cargará las variables (y hará algunas otras cosas también cuando sea necesario) antes de comenzar con apache
apache2 -k start
.fuente
sudo apache2ctl restart
lugar.Edite la configuración
sudo leafpad /etc/apache2/apache2.conf
::o eliminar el archivo.
fuente
La respuesta de augustin funcionó para mí cuando todos mis hosts virtuales desaparecieron después de una actualización del servidor de 12.04 LTS a 14.04 LTS. Lo votaría si tuviera la reputación de hacerlo.
El siguiente comando agregará el
.conf
sufijo a todos los enlaces simbólicos/etc/apache2/sites-enabled
que aún no lo tienen:Además, se ha cambiado el uso de la sintaxis
Allow from
/ en el módulo mod_authz_host ( aquí está el enlace para la documentación 2.2).Deny from
Require
El siguiente comando editará el uso común de
Order allow, deny
seguido deAllow from all
to beRequire all granted
en su lugar:fuente
De hecho, el docroot cambia entre preciso y confiable de / var / www a / var / www / html. Es pobre que el script do-release-upgrade no retroceda el docroot.
A) Cualquiera de los dos es válido, pero html es más convencional. CentOS es influyente en este sentido. La página "funciona" es más madura ahora también.
B) No tiene que usar / var / www / html, pero si lo hace ...
C) Y puede ser más fácil construir desde cero y migrar.
D) Este síntoma ocurrirá si "sudo apache2 -k graceful" fuera de la caja en Trusty, ¿actualiza o no debido a que los envvars no están dentro del alcance? Utilice "sudo apache2ctl start / stop / restart" en su lugar.
fuente
En mi caso:
html
subcarpeta/var/www/
ya existía pero aún recibía el error:AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
/home/{user}/sites/
lugar de la predeterminada/var/www/html
apache2 -v
)Cómo resolví el problema en cinco sencillos pasos:
En
/etc/apache2/apache2.conf
agregué lo siguiente después de la línea 169:Me aseguré de que mi configuración de Virtual Host nombrada
website.conf
en/etc/apache2/sites-available
se copiara del valor predeterminado000-default.conf
, y tenía el siguiente aspecto:Recargué mi sitio (
sudo a2dissite website && sudo a2ensite website
) y mi servidor y el error inicial desapareció. WOOHOO! Pero surgió uno nuevo: "AH00035: acceso a / denegado (ruta del sistema de archivos '/ home / {user} / sites') porque faltan permisos de búsqueda en un componente de la ruta". Esto lo resolví en el paso 4.El nuevo problema se debió a los permisos, por lo que simplemente configuré cada uno de los directorios que conducen a la
website
carpeta achmod 755
. ¡Todos y cada uno! Lahome
carpeta, la carpeta {usuario}, la carpeta de sitios e incluso la carpeta de mi sitio webDespués de actualizar mi navegador en
website.dev
todo cargado bien!PD ya había configurado
website.dev
en mi/etc/hosts
archivo.Consejo adicional: para verificar los permisos de una carpeta en particular, puede usar el comando
stat -c %a /path/to/file/or/folder
. Para verificar los permisos de cada parte del uso de un directorionamei -m /path/to/final/folder
.fuente