Laravel代客 502 错误网关 nginx/1.15.7

Laravel Valet 502 Bad Gate Way nginx/1.15.7

我的 Laravel 项目出现 502 Bad Gateway 运行 Laravel 代客。

我试过很多网上的解决方案,都没有成功。 https://gist.github.com/adamwathan/6ea40e90a804ea2b3f9f24146d86ad7f

目前我看到的错误是 502 bad gateway 和我的命令行错误 运行 代客安装在更新 PHP 配置时出现错误。它给出以下错误:

Warning: file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf): failed to open stream: No such file or directory in /Users/username/.composer/vendor/laravel/valet/cli/Valet/Filesystem.php on line 112

Warning: file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf): failed to open stream: No such file or directory in /Users/username/.composer/vendor/laravel/valet/cli/Valet/Filesystem.php on line 125

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

谢谢

更新到 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:

valet install

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

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

None 以上答案对我有用,但在这里找到了解决方案: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

按照上面的配置,但是放在文件里。

~/.valet/Nginx/all.conf

  fastcgi_buffers 16 16k;
  fastcgi_buffer_size 32k;

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

我 运行 遇到了与 Laravel 8 相同的问题。 Valet 和 Expose 似乎都有效,但网页总是给出 502 响应。

我在更新 composer 并尝试重新安装 Valet 时找到的解决方案是 Valet 不知道要使用哪个版本的 php。

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

valet use php@7.4

我通过以下方式解决了这个问题:

php -v

PHP 8.0.1 (cli) (built: Jan 8 2021 09:07:02) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.1, Copyright (c) Zend Technologies with Zend OPcache v8.0.1, Copyright (c), by Zend Technologies

其次是:

valet use php@8.0 --force

Unlinking current version: php Linking new version: php@8.0 Updating PHP configuration... Restarting php... Restarting nginx... Valet is now using php@8.0.

代客似乎对 PHP 使用的是哪个感到困惑。

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

试试这个

brew services start php

如果它不起作用,请尝试从源重新安装php

brew uninstall php
brew install php --build-from-source
valet install

来源:laravel/valet github issues