Laravel 拉雷维尔家园:nginx禁止403

Laravel 拉雷维尔家园:nginx禁止403,laravel,nginx,Laravel,Nginx,我只是按照他们的指示安装了拉威尔家园。当我打开时,我得到nginx403禁止的HTTP响应 我尝试将应用/存储权限设置为755,但没有成功,所以我重新加载了Vagrant。没有进一步的结果 我也尝试过更改nginx配置,但没有成功。我建议检查nginx日志-使用sudo tail/var/log/nginx/homestad.app error.log我在尝试手动创建第一个站点时遇到了这个问题@格雷格的回答帮助我发现了问题!如果您使用内置功能,流浪者/家园/拉拉维尔通常会让一切自行顺利运行 Ho

我只是按照他们的指示安装了拉威尔家园。当我打开时,我得到nginx403禁止的HTTP响应

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


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

我建议检查nginx日志-使用
sudo tail/var/log/nginx/homestad.app error.log
我在尝试手动创建第一个站点时遇到了这个问题@格雷格的回答帮助我发现了问题!如果您使用内置功能,流浪者/家园/拉拉维尔通常会让一切自行顺利运行

Homestead的配置文件是为一个站点预先配置的,位于
/code/Laravel/
。启动并运行此测试台的一些步骤:

  • (请记住设置主机文件)
  • vagrant up
    并通过ssh连接到您的虚拟机(如果您的机器上还没有终端,这非常好)
  • cd~/code
  • laravel新的laravel
  • 浏览到

  • 这将创建具有适当权限的第一个站点。你可以根据这个网站的权限对未来的网站进行建模,或者只需使用Homestead.yaml和laravel new的“sites”节点在未来创建新网站。

    我一直在努力解决这个问题,我刚刚解决了我的问题

    我确信我已经正确地设置了yaml文件,但是我一直得到403错误,并且在尝试一些路由时,我得到了“未指定输入文件”

    我的解决方案来自,它涉及到使用serve命令。我没有添加任何额外的站点,只是尝试运行第一个站点

    SSH'ing进入我的流浪者盒子,并使用命令“servemyapp\u name.app/home/vagrant/Code/path/to/public”完成了这项工作。请注意,我已经为这个应用程序在我的主机文件中添加了一个条目


    希望这对某人有所帮助。

    我也有同样的问题,对我来说,原因是在Homestead.yaml文件中,我错误地放了以下内容:

    sites:
    - map: homestead.app
      to: /home/vagrant/Code
    
    而不是正确的语法:

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

    更改Nginx的配置

    将该行放在“位置/”部分:

    try_files $uri $uri/public/index.php?$query_string;
    
    如果不起作用,则将“public”替换为包含内容“index.php”的文件夹名称

    这对我使用ServerPilot非常有效


    祝你好运

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

    在我的情况下,出于测试目的,我在public目录中只有phpinfo.php文件。服务器一直显示403个错误,直到我将一个名为index.php的文件放入公用文件夹

    对于某些人来说,这可能与将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,只需在~/.homestad/homestad.yaml文件中添加主机和别名项。

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

  • 运行宅地编辑

  • /public
    添加到目录的末尾

  • 网站:
    -地图:homestad.app
    收件人:/full/path/to/the/laravel app/public

  • 运行宅基地暂停和宅基地恢复-供应

  • 好的,经过几个小时的搜索和调试,我得到了问题的答案

    问题:

  • 我得到了路线/admin
  • 我还有/public/admin/文件夹,里面有资产
  • 由于这一重复,我从nginx得到了403个拒绝访问的消息 所以,如果您不想重命名route或assets文件夹,只需替换即可

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

    location / {
        try_files $uri /index.php?$query_string;
    }
    
    如果您可以在不进行任何重构的情况下重命名route或assets文件夹,那么您可以在不进行nginx config修复的情况下完成此操作

    希望这会有所帮助。

    在浏览器中访问

    homestead.app/public
    

    在安装laravel/laravel with composer In/home/vagrant/Code/laravel/public

    之前,由于Homestead.yaml中的站点配置不当,您将收到nginx 403禁止的HTTP响应, 如果配置正确,它应该可以工作

    如何逐步解决问题:

    1) 转到“流浪者”框,创建laraval应用程序

    $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) 使用适当的站点信息更新homestad.yaml

     - map: homestead.app
       to: /home/vagrant/code/blog/public  # should be same as in step1
    
    3) 重新安置你的流浪汉

    $vagrant reload --provision
    
    您现在应该可以使用
    谢谢大家!

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

    配置Nginx站点:

    地点: -地图:宅地
    至:/home/vagrant/project1/public

    在您的vagrant框中选中nginx错误

    流浪汉 sudo cat var/log/nginx/yoursite.tld-error.log *1在stderr中发送的FastCGI:“无法打开主脚本:/home/vagrant/code/public/index.php(没有这样的文件或目录)”

    亚马尔宅地的变化

    亚马尔纳米家园酒店 到 地图:homestad.app 致:/home/vagrant/code/Laravel/public

    然后


    流浪者重新加载——准备要修复,请将ssh安装到您的家园中,然后执行以下操作:
    nano/etc/nginx/sites available/项目名称。test

    在此之后,您需要做的就是去掉
    位置中的
    $uri/