5

我在 ubuntu 12.04 LTS 64 whit HHVM Fastcgi 服务中安装了一个 LEMP 服务器,我通过 laravel.phar 安装 laravel(也通过 composer 进行测试),当在 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;
4

3 回答 3

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
于 2014-04-23T10:30:23.127 回答
0

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

尝试使用不易出错的设置并运行php artisan serve以在本地托管您的项目。

于 2014-04-23T10:02:18.393 回答
0

你可以修改 Laravel 的异常处理类来在使用 HHVM 时显示错误。

完整的细节在这里:https ://github.com/laravel/framework/issues/8744#issue-76454458

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

于 2016-09-09T17:15:46.117 回答