Après la mise à niveau vers Debian Jessie: erreurs mod_fcgid aléatoires

Je suis actuellement en train de retirer mes cheveux: après la mise à niveau de Debian Wheezy à Jessie, nous obtenons parfois des erreurs Apache mod_fcgid.

Configuration actuelle:

  • Debian GNU / Linux 8.6 (Jessie) / 3.16.0-4-amd64
  • Apache / 2.4.10 (Debian)
  • PHP 5.6.29-0 + deb8u1

Certains sites Apache fonctionnent très bien et certains sites présentent une erreur 500 après plusieurs rechargements. Le journal Apache montre

[fcgid: warn] [pid 23714] (104) Connexion réinitialisée par l’homologue: [client 123.456.789.12:53191] mod_fcgid: erreur lors de la lecture des données du serveur FastCGI

[fcgid: warn] [pid 23714] (104) Connexion réinitialisée par l’homologue: [client 123.456.789.12:53191] mod_fcgid: ap_pass_brigade a échoué dans la fonction handle_request_ipc

La chose étrange est que cette erreur ne se produit que de temps en temps. En tant qu’utilisateur, je peux simplement refaire le rechargement d’une page et tout va bien à nouveau. Je sais que je ne suis pas le premier avec cette erreur et j’ai essayé plusieurs choses jusqu’ici, mais rien n’a aidé.

Ce que j’ai déjà fait:

  • Définir FcgidOutputBufferSize 0 dans /etc/apache2/mods-available/fcgid.conf -> Aucune différence
  • Validation de PHP_FCGI_MAX_REQUESTS=99999 dans le script wrapper -> Aucune différence
  • Définir FcgidMaxRequestsPerProcess 500 dans /etc/apache2/mods-available/fcgid.conf -> Aucune différence
  • Augmenter FcgidMaxRequestsPerProcess à 3600 dans /etc/apache2/mods-available/fcgid.conf -> Aucune différence

Des idées? Merci d’avance.

Martin

Je déteste dire cela, mais la mise à jour d’une version de Debian à une autre (ex: de Wheezy à Jessie) peut être compliquée et ne pas toujours fonctionner parfaitement. Il y a une multitude de choses qui peuvent mal tourner et provoquer un comportement anormal.

Quoi qu’il en soit, ce que je ferais ici (qui peut fonctionner ou non), c’est d’abord d’examiner tous les fichiers de configuration et scripts que vous aviez sur la machine avant la mise à jour.

Ensuite, je m’assurerais d’avoir une liste de référentiels englobante /etc/apt/sources.list telle que:

 deb http://ftp.us.debian.org/debian/ jessie main consortingb non-free deb-src http://ftp.us.debian.org/debian/ jessie main consortingb non-free deb http://security.debian.org/ jessie/updates main consortingb non-free deb-src http://security.debian.org/ jessie/updates main consortingb non-free deb http://ftp.us.debian.org/debian/ jessie-updates main consortingb non-free deb-src http://ftp.us.debian.org/debian/ jessie-updates main consortingb non-free deb http://ftp.debian.org/debian jessie-backports main consortingb non-free deb-src http://ftp.debian.org/debian jessie-backports main consortingb non-free 

Après cela, lancez apt-get update , puis exécutez le code suivant – IMPORTANT : le code suivant peut remplacer les fichiers de configuration personnalisés (si vous en avez) pour vos programmes:

 dpkg --force-confnew --configure -a sleep 1 apt-get -y -o DPkg::options::="--force-confnew" install -f sleep 1 dpkg --force-confnew --configure -a sleep 1 apt-get -y update sleep 1 apt-get -y -o DPkg::options::="--force-confnew" dist-upgrade 

Après cela, reboot et vérifiez si le problème est toujours présent.

La prochaine étape serait de supprimer (purger) à la fois les paquets apache et php (si possible pour vous), puis de les redémarrer et de les réinstaller. Par exemple:

 apt-get -y --purge remove apache2 php5 reboot apt-get -y install apache2 php5 

Après cela, reboot et vérifiez si le problème est toujours présent.

Si, à ce stade, vous rencontrez toujours des problèmes, je considérerais de réinstaller l’intégralité du système d’exploitation à partir de zéro. J’ai mis à jour de nombreuses machines Debian d’une version à l’autre et il y avait trop de problèmes dans trop de machines, de sorte que je ne le fais plus, au lieu d’installer le système d’exploitation à partir de zéro.

J’espère que ça aide, bonne chance.

J’ai été en mesure de comprendre que le problème existe uniquement avec certains sites, en particulier ceux utilisant le chargeur ionique en combinaison avec PHP. Au lieu de réinstaller l’intégralité de la machine, j’ai remplacé les hôtes virtuels avec PHP-FPM.

Tout va bien maintenant et vite de cette façon. Eh bien, ce n’est pas une solution réelle à ce problème, mais au moins une bonne solution de contournement …