【问题标题】:Laravel Valet 502 Bad Gate Way nginx/1.15.7Laravel Valet 502 坏网关 nginx/1.15.7
【发布时间】:2019-05-19 03:27:28
【问题描述】:

我在运行 laravel valet 的 laravel 项目中收到 502 Bad Gateway。

我在网上尝试了很多解决方案,但都没有成功。 (https://gist.github.com/adamwathan/6ea40e90a804ea2b3f9f24146d86ad7f)

目前我看到的错误是 502 bad gateway 并且在运行 valet install 时我的命令行中的错误是在更新 php 配置时出现的错误。它给出了以下错误:

警告:file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf):无法打开流:/Users/username/.composer/vendor/ 中没有这样的文件或目录laravel/valet/cli/Valet/Filesystem.php 第 112 行

警告:file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf):无法打开流:/Users/username/.composer/vendor/ 中没有这样的文件或目录laravel/valet/cli/Valet/Filesystem.php 第 125 行

有人遇到过类似的问题吗?

谢谢

【问题讨论】:

    标签: php laravel laravel-valet


    【解决方案1】:

    如果您像我一样在将 Laravel Valet 更新到最新版本后使用 502 Bad Gateway 时看到 502 Bad Gateway,那么您很可能忘记运行 valet install 命令。 Laravel Valet 需要 (在大多数情况下) 在更新到最新版本后运行 valet install 命令。

    【讨论】:

    • 这是对上述用户问题的实际答案,是诊断此问题的第一步,比接受的答案要好得多,因为该过程的最后一步才有效。
    【解决方案2】:

    更新到 php 7.3 然后安装新的 Laravel 项目后出现相同的症状。

    看来 brew install php73 没有安装 php-fpm

    解决办法是卸载php

    brew uninstall php73 
    brew uninstall php72
    brew uninstall php71 ... whatever versions you have
    brew uninstall --force php
    

    现在重新安装php

    brew install php --build-from-source
    

    我遇到了mkdir: /usr/local/etc/php/7.3/php-fpm.d: Permission denied 的权限错误,所以sudo chown -R: <yourusercode> /usr/local/etc/php 修复了该问题,然后又修复了brew install php --build-from-source。一旦构建 php 7.3 成功重新安装代客:

    valet install
    

    【讨论】:

    • 这是正确的,但是,我们只是安装了 php@7.2 并且它起作用了。
    • 如果您不想使用旧版本,7.4 也可以解决问题!
    【解决方案3】:

    以上答案都不适合我,但在这里找到了解决方案:https://janostlund.com/2019-06-20/502-bad-gateway-laravel-valet

    ~/.config/valet/Log/nginx-error.log 显示:

    [error] 17423#0: *1 upstream sent too big header while reading response header from upstream [...]
    

    通过在/usr/local/etc/nginx/nginx.conf中的http加两行解决

    http {
      fastcgi_buffers 16 16k;
      fastcgi_buffer_size 32k;
      
      //...
    }
    

    然后运行valet restart

    【讨论】:

      【解决方案4】:

      我通过这样做解决了这个问题:

      php -v
      

      PHP 8.0.1 (cli)(构建时间:2021 年 1 月 8 日 09:07:02)(NTS) 版权所有 (c) PHP 集团 Zend Engine v4.0.1,版权所有 (c) Zend Technologies 使用 Zend OPcache v8.0.1,版权所有 (c),由 Zend Technologies 提供

      接着是:

      valet use php@8.0 --force
      

      取消链接当前版本:php 链接新版本:php@8.0 正在更新 PHP 配置... 重新启动php... 正在重启 Nginx... 代客现在使用 php@8.0。

      Valet 似乎对它使用的是哪个 PHP 感到困惑。

      【讨论】:

      • 这为我修好了。
      【解决方案5】:

      我在使用 Laravel 8 时遇到了同样的问题。Valet 和 Expose 似乎都可以工作,但网页总是给出 502 响应。

      我更新composer并尝试重新安装代客时发现的解决方案是代客不知道要使用哪个版本的php。

      要解决此问题,请使用以下命令告诉代客使用哪个版本的 php。

      valet use php@7.4
      

      【讨论】:

        【解决方案6】:

        在大多数情况下,运行 valet install 可以解决问题。

        【讨论】:

          【解决方案7】:

          我遇到了同样的问题。我通过升级mariadb解决了这个问题。 brew upgrade mariadb

          【讨论】:

            【解决方案8】:

            按照上面的配置,但把它放在文件中。

            ~/.valet/Nginx/all.conf

              fastcgi_buffers 16 16k;
              fastcgi_buffer_size 32k;
            

            这确实在“我使用 Valet plus”的所有网站上流行

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-05-01
              • 2014-01-25
              • 2017-06-23
              • 2019-10-03
              • 2020-11-12
              • 2021-03-29
              • 2019-06-07
              • 2020-04-06
              相关资源
              最近更新 更多