Nginx antaa minulle 500 virheen, joka ajaa minut hulluksi. Ensinnäkin minulla on personalsite.conf
arkistoi /etc/nginx/conf.d/
sisään, missä minulla on palvelinlohko.
Tämä on palvelinlohkon määritys:
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 nginx -käyttäjällä on asianmukaiset käyttöoikeudet kohdistettu /usr/share/nginx/html/personalsite/
-kohtaan.
Asia on, että Nginx antaa minulle 500 virheen, kun yritän selata personalsite.me
, ja hauska on se, että tiedän sen, koska tarkistin personalsite.access.log
ja näen sen, koska vaaleampi vain tyhjenee. Tuntemattomista syistä Nginx ei pysty näyttämään minulle 500-virhesivua, joka on ilmoitettu oikein palvelinlohkossa, kuten näet.
Toinen outo asia on, että personalsite.error.log
on tyhjä, se ei tallenna mitään.
Minulla on myös kyseinen verkkotunnus ilmoitettu IP-osoitteellaan /etc/hosts
-arkistoissani. Joten minulla ei ole aavistustakaan mitä täällä tapahtuu.
Kaikki on r CentOS 7: n purkaminen digitaalisen valtameren VPS: n kautta.
Vastaa
Suurin osa virheistä johtuu virheellisestä määrityksestä, kun Nigix asennetaan. Ehdotan tarkistaa tiedosto (/etc/php-fpm.d/www.conf
).
vi /etc/php-fpm.d/www.conf
Etsi rivi, joka määrittää kuunteluparametrin, ja muuta sitä niin, että se näyttää seuraavalta:
listen = /var/run/php-fpm/php-fpm.sock
Etsi seuraavaksi rivit, jotka asettavat listen.owner
ja listen.group
ja kommentoi niitä. Niiden tulisi näyttää tältä:
listen.owner = nobody listen.group = nobody
Viimeiseksi, etsi rivit, jotka asettavat käyttäjän ja ryhmän, ja vaihda arvot ”apache”: sta ”nginx”:
user = nginx group = nginx
Tallenna ja lopeta sitten
/etc/init.d php-fpm restart
Vastaa
Ei paras vastaus maailmassa, mutta 500-virhe on epäselvä, se voi olla nginx-määrityksesi tai liittyä sivustosi sisältöön. Pienennä kokoonpanosi ja rakenna uudelleen, kunnes voit toistaa ongelman.
Korvaa sivuston sisältö yksinkertaisella index.html-tiedostolla, jossa on vain pelkkää tekstiä. Jätä pois kaikki ylimääräiset virheohjeet ja sijaintilohko. Kun olet perustanut perustoiminnot, voit tuntea itsesi vähemmän hulluksi ja lisätä muita direktiivejäsi, testatessasi sitä mukaa kuin tarvitset, kunnes eristät kaikki ongelmat aiheuttavat direktiivit ja löydät sieltä syy.
Kommentit
- Se auttoi minua ymmärtämään, että Nginx on kunnossa. Ongelma on verkkosivustolla, jota yritän suorittaa <
m. Korvasin kaiken sisällön vain phpinfo.php
-tiedostolla ja se toimii täydellisesti. Sivusto, jota yritän ajaa ', käyttää Yii Frameworkia. Tarkistin virallisen wikin ja siinä lukee: " Ohjelmisto on nginx, php-fpm (php5-fpm). Suorituskyvyn varmistamiseksi ' suositteli php-fpm: n suorittamista SOCKET-tilassa sen sijaan, että käytettäisiin IP: PORTin kautta. Tämä on alla esitetty menetelmä " I ' m käyttäen Nginxiä täsmälleen samalla tavalla. Joten minulla ei ole aavistustakaan, miksi se antaa minulle 500 virheen ja kirjoitan tapana error.log.
Vastaa
Kun PHP display_errors poistetaan käytöstä, PHP-virheet voivat palauttaa Nginx 500 -virheen.
Sinun kannattaa tutustua php-fpm-lokiisi, löydän virheen täältä. CentOS 7: n kanssa:
tail -f /var/log/php-fpm/www-error.log
Voit myös näyttää PHP-virheitä. Muuta tiedostossa /etc/php.ini:
display_errors = Off
muotoon:
display_errors = On