Hvordan løser jeg en ukendt intern serverfejl (500), som Nginx giver mig?

Nginx giver mig en 500-fejl, der gør mig skør. Først og fremmest har jeg en personalsite.conf arkiver inden i /etc/nginx/conf.d/ hvor jeg har min serverblok.

Dette er min serverblokkonfiguration:

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-brugere har tildelt de rette tilladelser over /usr/share/nginx/html/personalsite/.

Sagen er, at Nginx giver mig en 500-fejl, når jeg prøver at gennemse personalsite.me, og det sjove er, at jeg ved det, fordi jeg kontrollerede personalsite.access.log og ser det, fordi broweren bare bliver blank. Af ukendte grunde Nginx kan ikke vise mig sin 500-fejlside, korrekt erklæret i serverblokken, som du kan se.

En anden underlig ting er, at personalsite.error.log er tomt, det registrerer intet.

Også jeg har det domæne deklareret med sin IP i mit /etc/hosts arkiv. Så jeg har virkelig ingen idé om, hvad der sker her.

Alt er r afbrydelse af CentOS 7 over et Digital Ocean VPS.

Svar

De fleste fejl kommer ud på grund af forkert konfiguration, når Nigix-opsætning. Jeg vil foreslå at kontrollere filen (/etc/php-fpm.d/www.conf).

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

Find den linje, der angiver lytteparameteren, og ændre det, så det ser ud som følgende:

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

Find derefter linjerne, der indstiller listen.owner og listen.group og fjern kommentar til dem. De skal se sådan ud:

listen.owner = nobody listen.group = nobody 

Til sidst skal du finde de linjer, der indstiller brugeren og gruppen, og ændre deres værdier fra “apache” til “nginx”:

user = nginx group = nginx 

Gem derefter og afslut

/etc/init.d php-fpm restart 

Svar

Ikke det bedste svar i verden, men en 500-fejl er for tvetydig, det kan være din nginx-konfiguration eller kan være relateret til dit webstedsindhold. Minimer din konfiguration og genopbyg, indtil du kan gengive problemet.

Udskift webstedsindholdet med et simpelt index.html med bare almindelig tekst i det. Udelad alle de ekstra fejldirektiver og placeringsblokken. Når du har etableret den grundlæggende funktionalitet, kan du føle dig mindre sindssyg og tilføje dine andre direktiver, mens du tester, mens du går, indtil du vil isolere ethvert direktiv, der forårsager problemer, og kan finde årsagen derfra.

Kommentarer

  • Faktisk hjalp det mig med at forstå, at min Nginx er ok. Problemet er, at hjemmesiden jeg ' prøver at køre. Jeg erstattede alt indholdet med bare en phpinfo.php -fil, og den kører perfekt. Hjemmesiden jeg ' prøver at køre bruger Yii Framework. Jeg tjekkede den officielle wiki, og der står: " Software er nginx, php-fpm (php5-fpm). For ydeevne anbefales det ' at køre php-fpm i SOCKET-tilstand i stedet for at få adgang via IP: PORT. Det er metoden vist nedenfor " I ' m ved hjælp af Nginx nøjagtigt sådan. Så jeg har ingen idé om, hvorfor det giver mig en 500-fejl og ikke skriver på fejlen. Log.

Svar

Når PHP-displayfejl er deaktiveret, kan PHP-fejl returnere Nginx 500-fejl.

Du bør se på dine php-fpm-logfiler, jeg er sikker på, at du finder fejlen der. Med CentOS 7:

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

Du kan også vise PHP-fejl. I /etc/php.ini skal du ændre:

display_errors = Off 

til:

display_errors = On 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *