Hogyan lehet kijavítani egy ismeretlen belső szerver hibát (500), amit az Nginx ad nekem?

Az Nginx 500 hibát ad nekem, ami “megőrjít. Először is van egy personalsite.conf archiváljon /etc/nginx/conf.d/ belül, ahol van a kiszolgálóblokkom.

Ez a szerverblokk konfigurációm:

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

A nginx Plus felhasználónak meg vannak a megfelelő jogosultságai a /usr/share/nginx/html/personalsite/ felett.

Az a helyzet, hogy az Nginx 500 hibát ad nekem, amikor megpróbálok böngészni a personalsite.me, és az a vicces, hogy tudom, hogy azért, mert ellenőriztem a personalsite.access.log t, és láttam, mert a ragyogó csak elalszik. Az Nginx nem tudja megmutatni az 500-as hibalehetőségét, amelyet a szerverblokkban megfelelően deklaráltak, amint láthatja.

További furcsa dolog, hogy a personalsite.error.log üres, nem rögzít semmit.

Szintén azt a domaint deklaráltam az IP-jével az /etc/hosts archívumban. Tehát valójában fogalmam sincs, mi történik itt.

Minden r a CentOS 7 unning megszüntetése a Digital Ocean VPS-en.

Válasz

A legtöbb hiba a hibás konfiguráció miatt következik be, amikor a Nigix telepítést végez. Azt javaslom, ellenőrizze a fájlt (/etc/php-fpm.d/www.conf).

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

Keresse meg a figyelési paramétert megadó sort, és változtassa meg, így a következőképpen néz ki:

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

Ezután keresse meg azokat a sorokat, amelyek beállítják a listen.owner és listen.group és bontsa le őket. Így kell kinézniük:

listen.owner = nobody listen.group = nobody 

Végül keresse meg azokat a sorokat, amelyek beállítják a felhasználót és a csoportot, és megváltoztatja az értékeiket “apache” -ról “nginx” -re:

user = nginx group = nginx 

Ezután mentse és lépjen ki

/etc/init.d php-fpm restart 

Válasz

Nem a legjobb válasz a világon, de egy 500-as hiba kétértelmű, lehet, hogy az nginx konfigurációja, vagy kapcsolódhat a webhely tartalmához. Csökkentse a konfigurációját, és újjáépítse, amíg meg nem tudja reprodukálni a problémát.

Cserélje le a webhely tartalmát egy egyszerű index.html-re, csak néhány egyszerű szöveggel. Hagyjon el minden extra hibadirektumot és a helyblokkot. Miután létrehozta az alapvető funkcionalitást, kevésbé érezheti magát őrültnek, és hozzáadhatja más irányelveit, amint teszteli, amíg el nem különíti a problémákat okozó irányelveket, és onnan megtalálja a kiváltó okot.

Megjegyzések

  • Valójában ez segített megérteni, hogy az Nginx rendben van. A probléma azzal a webhellyel van, amelyet I ' m próbálok futtatni. Az összes tartalmat lecseréltem egy phpinfo.php fájlra, és tökéletesen fut. Az a webhely, amelyet futtatni próbáltam ', a Yii keretrendszert használja. Megnéztem a hivatalos wikit, és a következőket írja: " A szoftver nginx, php-fpm (php5-fpm). A teljesítmény érdekében ' javasolja a php-fpm futtatását SOCKET módban, ahelyett, hogy IP: PORTon keresztül érné el. Ez az alábbi módszer: " I ' m az Nginx használatával. Tehát fogalmam sincs, miért ad 500 hibát, és nem szoktam írni a error.log-ra.

Válasz

Ha a PHP display_errors le van tiltva, a PHP hibák Nginx 500 hibát adhatnak vissza.

Meg kell néznie a php-fpm naplóit, és biztosan megtalálja a hibát. CentOS 7 esetén:

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

Megjeleníthet PHP hibákat is. Az /etc/php.ini fájlban módosítsa:

display_errors = Off 

a következőre:

display_errors = On 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük