nginx - laravel - hhvm-Fastcgi得到错误500

时间:2014-04-23 09:35:46

标签: php nginx laravel laravel-4 hhvm

我在ubuntu 12.04 LTS 64中安装了LEMP服务器 whit HHVM Fastcgi服务 我通过laravel.phar安装laravel(并通过作曲家测试) 当在brwoser中获取我的网站时,不显示任何错误,但在Chrome开发人员控制台中获取错误500 enter image description here

我无法在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;

3 个答案:

答案 0 :(得分:6)

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

现在为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

答案 1 :(得分:0)

由于HHVM设置了X-Powered-By标头,我假设您的NGINX配置正确。 500错误主要来自语法错误或应用程序中抛出的异常。也许你在NGINX中的fastcgi设置仍然是错误的。 location *\.php区块内的内容是什么?

尝试减少错误设置并运行php artisan serve以在本地托管您的项目。

答案 2 :(得分:0)

您可以修改Laravel的句柄异常类,以便在使用HHVM时显示错误。

此处详细信息:https://github.com/laravel/framework/issues/8744#issue-76454458

我已经测试了这个,它在带有HHVM的Homestead上的Laravel 5.2 / 5.3上运行良好。