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
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
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.