Jak opravit neznámou interní chybu serveru (500), kterou mi Nginx dává?

Nginx mi dává chybu 500, která mě přivádí k šílenství. Nejprve mám personalsite.conf archiv uvnitř /etc/nginx/conf.d/ kde mám blok serveru.

Toto je konfigurace mého bloku serveru:

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

Uživatel Plus nginx má svá správná oprávnění přiřazená k /usr/share/nginx/html/personalsite/.

Jde o to, že Nginx mi při pokusu o procházení personalsite.me a legrační je, že to vím, protože jsem zkontroloval personalsite.access.log a viděl jsem ho, protože Brower prostě nevyplnil. Z neznámých důvodů Nginx mi nemůže ukázat svou 500 chybovou stránku, správně deklarovanou v bloku serveru, jak vidíte.

Další zvláštní věc je, že personalsite.error.log je prázdný, nic nezaznamenává.

Také mám tuto doménu deklarovanou s její IP adresou v mém archivu /etc/hosts. Takže opravdu netuším, co se tady děje.

Všechno je r odemknutí CentOS 7 přes Digital Ocean VPS.

Odpověď

Většina chyb vychází z chybné konfigurace při instalaci Nigix. Navrhnu zkontrolovat soubor (/etc/php-fpm.d/www.conf).

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

Najděte řádek, který určuje parametr poslech, a změňte to tak, aby vypadalo takto:

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

Dále najděte řádky, které nastavují listen.owner a listen.group a odkomentujte je. Měly by vypadat takto:

listen.owner = nobody listen.group = nobody 

Nakonec najděte řádky, které nastavují uživatele a skupinu, a změňte jejich hodnoty z „apache“ na „nginx“:

user = nginx group = nginx 

Poté uložte a ukončete

/etc/init.d php-fpm restart 

Odpovědět

Není to nejlepší odpověď na světě, ale chyba 500 je nejednoznačná, může to být vaše konfigurace nginx nebo může souviset s obsahem vašeho webu. Minimalizujte svou konfiguraci a znovu sestavte, dokud problém nebudete moci reprodukovat.

Nahraďte obsah webu jednoduchým indexem.html pouze jednoduchým textem. Vynechejte všechny další chybové směrnice a blok umístění. Jakmile vytvoříte základní funkce, můžete se cítit méně šílení a přidávat své další směrnice a testovat průběžně, dokud neizolujete jakoukoli směrnici způsobující problémy a odtud najdete hlavní příčinu.

Komentáře

  • Vlastně mi to pomohlo pochopit, že můj Nginx je v pořádku. Problém je v tom, že se web ' m pokouší spustit. Nahradil jsem veškerý obsah pouze souborem phpinfo.php a funguje perfektně. Web ' m, který se pokouším spustit, používá Yii Framework. Zkontroloval jsem oficiální wiki a říká: " Software je nginx, php-fpm (php5-fpm). Pro výkon ' se doporučuje spouštět php-fpm v režimu SOCKET namísto přístupu přes IP: PORT. To je způsob zobrazený níže " I ' m používající Nginx přesně tak. Takže netuším, proč mi dává chybu 500 a nebudu psát na error.log.

Odpověď

Když jsou zakázány zobrazovací chyby PHP, mohou chyby PHP vrátit chybu Nginx 500.

Měli byste se podívat na své protokoly php-fpm, určitě tam chybu najdete. S CentOS 7:

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

Můžete také zobrazit chyby PHP. V souboru /etc/php.ini změňte:

display_errors = Off 

na:

display_errors = On 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *