Nginx mi da un errore 500 che “mi sta facendo impazzire. Prima di tutto ho un personalsite.conf
archivio allinterno di /etc/nginx/conf.d/
dove ho il mio blocco server.
Questa è la mia configurazione del blocco server:
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; } }
Inoltre, lutente nginx dispone delle autorizzazioni appropriate assegnate a /usr/share/nginx/html/personalsite/
.
Il fatto è che Nginx mi dà un errore 500 quando provo a navigare personalsite.me
, e la cosa divertente è che lo so perché ho controllato personalsite.access.log
e lho visto, perché il browser diventa vuoto. Per motivi sconosciuti Nginx non è in grado di mostrarmi la sua pagina di errore 500, correttamente dichiarata nel blocco del server come puoi vedere.
Unaltra cosa strana è che personalsite.error.log
è vuoto, non registra nulla.
Inoltre ho quel dominio dichiarato con il suo IP nel mio archivio /etc/hosts
. Quindi non ho idea di cosa stia succedendo qui.
Tutto è r unning CentOS 7 su un Digital Ocean VPS.
Risposta
La maggior parte degli errori viene fuori a causa di una configurazione errata durante linstallazione di Nigix. Ti suggerisco di controllare il file (/etc/php-fpm.d/www.conf
).
vi /etc/php-fpm.d/www.conf
Trova la riga che specifica il parametro di ascolto e modificalo in modo che sia simile al seguente:
listen = /var/run/php-fpm/php-fpm.sock
Successivamente, trova le righe che impostano listen.owner
e listen.group
e rimuovili dal commento. Dovrebbero assomigliare a questo:
listen.owner = nobody listen.group = nobody
Infine, trova le righe che impostano lutente e il gruppo e cambia i loro valori da “apache” a “nginx”:
user = nginx group = nginx
Quindi salva ed esci
/etc/init.d php-fpm restart
Risposta
Non è la migliore risposta al mondo, ma un errore 500 è ambiguo, potrebbe essere la tua configurazione nginx o potrebbe essere correlato al contenuto del tuo sito. Riduci al minimo la configurazione e ricostruiscilo finché non riesci a riprodurre il problema.
Sostituisci il contenuto del sito con un semplice index.html con solo del testo normale. Tralascia tutte le direttive di errore extra e il blocco della posizione. Una volta stabilita la funzionalità di base, puoi sentirti meno pazzo e aggiungere le tue altre direttive, testando mentre procedi, finché non isolerai qualsiasi direttiva che causa problemi e potrai trovare la causa principale da lì.
Commenti
Risposta
Quando gli errori di visualizzazione PHP sono disabilitati, gli errori PHP possono restituire lerrore Nginx 500.
Dovresti dare unocchiata ai tuoi log di php-fpm, sono sicuro che troverai lerrore lì. Con CentOS 7:
tail -f /var/log/php-fpm/www-error.log
Puoi anche mostrare errori PHP. In /etc/php.ini, modifica:
display_errors = Off
in:
display_errors = On
phpinfo.php
e funziona perfettamente. Il sito web che ' sto tentando di eseguire utilizza Yii Framework. Ho controllato il wiki ufficiale e dice: " Il software è nginx, php-fpm (php5-fpm). Per le prestazioni, ' si consiglia di eseguire php-fpm in modalità SOCKET, invece di accedere tramite IP: PORT. Questo è il metodo mostrato di seguito " Io ' uso Nginx esattamente in questo modo. Quindi non ho idea del motivo per cui mi dà un errore 500 e non scriverò su error.log.