Error de instalación de Nginx en Ubuntu 16.04

58
: ~ $ sudo apt-get remove nginx * && sudo apt-get install nginx-full *

Leyendo listas de paquetes ... Hecho
Construyendo árbol de dependencia       
Leyendo información del estado ... Hecho

Después de esta operación, se usarán 5,579 kB de espacio de disco adicional.
¿Quieres continuar? [S / n] y
Obtenga: 1 http://in.archive.ubuntu.com/ubuntu xenial-updates / universe amd64 nginx-full-dbg amd64 1.10.0-0ubuntu0.16.04.1 [3,789 kB]
Obtuvo 3.789 kB en 33 s (112 kB / s)                                             
Selección del paquete no seleccionado previamente nginx-common.
(Leyendo la base de datos ... 189767 archivos y directorios actualmente instalados).
Preparando para desempaquetar ... / nginx-common_1.10.0-0ubuntu0.16.04.1_all.deb ...
Desempacando nginx-common (1.10.0-0ubuntu0.16.04.1) ...
Selección del paquete no seleccionado previamente nginx-full.
Preparando para descomprimir ... / nginx-full_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
Desempacando nginx-full (1.10.0-0ubuntu0.16.04.1) ...
Selección del paquete no seleccionado previamente nginx-full-dbg.
Preparando para descomprimir ... / nginx-full-dbg_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
Desempacando nginx-full-dbg (1.10.0-0ubuntu0.16.04.1) ...
Procesando disparadores para ufw (0.35-0ubuntu1) ...
Reglas actualizadas para el perfil 'Apache Full'
Reglas actualizadas para el perfil 'Nginx HTTP'

Procesando disparadores para systemd (229-4ubuntu4) ...
Procesadores desencadenantes de ureadahead (0.100.0-19) ...
Procesando disparadores para man-db (2.7.5-1) ...
Configuración de nginx-common (1.10.0-0ubuntu0.16.04.1) ...
Configuración de nginx-full (1.10.0-0ubuntu0.16.04.1) ...
El trabajo para nginx.service falló porque el proceso de control salió con un código de error. Consulte "systemctl status nginx.service" y "journalctl -xe" para más detalles.

invoke-rc.d: initscript nginx, la acción "inicio" falló.

dpkg: paquete de procesamiento de errores nginx-full (--configure):
 la secuencia de comandos instalada posterior a la instalación del subproceso devolvió el estado de salida de error 1
dpkg: los problemas de dependencia impiden la configuración de nginx-full-dbg:
 nginx-full-dbg depende de nginx-full (= 1.10.0-0ubuntu0.16.04.1); sin embargo:
  El paquete nginx-full aún no está configurado.

dpkg: paquete de procesamiento de errores nginx-full-dbg (--configure):

 problemas de dependencia: dejar sin configurar
No se ha escrito ningún informe de informe porque el mensaje de error indica que se trata de un error de seguimiento de un error anterior.

                          Se encontraron errores al procesar:
 nginx-full

 nginx-full-dbg

E: Subproceso / usr / bin / dpkg devolvió un código de error (1)
Mohit
fuente
Probar apt-get -f installsin ningún paquete
Motte001
ya comprobado, mismo error !! Mire:: ~ $ sudo apt-get -f install nginx-full-dbg depende de nginx-full (= 1.10.0-0ubuntu0.16.04.1); sin embargo: el paquete nginx-full aún no está configurado. dpkg: paquete de procesamiento de errores nginx-full-dbg (--configure): problemas de dependencia - dejar sin configurar Se encontraron errores durante el procesamiento: nginx-full nginx-full-dbg E: Subproceso / usr / bin / dpkg devolvió un código de error (1)
Mohit
1
¿Tiene Apache instalado y ejecutándose en el puerto 80 antes de instalar nginx? Editar su pregunta para incluir la salida de systemctl -l status nginxasí
Thomas Ward,
¿También tenía instalada una versión diferente de nginx? Veo que ejecutó una tarea de eliminación, pero si las configuraciones anteriores aún existen, pueden interrumpir la instalación si han inutilizado comandos obsoletos o similares.
Thomas Ward
See "systemctl status nginx.service" and "journalctl -xe" for details.- ¿Puede hacer eso e incluir el resultado en su pregunta?
David Foerster

Respuestas:

140

Apagar apache2 primero antes de instalar nginx debería solucionar este problema:

