Después de eliminar la versión 0.7.x que venía con los paquetes estándar de Debian, instalé la versión 1.4.1 de nginx por fuente.
Es posible iniciar nginx service nginx start
y veo que nginx está reservando el puerto 80 cuando hago netstat.
netstat -apn | grep nginx
producción:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3115/nginx
El problema es que cuando lo hago service nginx status
o service nginx stop
recibo este mensaje:
No se pudo acceder al archivo PID para nginx... ¡falló!
¿A quién puedo arreglar esto? ¿Y cómo evito tener este problema?
EDITAR: solución
remove nginx
- luego ve a la fuente y
./configure --pid-path=/var/run/nginx.pid
make
checkinstall make install
Respuesta1
Debian probablemente configuró/parcheó nginx para que su paquete coloque el archivo pid en un lugar específico que no está disponible de forma predeterminada. Cuando lo reemplazó mediante algo compilado desde el código fuente, no coincide con las expectativas de la infraestructura del servicio.
Miraría qué parches y opciones de configuración hicieron la gente de Debian y volvería a compilar su versión 1.4.x con las opciones para colocar el archivo pid en el mismo lugar.
¿En cuanto a cómo prevenir este tipo de problema? Haga las cosas a través de paquetes o compile desde la fuente, pero no ambas cosas. O tenga en cuenta que deberá tener especial cuidado al hacerlo, ya que las cosas se romperán.