Laravel Homestead:403禁止使用nginx

use*_*669 33 nginx laravel

我刚刚按照他们的指示安装了Laravel Homestead.当我打开http://homestead.app:8000时,我得到了nginx 403禁止的HTTP响应.

我尝试将应用程序/存储权限设置为755,但这不起作用,所以我重新加载了Vagrant.没有进一步的结果.

我也试过更改nginx配置,但没有成功.

hdo*_*mos 65

我有同样的问题,对我来说原因是在Homestead.yaml文件中,我错误地把它:

sites:
- map: homestead.app
  to: /home/vagrant/Code
Run Code Online (Sandbox Code Playgroud)

而不是正确的语法:

sites:
- map: homestead.app
  to: /home/vagrant/Code/path/to/public
Run Code Online (Sandbox Code Playgroud)

  • 我认为你需要在此之后重新提供 (17认同)
  • 就我而言,我忘记添加 /public 目录;-P (2认同)

cas*_*stt 28

此响应的另一个原因可能是使用公共目录中的文件夹复制路由.例如,您的目录中可能包含homestead.app/lists GET路径和lists文件夹/public.这将导致相同的403错误(服务器将假定您尝试访问/public/lists目录而不是您的/lists路由).


小智 9

我一直在撞墙来处理同样的问题,我刚刚解决了这个问题.

我确信我已经正确设置了yaml文件,但是我一直收到403错误,当我尝试一些路由时,我得到了"未指定输入文件".

我的解决方案来自http://laravel.com/docs/4.2/homestead,它涉及使用serve命令.我没有添加任何其他网站,只是尝试任何东西来让第一个网站运行.

SSH进入我的流浪盒并使用命令"serve my_app_name.app/home/vagrant/Code/path/to/public"完成了这项工作.请注意,我已经在我的主机文件中为此应用程序添加了一个条目.

希望这有助于某人.


ale*_*lue 7

OK,我得到答案的问题,搜索和调试的几个小时后.

问题:

  1. 我有GET路线/管理员
  2. 我还有/ public/admin /文件夹里面的资产.
  3. 我已经从nginx拒绝403访问这个重复的原因;

因此,如果您不想重命名route或assets文件夹,那么您需要做的就是替换

location / {
    try_files $uri $uri/ /index.php?$query_string;
    #              ^^^^^
}
Run Code Online (Sandbox Code Playgroud)

有了这个:

location / {
    try_files $uri /index.php?$query_string;
}
Run Code Online (Sandbox Code Playgroud)

如果您可以在没有任何重构的情况下重命名路由或资产文件夹,那么您可以在没有nginx配置修复的情况下执行此操作.

希望这会有所帮助.


MrM*_*ees 6

对于某些人来说,这可能就像在现有的公共文件夹中克隆git一样简单,例如:

- map: hello-world.dev
  to: /home/vagrant/Code/Laravel/public/hello-world
Run Code Online (Sandbox Code Playgroud)

正确的文件夹结构是:

- map: hello-world.dev
  to: /home/vagrant/Code/hello-world/public
Run Code Online (Sandbox Code Playgroud)

另一个好消息是忽略编辑hosts文件的laravel文档,使用git shell或cygwin(windows)来安装vagrant hostsupdater,并简单地将主机和别名的条目添加到〜/ .homestead/Homestead.yaml文件中.


dom*_*zaq 5

我建议检查 nginx 日志 - 使用 sudo tail /var/log/nginx/homestead.app-error.log


Mah*_*alt 5

以下是完整的解决步骤:

  1. homestead edit

  2. 添加/public到目录的末尾

sites: - map: homestead.app to: /full/path/to/the/laravel-app/public

  1. homestead halt && homestead up --provision