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