Laravel Homestead:403禁止使用nginx

时间:2014-07-04 18:02:22

标签: laravel nginx

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

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

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

16 个答案:

答案 0 :(得分:59)

我遇到了同样的问题,对我来说原因是在Homestead.yaml文件中,我错误地说了这个:

sites:
- map: homestead.app
  to: /home/vagrant/Code

而不是正确的语法:

sites:
- map: homestead.app
  to: /home/vagrant/Code/path/to/public

答案 1 :(得分:26)

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

答案 2 :(得分:9)

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

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

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

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

希望这有助于某人。

答案 3 :(得分:7)

好的,经过几个小时的搜索和调试后,我得到了question的答案。

问题:

  1. 我有GET路线 / admin
  2. 此外,我还有 / public / admin / 文件夹,其中包含资源。
  3. 我从nginx获得403访问被拒绝的原因;
  4. 因此,如果您不想重命名路由或资产文件夹,您只需要替换

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        #              ^^^^^
    }
    

    用这个:

    location / {
        try_files $uri /index.php?$query_string;
    }
    

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

    希望这会有所帮助。

答案 4 :(得分:6)

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

- map: hello-world.dev
  to: /home/vagrant/Code/Laravel/public/hello-world

正确的文件夹结构是:

- map: hello-world.dev
  to: /home/vagrant/Code/hello-world/public

另一个好注意是忽略编辑主机文件的laravel文档,使用git shell或cygwin(windows)来安装vagrant hostsupdater,只需将主机和别名的条目添加到〜/ .homestead / Homestead.yaml文件。 / p>

答案 5 :(得分:4)

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

答案 6 :(得分:3)

以下是完整的解决方案步骤:

  1. 运行find . -name "*.csv" | xargs -I{} sponge '{}' > Everything2.csv

  2. homestead edit 添加到目录的末尾

  3. /public

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

答案 7 :(得分:2)

更改Nginx的配置

将该行放在'location /'部分:

try_files $uri $uri/public/index.php?$query_string;

如果它不起作用,那么用内容'index.php'的文件夹名称替换'public',

使用ServerPilot对我很有用,

祝你好运!

答案 8 :(得分:1)

就我而言,出于测试目的,我在 public 目录中只有phpinfo.php文件。在将名为 index.php 的文件放入公用文件夹之前,服务器一直显示403错误!

答案 9 :(得分:1)

在浏览器中访问

homestead.app/public

/ home / vagrant / Code / Laravel / public

中安装带有作曲家的laravel / laravel之前

答案 10 :(得分:1)

在您的情况下,由于Homestead.yaml网站的配置不当,您获得 nginx 403禁止 HTTP响应, 如果你正确配置它应该工作。

如何逐步解决问题:

1)转到你的流浪盒并创建laraval app

$vagrant ssh
$cd ~/code

$#lets create basic blog 
$laravel new blog
    Crafting application...
    Loading composer repositories with package information
    ........

$cd blog
$ll
   # You should be able to see public folder in this dir.
   # this is the entry point for your application.
   # this is your public dir: ~/code/blog/public
   # more explicitly: /home/vagrant/code/blog/public

$exit   # exit ssh

2)使用适当的网站信息更新Homestead.yaml

 - map: homestead.app
   to: /home/vagrant/code/blog/public  # should be same as in step1

3)重新配置你的流浪汉

$vagrant reload --provision

您应该可以使用http://homestead.app立即访问它 谢谢!

答案 11 :(得分:1)

要解决此问题,请先进入ssh,然后执行以下操作: nano /etc/nginx/sites-available/the-name-of-your-project.test

之后,您要做的就是摆脱在$uri/对象中发现的location,然后再进行vagrant reload并修复错误。

Nginx 403 error fix

答案 12 :(得分:0)

当我尝试手动创建我的第一个网站时遇到了这个问题。 @GregD的回答帮助我发现了这个问题!如果您使用内置功能,Vagrant / Homestead / Laravel通常可以自行运行。

Homestead的配置文件已针对位于/Code/Laravel/的一个站点进行了预配置。一些步骤让这个测试台启动并运行:

  1. Install Homestead(请记住设置您的主机文件)
  2. vagrant up并通过ssh连接到您的虚拟机(如果您的计算机上没有终端,则Chrome Secure Shell很棒)
  3. Download and set up PHAR package
  4. cd ~/Code
  5. laravel new Laravel
  6. 浏览至http://homestead.app:8000
  7. 这将创建具有适当权限的第一个网站。您可以在对此网站的权限之后对未来网站进行建模,或者只使用Homestead.yamllaravel new <site>的“网站”节点来构建新网站。

答案 13 :(得分:0)

我的解决方案是将主机文件中的地址移动到文件底部。我发生了两次。

答案 14 :(得分:0)

配置Nginx站点:

网站:     -地图:homestead.test       到:/ home / vagrant / project1 / public

答案 15 :(得分:-1)

在您的游民游框中检查nginx错误

无用的ssh

sudo cat var / log / nginx / yoursite.tld-error.log

“ * 1在stderr中发送的FastCGI:”无法打开主脚本:/home/vagrant/code/public/index.php(无此类文件或目录)“”

Homestead.yaml中的更改

nano Homestead.yaml

到 地图:homestead.app 到:/ home / vagrant / code / Laravel / public

然后..

无用重载--provision