Comment réparer une erreur de serveur interne inconnue (500) que Nginx me donne?

Nginx me donne une erreur 500 qui me rend fou. Tout dabord, jai un personalsite.conf archive à lintérieur de /etc/nginx/conf.d/ où jai mon bloc serveur.

Voici la configuration de mon bloc serveur:

server { listen 80; server_name personalsite.me; charset UTF-8; access_log /var/log/nginx/personalsite.access.log main; error_log /var/log/nginx/personalsite.error.log; root /usr/share/nginx/html/personalsite; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 

De plus, lutilisateur nginx a ses autorisations appropriées attribuées sur /usr/share/nginx/html/personalsite/.

Le fait est que Nginx me donne une erreur 500 lorsque jessaye de parcourir personalsite.me, et le plus drôle est que je le sais parce que jai vérifié le personalsite.access.log et le voir, car le navigateur devient vide. Pour des raisons inconnues Nginx est incapable de me montrer sa page derreur 500, correctement déclarée dans le bloc serveur comme vous pouvez le voir.

Une autre chose étrange est que personalsite.error.log est vide, il nenregistre rien.

Jai également déclaré ce domaine avec son IP dans mon archive /etc/hosts. Donc je nai vraiment aucune idée de ce qui se passe ici.

Tout est r unning CentOS 7 sur un VPS Digital Ocean.

Réponse

La plupart des erreurs sont dues à une mauvaise configuration lors de linstallation de Nigix. Je suggérerai de vérifier le fichier (/etc/php-fpm.d/www.conf).

vi /etc/php-fpm.d/www.conf 

Trouvez la ligne qui spécifie le paramètre découte, et changez-le pour quil ressemble à ce qui suit:

listen = /var/run/php-fpm/php-fpm.sock 

Ensuite, recherchez les lignes qui définissent les listen.owner et listen.group et décommentez-les. Ils devraient ressembler à ceci:

listen.owner = nobody listen.group = nobody 

Enfin, trouvez les lignes qui définissent lutilisateur et le groupe et modifiez leurs valeurs de « apache » à « nginx »:

user = nginx group = nginx 

Puis enregistrez et quittez

/etc/init.d php-fpm restart 

Réponse

Ce nest pas la meilleure réponse au monde, mais une erreur 500 est trop ambiguë, cela pourrait être votre configuration nginx ou pourrait être liée au contenu de votre site. Minimisez votre configuration et reconstruisez jusquà ce que vous puissiez reproduire le problème.

Remplacez le contenu du site par un simple index.html contenant juste du texte brut. Oubliez toutes les directives derreur supplémentaires et le bloc demplacement. Une fois que vous avez établi la fonctionnalité de base, vous pouvez vous sentir moins fou et ajouter vos autres directives, en effectuant des tests au fur et à mesure, jusquà ce que vous isoliez toute directive causant des problèmes et que vous puissiez trouver la cause profonde à partir de là.

Commentaires

  • En fait, cela ma aidé à comprendre que mon Nginx va bien. Le problème vient du site Web que je ' essaie de lancer. Jai remplacé tout le contenu par un fichier phpinfo.php et il fonctionne parfaitement. Le site Web que jessaie ' de lancer utilise Yii Framework. Jai vérifié le wiki officiel et il dit: " Le logiciel est nginx, php-fpm (php5-fpm). Pour les performances, il est ' recommandé dexécuter php-fpm en mode SOCKET, au lieu daccéder via IP: PORT. Telle est la méthode ci-dessous " I ' m en utilisant Nginx exactement comme ça. Je nai donc aucune idée de pourquoi cela me donne une erreur 500 et nécrira pas sur le error.log.

Réponse

Lorsque PHP display_errors est désactivé, les erreurs PHP peuvent renvoyer une erreur Nginx 500.

Vous devriez jeter un œil à vos journaux php-fpm, je suis sûr que vous y trouverez lerreur. Avec CentOS 7:

tail -f /var/log/php-fpm/www-error.log 

Vous pouvez également afficher les erreurs PHP. Dans /etc/php.ini, remplacez:

display_errors = Off 

par:

display_errors = On 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *