Intereting Posts

nginx – laravel – hhvm-Fastcgi получает ошибку 500

Я устанавливаю LEMP-сервер в ubuntu 12.04 LTS 64 whit HHVM Fastcgi Service, и я устанавливаю laravel через laravel.phar (и тестирую с помощью композитора тоже), когда на моем сайте в brwoser не отображается какая-либо ошибка, но в Chrome-консоли разработчика получается ошибка 500 введите описание изображения здесь

Я не вижу ошибки в файле error.log (laravel – hhvm, nginx)

Разрешения для хранилища – 777

и мой файл nginx.conf и vhosts имеют базовую конфигурацию

когда я использую команду PHP CLI или hhvm, она работает хорошо

спасибо за помощь мне 🙂

мой блок местоположения

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; 

Проблема с HHVM заключается в том, что она не показывает много ошибок, вы должны следить за журналами ошибок HHVM или Laravel.

Вы хотите обратить пристальное внимание на свои журналы ошибок. По умолчанию HHVM не сообщает об ошибках браузерам.

Проверьте журналы HHVM!

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

Проверьте свои журналы Laravel!

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

ссылка на конфигурацию

Создайте файл /etc/nginx/hhvm.conf если он еще не существует. Вставьте 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; } 

Затем включите его в конфигурацию виртуального хоста nginx.
например. /etc/nginx/sites-available/laravel и /etc/nginx/sites-available/laravel

Теперь добавьте это для Laravel, отредактируйте при необходимости:

 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; } } 

Затем перезагрузите Nginx:

 $ sudo service nginx reload 

Поскольку заголовок X-Powered-By установлен HHVM, я предполагаю, что ваш NGINX настроен правильно. Ошибка 500 в основном исходит из синтаксической ошибки или исключения, созданного в вашем приложении. Возможно, ваши настройки fastcgi в NGINX по-прежнему ошибочны. Что находится внутри location *\.php блока?

Попытайтесь создать менее подверженную ошибкам настройку и запустить php artisan serve для локального размещения вашего проекта.

Вы можете изменить класс исключения дескриптора Laravel для отображения ошибок, пока используется HHVM.

Полная информация здесь: https://github.com/laravel/framework/issues/8744#issue-76454458

Я проверил это и хорошо работает на Laravel 5.2 / 5.3 на Homestead с HHVM.