Kuinka korjata tuntematon sisäinen palvelinvirhe (500), jonka Nginx antaa minulle?

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 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *