在运行laravel代客的laravel项目中,我遇到了502错误网关。
我已经在线尝试了许多解决方案,但没有成功。 (https://gist.github.com/adamwathan/6ea40e90a804ea2b3f9f24146d86ad7f)
目前,我看到的错误是502错误的网关,运行代客安装时命令行中的错误是更新php配置时的错误。它给出以下错误:
警告:file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf):无法打开流:/Users/username/.composer/vendor/中没有此类文件或目录第112行的laravel / valet / cli / Valet / Filesystem.php
警告:file_get_contents(/usr/local/etc/php/7.3/php-fpm.d/www.conf):无法打开流:/Users/username/.composer/vendor/中没有此类文件或目录第125行上的laravel / valet / cli / Valet / Filesystem.php
有人有类似的问题吗?
谢谢
答案 0 :(得分:9)
更新到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
答案 1 :(得分:2)
以上答案均不适合我,但在此处找到了解决方案:https://janostlund.com/2019-06-20/502-bad-gateway-laravel-valet
true
显示:
false
已通过在list_grade = []
list_score = []
def collect():
while True:
score = input("Student's score: ")
if score == "done":
average(list_grade)
break
else:
list_grade.append(float(score))
def average(list_grade):
average_grade = sum(list_grade)/len(list_grade)
calculate()
def calculate():
for element in list_grade:
if element >= 80:
list_score.append("A")
elif element >= 70:
list_score.append("B")
elif element >= 60:
list_score.append("C")
elif element >= 50:
list_score.append("D")
elif element >= 40:
list_score.append("F")
passer()
def passer():
s_fail = 0
s_pass = 0
for element in list_score:
if element == 'F':
s_fail += 1
else:
s_pass += 1
collect()
print ("Number of students that failed: " + s_fail)
print ("Number of students that passed: " + s_pass)
print ("Marks: " + list_grade)
print ("Letter grades: " + list_score)
print ("Average class grade: " + average_grade)
的{{1}}中添加两行来解决
~/.config/valet/Log/nginx-error.log
然后运行[error] 17423#0: *1 upstream sent too big header while reading response header from upstream [...]
答案 2 :(得分:1)
如果像我这样的人在将502 Bad Gateway
更新到最新版本后使用Laravel Valet时看到composer global update
,那么您很可能忘记了运行valet install
命令。 Laravel Valet在更新到最新版本后,需要(在大多数情况下)才能运行valet install
命令。
答案 3 :(得分:1)
我在使用 Laravel 8 时遇到了同样的问题。Valet 和 Expose 似乎都可以工作,但网页总是给出 502 响应。
我在更新 composer 并尝试重新安装 Valet 时发现的解决方案是 Valet 不知道该使用哪个版本的 php。
要解决这个问题,请使用以下命令告诉代客使用哪个版本的 php。
valet use php@7.4
答案 4 :(得分:0)
我有同样的问题。我通过升级mariadb解决了它。 brew upgrade mariadb
答案 5 :(得分:0)
按照上面的配置,但将其放入文件中。
~/.valet/Nginx/all.conf
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
这确实在所有“我使用Valet plus”网站上都流行
答案 6 :(得分:0)
我通过以下方式解决了这个问题:
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... Valet 现在使用的是 php@8.0。
Valet 似乎对它使用的 PHP 感到困惑。