Apache no puede escribir pid después de la actualización 2.4

2
# service apache2 start
 * Starting web server apache2                                                                                                             
 AH00112: Warning: DocumentRoot [<removed>/public_html] does not exist
 * 
 * The apache2 instance did not start within 20 seconds. Please read the log files to discover problems

/var/apache2/error.log:

[Sun Mar 19 15:15:41.234542 2017] [ssl:warn] [pid 6491] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Mar 19 15:15:41.272641 2017] [ssl:warn] [pid 6492] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Mar 19 15:15:41.272744 2017] [core:error] [pid 6492] (13)Permission denied: AH00099: could not create /var/run/apache2/apache2.pid
[Sun Mar 19 15:15:41.272765 2017] [core:error] [pid 6492] AH00100: apache2: could not log pid to file /var/run/apache2/apache2.pid

Acabo de actualizar Ubuntu (Servidor) de 12.04 LTS a 14.04 LTS, y por lo tanto Apache de 2.2 a 2.4. He actualizado gran parte de la configuración, pero por alguna razón Apache parece no poder escribir su propio archivo pid, a pesar de haber probado todas las combinaciones de permisos que tengan sentido:

drwxrwxr-x  2 root www-data  40 Mar 19 14:55 /var/run/apache2

Apache no está haciendo chrooting y SELinux está deshabilitado. He iniciado sesión como www-data y probé que tiene permisos para crear el archivo pid, y lo hace.

La línea sobre la raíz del documento que no existe es, creo, el mismo problema, ya que www-data tiene acceso a él a través de acls. También he desactivado una directiva Mutex que hizo que Apache se quejara de no poder crear un archivo mutex, exactamente de la misma manera que este archivo pid, pero en un lugar completamente diferente.

No puedo pensar en nada que pueda estar causando esto, y agradecería algo de ayuda.

gandaliter
fuente
¿Estás en el apache group?
George Udosen
No hay grupo apache. www-data está en el grupo www-data, si eso es lo que quiere decir.
gandaliter
Sé que el grupo apache es www-data, ¿estás en ese grupo?
George Udosen
Lo siento. El usuario www-data es, y la raíz no lo es. Mi propio usuario no lo es. Estoy confundido porque no estoy seguro de qué cambiaría eso.
gandaliter
Agréguese al www-datagrupo sudo gpasswd -a <your-username> www-datay vea si cambia algo. www-data
Opero

Respuestas:

0

No puedo comentar o agregaría esto como un comentario en lugar de una respuesta, pero mi / var / run / apache2 es propiedad de root

drwxr-xr-x  2 root  root    60 Mar 18 18:50 apache2

asegúrese de que / var / www tenga los permisos correctos. Ahora estoy en 16.04 pero recuerdo que en un momento todos mis archivos apache estaban en la carpeta / var / www mientras que ahora están en / var / www / html, así que mmm

drwxr-xr-x  3 root root   4096 Mar  7 00:22 www


drwxr-xr-x  3 www-data www-data 4096 Mar 11 21:07 html

si tiene una carpeta html, puede ser una idea ejecutar

sudo chown -R www-data:www-data /var/www/html
Será
fuente
Es una configuración bastante compleja con muchos hosts virtuales. Los permisos no han cambiado desde antes de la actualización, y siempre funcionaron en ese momento. Todos son legibles por Apache.
gandaliter
Cuando actualicé, en alguna parte del proceso, mi documentación de apache cambió de / var / www a / var / www / html. Puede ser diferente para usted, pero su salida inicial menciona que no puede encontrar la raíz del documento. Seguí algunas guías, así que no puedo estar seguro de lo que finalmente lo solucionó, pero si hay un problema de raíz de documento, ¿ha verificado la configuración habilitada para sitios para asegurarse de que las rutas sean correctas? digitalocean.com/community/tutorials/… .
Will
Gracias por sus sugerencias Eliminé la configuración que tenía el host virtual confuso, y cuando ejecuto apachectl configtest ahora no informa problemas, pero el problema original persiste.
gandaliter
Tal vez este hilo podría ayudar ahora? askubuntu.com/questions/431925/…
Será el
Desgraciadamente, no hay otras instancias de apache ejecutándose, y no hay archivos pid con los que entrar en conflicto. Creé uno, chocó y lo borré, y vuelve al problema normal.
gandaliter
0

El problema ya se ha solucionado. Resultó que tenía algo que ver con que Apparmor no permitía la creación del archivo pid, a pesar de que estaba explícitamente permitido en el archivo de configuración. Publicaré más detalles cuando haya resuelto lo que estaba sucediendo.

gandaliter
fuente