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