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
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
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.