Hur fixar jag ett okänt internt serverfel (500) som Nginx ger mig?

Nginx ger mig ett 500-fel som gör mig galen. Först och främst har jag ett personalsite.conf arkivera inuti /etc/nginx/conf.d/ där jag har mitt serverblock.

Detta är min serverblockkonfiguration:

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-användare har sina rättigheter tilldelade över /usr/share/nginx/html/personalsite/.

Saken är att Nginx ger mig ett 500-fel när jag försöker bläddra personalsite.me, och det roliga är att jag vet det för att jag kollade personalsite.access.log och ser det, för att brower bara blir tom. Av okända skäl Nginx kan inte visa mig sin 500-felsida, korrekt deklarerad i serverblocket som du kan se.

En annan konstig sak är att personalsite.error.log är tomt, det registrerar ingenting.

Jag har också deklarerat den domänen med sin IP i mitt /etc/hosts arkiv. Så jag har verkligen ingen aning om vad som händer här.

Allt är r avlägsna CentOS 7 över en Digital Ocean VPS.

Svar

De flesta fel uppstår på grund av felkonfiguration när Nigix-installationen. Jag kommer att föreslå att kontrollera filen (/etc/php-fpm.d/www.conf).

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

Hitta raden som anger lyssningsparametern och ändra det så att det ser ut som följande:

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

Hitta sedan raderna som ställer in listen.owner och listen.group och avmarkera dem. De ska se ut så här:

listen.owner = nobody listen.group = nobody 

Slutligen, hitta raderna som ställer in användaren och gruppen och ändra deras värden från ”apache” till ”nginx”:

user = nginx group = nginx 

Spara och avsluta sedan

/etc/init.d php-fpm restart 

Svar

Inte det bästa svaret i världen, men ett 500-fel är tvetydigt, det kan vara din nginx-konfiguration eller kan vara relaterad till webbplatsens innehåll. Minimera din konfiguration och bygg igen tills du kan reproducera problemet.

Ersätt webbplatsinnehållet med ett enkelt index.html med bara en del vanlig text i den. Lämna alla extra feldirektiv och platsblock. När du väl har etablerat den grundläggande funktionaliteten kan du känna dig mindre galen och lägga till dina andra direktiv, testa när du går, tills du kommer att isolera alla direktiv som orsakar problem och kan hitta orsaken därifrån.

Kommentarer

  • Det hjälpte mig faktiskt att förstå att min Nginx är ok. Problemet är att webbplatsen jag ' försöker köra. Jag ersatte allt innehåll med bara en phpinfo.php -fil och den fungerar perfekt. Webbplatsen som jag ' försöker köra använder Yii Framework. Jag kollade den officiella wiki och det står: " Programvaran är nginx, php-fpm (php5-fpm). För prestanda rekommenderas ' att köra php-fpm i SOCKET-läge istället för att komma åt via IP: PORT. Det är metoden som visas nedan " I ' m med Nginx exakt så. Så jag har ingen aning om varför det ger mig ett 500-fel och kommer inte att skriva på fel.log.

Svar

När PHP-displayfel är inaktiverade kan PHP-fel returnera Nginx 500-fel.

Du bör titta på dina php-fpm-loggar, jag är säker på att du hittar felet där. Med CentOS 7:

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

Du kan också visa PHP-fel. Ändra i /etc/php.ini:

display_errors = Off 

till:

display_errors = On 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *