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