【问题标题】:Every PHP error causes an nginx 500 error instead of showing PHP error data每个 PHP 错误都会导致 nginx 500 错误,而不是显示 PHP 错误数据
【发布时间】:2020-03-09 18:15:56
【问题描述】:

对于每个包含错误的 PHP 请求,我都会从 nginx 收到 502 服务器错误。这是 nginx 日志中针对每种类型的错误显示的内容:

[error] 394#0: *7 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: example.test, request: "GET /nova-api/users/lens/example-lens?search=&filters=W3siY2xhc3MiOiJBcHBcXE5vdmFcXEZpbHRlcnNcXExlbnNVc2VyRmlsdGVyIiwidmFsdWUiOnsiY29sdW1uIjoiMCIsIm9wZXJhdG9yIjoiPSIsImRhdGEiOiJoYXJ2ZXkifX1d&orderBy=&orderByDirection=desc&perPage=25&page=1&viaResource=&viaResourceId=&relationshipType= HTTP/2.0", upstream: "fastcgi://unix:/Users/user/.config/valet/valet.sock:", host: "example.test", referrer: "https://example.test/nova/resources/users/lens/example-lens"

如果我在任何其他系统上运行相同的代码,我的 laravel.log 文件中实际上会出现 PHP 错误。

我已经尝试增加最大 PHP 子节点的数量。

我已经尝试完全重新安装 nginx、PHP 和 Laravel Valet。

我的valet.conf nginx 文件由 Laravel Valet 自动生成:

server {
    listen 127.0.0.1:80 default_server;
    root /;
    charset utf-8;
    client_max_body_size 128M;

    location /41c270e4-5535-4daa-b23e-c269744c2f45/ {
        internal;
        alias /;
        try_files $uri $uri/;
    }

    location / {
        rewrite ^ "/Users/user/.composer/vendor/laravel/valet/server.php" last;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log "/Users/user/.config/valet/Log/nginx-error.log";

    error_page 404 "/Users/user/.composer/vendor/laravel/valet/server.php";

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass "unix:/Users/user/.config/valet/valet.sock";
        fastcgi_index "/Users/user/.composer/vendor/laravel/valet/server.php";
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME "/Users/user/.composer/vendor/laravel/valet/server.php";
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ /\.ht {
        deny all;
    }
}

【问题讨论】:

  • 你的 nginx confit 是什么样的?
  • 增加 php 内存限制 ini fpm config,如果 php 过早关闭上游,则意味着 php 由于资源不足而崩溃,在您的情况下内存不足。也不要把unix socket文件放到磁盘文件系统,放到/var/run/php-something.sock
  • 我将 PHP 内存限制提高到 2G 和同样的问题。
  • 你能在 phpinfo 验证 PHP 内存限制是 2G 吗?
  • 如果我运行 php -r "echo ini_get('memory_limit');" 我得到 2G。

标签: php nginx laravel-valet


【解决方案1】:

通过sudo rm -rf /Users/myuser/.config/valet/ 手动移除代客,然后valet install 修复了该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2013-03-18
    • 2021-08-29
    • 2023-03-29
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多