Le service nginx ne se lance plus

Bonjour,

Après une mise à jour de mon serveur (j’étais déjà sous la version 3, fonctionnelle) qui a installé la version 7.2 de php si j’ai bien suivi, je ne parviens plus à me connecter à mes sites. Le service nginx semble avoir des difficultés à se lancer :

nginx:
active: failed
active_at:
human: 1970-01-01 01:00:00
timestamp: 0
description: sert ou permet l’accès à tous les sites web hébergés sur votre serveur
loaded: enabled
service_file_path: /lib/systemd/system/nginx.service
status: failed

Et voici la sortie lorsque j’essaie de lancer ce service :

 admin@ns3313695:~$ sudo yunohost service start nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
Succès ! Le service « nginx » a été démarré

Puis :

admin@ns3313695:~$ sudo systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-07-03 15:26:47 CEST; 22s ago
     Docs: man:nginx(8)
  Process: 1971 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 1968 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

juil. 03 15:26:45 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98: Address already in use)
juil. 03 15:26:46 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
juil. 03 15:26:46 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98: Address already in use)
juil. 03 15:26:46 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
juil. 03 15:26:46 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98: Address already in use)
juil. 03 15:26:47 ns3313695.ip-5-135-164.eu nginx[1971]: nginx: [emerg] still could not bind()
juil. 03 15:26:47 ns3313695.ip-5-135-164.eu systemd[1]: nginx.service: Control process exited, code=exited status=1
juil. 03 15:26:47 ns3313695.ip-5-135-164.eu systemd[1]: Failed to start A high performance web server and a reverse proxy server.
juil. 03 15:26:47 ns3313695.ip-5-135-164.eu systemd[1]: nginx.service: Unit entered failed state.
juil. 03 15:26:47 ns3313695.ip-5-135-164.eu systemd[1]: nginx.service: Failed with result 'exit-code'.

Ayant fait des recherches sur le net, je suis tombé là-dessus. J’ai dû exécuter plusieurs fois d’affilée la commande sudo fuser -k 80/tcp pour que nginx daigne finalement se lancer.

Donc présentement, j’ai bien accès aux sites hébergés mais (i) je ne sais pas comment résoudre le problème de manière pérenne (ii) l’appli Monica fait de la résistance puisque la page reste blanche (chargement incessant).

Merci :slightly_smiling_face:

1 Like

Bonjour à tous,
@jln dans quel but as-tu installé php7.2 sur ton seuveur?
Je pose la question car j’ai installé firefly III https://github.com/YunoHost-Apps/Firefly-III_ynh sur mon serveur mais il fonctionne avec php7.1 après quelques jours de réflexion je me suis dis que cette version de php7.1 allait me créer des problèmes lors de mes futures mises à jour car debian 9 a php7.0 par défaut.
Au cas où tu souhaite revenir à php7.0

J’ai donc dé-installé firefly III depuis yunohost admin, puis j’ai commenté le dépot php7.1 dans /etc/apt/sources.list.d/php7.list après un coup de
apt update

Pour revenir à la version officielle des paquets j’ai fais un

apt install dh-php=0.26 libpcre16-3=2:8.39-3 libpcre3=2:8.39-3 libpcre3-dev=2:8.39-3 libpcre32-3=2:8.39-3 libpcrecpp0v5=2:8.39-3 libsodium18=1.0.11-2 libzip4=1.1.2-1.1+b1 php-apcu=5.1.8+4.0.11-1 php-apcu-bc=1.0.3-2 php-cli=1:7.0+49 php-common=1:49 php-curl=1:7.0+49 php-fpm=1:7.0+49 php-gd=1:7.0+49 php-igbinary=2.0.1-1 php-imagick=3.4.3~rc2-2 php-intl=1:7.0+49 php-ldap=1:7.0+49 php-mbstring=1:7.0+49 php-mcrypt=1:7.0+49 php-mysql=1:7.0+49 php-oauth=2.0.2+1.2.3-1 php-pear=1:1.10.1+submodules+notgz-9 php-redis=3.1.1-1 php-xml=1:7.0+49 php-zip=1:7.0+49 php7.0-cli=7.0.27-0+deb9u1 php7.0-common=7.0.27-0+deb9u1 php7.0-curl=7.0.27-0+deb9u1 php7.0-dev=7.0.27-0+deb9u1 php7.0-fpm=7.0.27-0+deb9u1 php7.0-gd=7.0.27-0+deb9u1 php7.0-intl=7.0.27-0+deb9u1 php7.0-json=7.0.27-0+deb9u1 php7.0-ldap=7.0.27-0+deb9u1 php7.0-mbstring=7.0.27-0+deb9u1 php7.0-mcrypt=7.0.27-0+deb9u1 php7.0-mysql=7.0.27-0+deb9u1 php7.0-opcache=7.0.27-0+deb9u1 php7.0-readline=7.0.27-0+deb9u1 php7.0-xml=7.0.27-0+deb9u1 php7.0-zip=7.0.27-0+deb9u1 php-mcrypt=1:7.0+49 -V

et j’ai fini par dé-installer les autres paquets php7.1 et php7.2 installés avec firefly III par un

apt purge php7.1* php7.2* && apt autoremove

Pour terminer j’ai fais un petit
needrestart

Bonjour et merci pour ta réponse.
Je n’ai pas explicitement/volontairement installé cette version de php, je l’ai simplement vu “passer” lors d’un upgrade classique.

Tu penses que cela est lié à mes soucis nginx ?

Alors tu devrais vérifier le contenu de /etc/apt/ et voir si /etc/apt/sources.list.d/php7.list existe sur ton système. Si c’est le cas c’est que tu as installé une yuno app qui fonctionne avec cette version de php.
Pour ta question je ne suis pas un expert en la matière mais juste un utilisateur comme toi. :smile:

Ouaip, /etc/apt/sources.list.d/php7.list existe et possède la ligne suivante :

deb https://packages.sury.org/php/ stretch main

Donc pour résumer, si je comprends bien, il faudrait que :

  1. j’identifie quelle application a installé ceci (mon billet sur Monica)
  2. je désinstalle cette application
  3. je revienne à la version “normale” de php
  4. je contrôle si le problème avec nginx substiste

Si tu as besion de l’application Monica sur ton système, attends qu’une personne avec plus de compétences que moi passe par ici :wink:

Hello,

perso j’ai l’impression que le probleme viens de :

 nginx: [emerg] listen() to [::]:80, backlog 511 failed (98: Address already in use)

qui sous-entend que un programme utilise deja le port 80 (une autre instance de nginx ? une instance de apache2 ?)

Il y a moyen de verifier ça avec :

netstat -tulpn | grep 80
netstat -tulpn | grep 443

pour lister les programmes qui utilisent / ecoutent le port 80 et 443

Salut,

Alors apparemment, y’a apache (?!) et ntpd qui tournent :

admin@ns3313695:~$ sudo netstat -tulpn | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      1454/apache2        
udp6       0      0 fe80::4e72:b9ff:feb:123 :::*                                939/ntpd  

(rien sur le port 443)

L’arrêt du service apache permet le lancement du service nginx… J’ai donc désinstallé apache, et après un reboot tout semble être entré dans l’ordre.

Merci beaucoup :+1:

1 Like