Come risolvere un errore del server interno sconosciuto (500) che Nginx mi sta dando?

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

  • In realtà questo mi ha aiutato a capire che il mio Nginx è ok. Il problema è con il sito web che ' sto cercando di eseguire. Ho sostituito tutto il contenuto con un file 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.

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 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *