nginx – laravel – hhvm-Fastcgi ottengono l'errore 500

Installo un server LEMP in Ubuntu 12.04 LTS 64 con HHVM Fastcgi Service e installo laravel via laravel.phar (e provo anche via compositore) quando nel mio sito in brwoser non viene visualizzato alcun errore ma nella console degli sviluppatori di Chrome viene visualizzato l'errore 500 inserisci la descrizione dell'immagine qui

non riesco a vedere alcun errore nel file error.log (laravel – hhvm, nginx)

la directory di archiviazione Autorizzazioni è 777

e il mio file nginx.conf e vhosts hanno una configuration di base

quando uso il CLI di PHP o il command hhvm ha funzionato bene

Grazie di aiutarmi 🙂

il mio block di posizione

location ~ \.(hh|php)$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; 

Il problema con HHVM è che non mostra molti errori, devi continuare a guardare i log degli errori di HHVM o di Laravel.

Dovrai prestare molta attenzione ai tuoi log degli errori. Per impostazione predefinita, HHVM non segnala errori al browser.

Controlla i log HHVM!

 $ tail -n 50 -f /var/log/hhvm/error.log 

Controlla i tuoi registri di Laravel!

 $ tail -n 50 -f /path/to/laravel/app/storage/logs/laravel.log 

riferimento di configuration

Crea un file /etc/nginx/hhvm.conf se ancora non esiste. Inserisci la ff:

 location ~ \.(hh|php)$ { fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 

Quindi includilo nella configuration dell'host virtuale nginx.
per esempio. /etc/nginx/sites-available/laravel

Ora aggiungi questo per Laravel, modifica secondo necessità:

 server { listen 80 default_server; root /vagrant/laravel/public; index index.html index.htm index.php; server_name localhost; access_log /var/log/nginx/localhost.laravel-access.log; error_log /var/log/nginx/locahost.laravel-error.log error; charset utf-8; location / { try_files \$uri \$uri/ /index.php?\$query_string; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; } error_page 404 /index.php; include hhvm.conf; # INCLUDE HHVM HERE # Deny .htaccess file access location ~ /\.ht { deny all; } } 

Quindi ricaricare Nginx:

 $ sudo service nginx reload 

Poiché l'intestazione X-Powered-By è impostata da HHVM, presumo che il tuo NGINX sia configurato correttamente. Un errore 500 deriva principalmente da un errore di syntax o da un'exception generata nell'applicazione. Forse le tue impostazioni fastcgi in NGINX sono ancora sbagliate. Cosa c'è dentro la location *\.php block?

Prova per una configuration less soggetta a errori ed esegui php artisan serve per ospitare localmente il tuo progetto.

È ansible modificare la class di eccezioni handle di Laravel per visualizzare gli errori durante l'utilizzo di HHVM.

Tutti i dettagli qui: https://github.com/laravel/framework/issues/8744#issue-76454458

Ho provato questo e funziona bene su Laravel 5.2 / 5.3 su Homestead con HHVM.