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