sudo service apache2 stop
Andrew Chan
fuente
3
Bienvenido a Ask Ubuntu! Recomiendo editar esta respuesta para expandirla con detalles específicos sobre cómo hacerlo. (Consulte también ¿Cómo escribo una buena respuesta? Para obtener consejos generales sobre qué tipo de respuestas se consideran más valiosas en Ask Ubuntu.)
David Foerster
Esto me dio la pista que necesitaba. En mi caso, estaba usando un contenedor
Docker
Llegué a lo mismo, pero al encontrar al culpable netstat -tulpn | grep :80, en mi caso fue Varnish configurado para escuchar en el puerto 80. systemctl stop varnishLuego, instalando Nginx, lo arregló por mí. Por qué los paquetes Debian / Ubuntu intentan iniciarse en la instalación está más allá de mí ... Prefiero instalarlo, configurarlo como me gusta y luego iniciarlo: P
geerlingguy
Es extraño que NGINX no verifique esto en su instalador, y al menos proporcione un mensaje más útil. Apache se instala muy comúnmente en sistemas Linux.
machineghost
28

Andrew Chan me dio la respuesta correcta. Para extender su respuesta un poco, esto es lo que puede hacer en la línea de comandos;

deja de apache2

sudo systemctl stop apache2.service

evitar que apache2 comience en el arranque

sudo systemctl disable apache2.service

Reinstale nginx

sudo apt-get install nginx

AR Winters
fuente
1
Sugeriría que no deshabilite Apache2 en el arranque si lo necesita; hay muchos casos en los que no necesita deshabilitar Apache si termina configurándolo para escuchar en otro puerto. Habiendo hecho esto yo mismo, para algunas configuraciones, puedo hablar por experiencia (también trabajo mucho en el paquete nginx, que es de donde proviene esta experiencia)
Thomas Ward
7

Acabo de tener este problema, pero la solución fue ligeramente diferente.

Una vez que resolví una configuración de sitio simple, pude actualizar nginx.

Verifique su registro de errores nginx :

sudo cat /var/log/nginx/error.log|less

Vuelva a intentarlo:

sudo apt-get update;sudo apt-get upgrade
Taiger
fuente
registra FTW, en mi caso el puerto 80 ya estaba en uso, lo que fue la causa del error
xliiv
6

En mi caso, el error es que el servidor tiene IPv6 deshabilitado. Solución:

Edite /etc/nginx/sites-enabled/defaulty comente IPv6:

listen [::]:80 default_server;

Vuelva a instalar nginx:

apt purge nginx
apt autoremove
apt install nginx
usuario551419
fuente
@DavidFoerster Con apt 1.0, se introdujo un nuevo binario que recopila muchos de los comandos (sub) familiares que se distribuyeron entre apt-get, apt-cachey así sucesivamente. Por ejemplo, apt updatees igual apt-get update, apt search some-namees igual a apt-cache search some-namey así sucesivamente. En algunos casos, ha habido una nueva redacción, como apt full-upgradeeso es igual apt-get dist-upgrade. Los viejos binarios y sus comandos también están disponibles para aquellos que les gustan.
Henning Kockerbeck
@HenningKockerbeck: Gracias. Realmente no lo sabía en ese entonces y pensé que era un error tipográfico, pero mientras tanto me eduqué.
David Foerster
Me funcionó, pero no puedo implementar esto en mis scripts de shell para la implementación del servidor, eso es ridículamente indirecto ...
Menasheh
1

Cuando revisé /var/log/nginx/error.log, vi que el instalador no podía abrir / var / cache / nginx / microcache

Una lista de directorios mostró que no había un directorio / var / cache / nginx, así que lo creé y la instalación se realizó correctamente.

Charles Oertel
fuente
1

En mi caso, ha sido un archivo mal configurado en / etc / nginx / sites-enabled / los nombré como archivos .old, pero eso no importa. Serán leídos y pueden evitar una instalación exitosa o el inicio de ese servicio. Tenga cuidado con los archivos en esa carpeta y lea su salida de error cuidadosamente como lo describe @Taiger

Godot85
fuente
0

Antes de la instalación, elimine cualquier enlace simbólico agregado manualmente /sites-enabled.

Deto
fuente
0

En mi caso, nada ayudó, excepto esto:

sudo fuser -k 80/tcp

service nginx start
mansim
fuente