Instal·lar Nginx 1.14 a Debian

Instal·lar Nginx a Debian es bufar i fer ampolles. Ok, però quan surgeix algun problema, ja no fa tanta gàcia. Així que fem un petit repàs al que necessitem per arribar a bon port amb Nginx instal·lat i funcionant.

Primer de tot, actualitzar el nostre gestor de paquets:

sudo apt-get update
sudo apt -y upgrade

Seguidament la comanda màgica:

sudo apt install nginx

I ja està! 👏

Vale no, si ets dels desafortunats que has tingut problemes, continúa llegint, que potser tens sort i ja l'hem tingut nosaltres abans.

Problemes amb Nginx

Por passar que intentant instal·lar Nginx rebem un missatge similar al següent fragment...

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
dpkg: error processing package nginx-core (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx:
...

Podeu revisar si el servei de nginx està funionant bé o no escribint:

systemctl status nginx.service

Segurament, si hem petit un error com l'anterior o similar, això ens mostrarà un Active: failed, o un missatge similar.

Ens pot passar, que si partim d'alguna instal·lació recent de Debian, o al revès, que ja teníem algun altre servidor web instal·lat, tinguem problemes amb l'assignació del port 80. Reviseu primer de tot l'assignació de ports:

sudo netstat -nlp

En aquest punt podrem analitzar si el port 80 l'està fent servir nginx, apache o algun altre servei. En el nostre cas, ens va passar que apache2 estaba ja configurat i funcionant en una istal·lació de Debian. El que ens ocupaba el port i impedía que nginx funcionés de forma normal.

tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN      612/sendmail: MTA:
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      526/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      612/sendmail: MTA:
tcp6       0      0 :::80                   :::*                    LISTEN      9602/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      526/sshd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           527/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           527/ntpd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           415/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           330/dhclient
udp6       0      0 ::1:123                 :::*                                527/ntpd
udp6       0      0 :::123                  :::*                                527/ntpd

Com veieu el port 80 el te ocupat Apache.

Solució

Parar el servei d'Apache:

sudo service apache2 stop

Tornar a llançar l'instal·lació de nginx

sudo apt install nginx

Si la instal·lació ha anat bé, tornem a mirar amb el comande anterior de netstat que el port 80 ja se li ha assignat al servei de nginx. Si es que sí, el seguent pas es eliminar, si així ho volem, el servei d'Apache:

sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common

Si se'ns queixa de qu eno troba algún d'aquests paquets, que pot passar segons quina instal·lació d'Apache tinguessim, els treiem de la llista i fem purge només del que tinguem. I a continuació:

sudo apt-get autoremove

Això acabara per borrar tots aquests fitxers que ja no son necessaris al nostre sistema, alliberant una mica d'espai. Tot i així no tot lo relatiu amb apache es borrarà del nostre sistema, hi haurà alguns directoris i/o fitxers que haurem de borrar manualment.

Per saber on son i quins directoris podem borrar, ho podem saber amb la comanda:

whereis apache2

Això ens donarà un llistat dels directoris relatius a Apache, que podem borrar. Algun exemple:

sudo rm -rf /usr/sbin/apache2
sudo rm -rf /usr/lib/apache2
sudo rm -rf /etc/apache2
sudo rm -rf /usr/share/man/man8/apache2.8.gz

I si tornem a fer un whereis ja no hauríem de veure res relatiu a apache2.

Això sería tot, si heu tingut algun altre problema, i necessiteu ajuda per resoldre'l, deixeu-nos un comentari, i farem tot el possible per ajudar-vos! 👇