Cum se remediază o eroare de server intern necunoscută (500) pe care mi-o dă Nginx?

Nginx îmi dă o eroare de 500 care mă înnebunește. În primul rând am un personalsite.conf arhivă în /etc/nginx/conf.d/ unde am blocul meu de server.

Aceasta este configurația blocului meu de server:

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; } } 

Plus utilizatorul nginx are permisiunile sale corespunzătoare atribuite peste /usr/share/nginx/html/personalsite/.

Lucrul este că Nginx îmi dă o eroare de 500 când încerc să navighez personalsite.me, iar lucrul amuzant este că știu asta pentru că am verificat personalsite.access.log și l-am văzut, deoarece ascultătorul pur și simplu rămâne gol. Din motive necunoscute Nginx nu poate să-mi arate pagina sa de eroare de 500, declarată corect în blocul de server așa cum puteți vedea.

Un alt lucru ciudat este că personalsite.error.log este în gol, nu înregistrează nimic.

De asemenea, am acel domeniu declarat cu IP-ul său în arhiva /etc/hosts. Deci, chiar nu am nicio idee despre ce se întâmplă aici.

Totul este r unning CentOS 7 printr-un VPS Digital Ocean.

Răspuns

Majoritatea erorilor apar din cauza configurării greșite la configurarea Nigix. Vă voi sugera să verificați fișierul (/etc/php-fpm.d/www.conf).

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

Găsiți linia care specifică parametrul de ascultare și schimbați-l astfel încât să arate după cum urmează:

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

Apoi, găsiți liniile care setează listen.owner și listen.group și decomentați-le. Ar trebui să arate astfel:

listen.owner = nobody listen.group = nobody 

În cele din urmă, găsiți liniile care setează utilizatorul și grupul și schimbați-le valorile din „apache” în „nginx”:

user = nginx group = nginx 

Apoi salvați și renunțați

/etc/init.d php-fpm restart 

Răspundeți

Nu este cel mai bun răspuns din lume, dar o eroare de 500 este ambiguă, ar putea fi configurația dvs. nginx sau ar putea fi legată de conținutul site-ului dvs. Reduceți la minimum configurația și reconstruiți până când puteți reproduce problema.

Înlocuiți conținutul site-ului cu un index.html simplu, cu doar un text simplu. Lăsați toate directivele de eroare suplimentare și blocul de locație. Odată ce ați stabilit funcționalitatea de bază, vă puteți simți mai puțin nebun și puteți adăuga celelalte directive, testând pe măsură ce mergeți, până când veți izola orice directivă care provoacă probleme și veți găsi cauza principală de acolo.

Comentarii

  • De fapt, asta m-a ajutat să înțeleg că Nginx-ul meu este ok. Problema este că site-ul web <

m încearcă să ruleze. Am înlocuit tot conținutul cu doar un fișier phpinfo.php și rulează perfect. Site-ul pe care ' încerc să rulez folosește Yii Framework. Am verificat wiki-ul oficial și scrie: " Software-ul este nginx, php-fpm (php5-fpm). Pentru performanță, ' este recomandat să rulați php-fpm în modul SOCKET, în loc să accesați prin IP: PORT. Aceasta este metoda prezentată mai jos " I ' m folosind Nginx exact așa. Deci nu am idee de ce îmi dă o eroare de 500 și nu voi scrie pe error.log.

Răspunde

Când PHP display_errors este dezactivat, erorile PHP pot returna eroarea Nginx 500.

Ar trebui să aruncați o privire asupra jurnalelor php-fpm, sunt sigur că veți găsi eroarea acolo. Cu CentOS 7:

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

Puteți afișa și erori PHP. În /etc/php.ini, modificați:

display_errors = Off 

în:

display_errors = On 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *