Laravel Valet 不工作-好像它缺少网络服务器

Laravel Valet not working- as if it's missing a web server

我按照说明安装了 Valet,前两天运行良好,完全没有问题。然后突然间它停止工作,而且随着时间的推移似乎只会变得更糟。首先,除了主页之外的所有 laravel 个项目都出现了 404 错误,最终站点完全停止工作,就好像没有网络服务器 运行 一样。

以下是有关我的环境的一些详细信息:

经过数小时的搜索、摆弄、卸载和重新安装,我现在处于一个非常奇怪的时刻。如果 MAMP 在端口 80 和 3306 上 运行 Valet 将服务 something.dev 尽管我仍然在主页之外得到 404。怎么会这样? MAMP 不应该在其他端口上为 Valet 释放 80 和 3306 或根本不释放 运行 吗?另一件奇怪的事情是 something.dev 将 return 我的 Valet 停放的 webroot 而不是 webroot 下的站点 something.dev。 我搜索了高点和低点,我不知道如何才能得到东西 运行 它们应该的样子

按照以下步骤解决: 您必须对 nginx installation/configuration 进行故障排除,因为这是 Valet 背后的服务器。

我已经解决了代客安装后第一次重启的 "valet not serving" 问题。

1st 检查您使用的是最新版本

$ brew update $ brew upgrade(如果您使用的是 brew)

2nd 测试nginx配置,可能存在一些权限问题:

$ nginx -t - 这 return 无法读取的 "error" 路径。例如。将 return 代客 error.log 或 conf 文件的路径。例如:

2017/02/04 16:32:31 [emerg] 17285#0: open() "/Users/username/.valet/Log/nginx-error.log" failed (13: Permission denied)

检查文件:$ ls -l ~/.valet/Log/nginx-error.log

-rw-r--r-- 1 root staff 7842 Feb 4 15:54 ~/.valet/Log/nginx-error.log

我的 nginx 没有启动为所有代客站点提供服务的原因是在我的主目录中,错误日志由 root 拥有。使用 chown 命令(替换为实际用户名)更改适合此文件和其他文件的权限:

$ sudo chown username:staff ~/.valet/Log/nginx-error.log

更改权限后,重启nginx: $ sudo nginx -s stop && sudo nginx

如果命令将 return nginx: [error] invalid PID number "" in "/usr/local/var/run/nginx.pid",那是因为 nginx 不是 运行 并且没有 PID,只需再次启动 nginx 使用: $ sudo nginx

现在测试您的代客站点。 (当 MAMP 停止时) 下一个。决定端口并配置 Valet 和 MAMP 以在没有冲突的情况下工作。

希望对您有所帮助。

注意: 必须拥有您的错误日志文件的 user:group 可以在用户指令的 nginx.conf 中找到。