我刚按照他们的指示安装了Laravel Homestead。当我打开http://homestead.app:8000时,我得到了nginx 403禁止的HTTP响应。
我已尝试将应用/存储权限设置为755,但这不起作用,所以我重新加载了Vagrant。没有进一步的结果。
我也尝试过更改nginx配置,但没有成功。
答案 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的答案。
问题:
因此,如果您不想重命名路由或资产文件夹,您只需要替换
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)
以下是完整的解决方案步骤:
运行find . -name "*.csv" | xargs -I{} sponge '{}' > Everything2.csv
将 homestead edit
添加到目录的末尾
/public
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
并修复错误。
答案 12 :(得分:0)
当我尝试手动创建我的第一个网站时遇到了这个问题。 @GregD的回答帮助我发现了这个问题!如果您使用内置功能,Vagrant / Homestead / Laravel通常可以自行运行。
Homestead的配置文件已针对位于/Code/Laravel/
的一个站点进行了预配置。一些步骤让这个测试台启动并运行:
vagrant up
并通过ssh连接到您的虚拟机(如果您的计算机上没有终端,则Chrome Secure Shell很棒)cd ~/Code
laravel new Laravel
。 这将创建具有适当权限的第一个网站。您可以在对此网站的权限之后对未来网站进行建模,或者只使用Homestead.yaml
和laravel new <site>
的“网站”节点来构建新网站。
答案 13 :(得分:0)
我的解决方案是将主机文件中的地址移动到文件底部。我发生了两次。
答案 14 :(得分:0)
配置Nginx站点:
网站: -地图:homestead.test 到:/ home / vagrant / project1 / public
答案 15 :(得分:-1)
在您的游民游框中检查nginx错误
“ * 1在stderr中发送的FastCGI:”无法打开主脚本:/home/vagrant/code/public/index.php(无此类文件或目录)“”
Homestead.yaml中的更改
到 地图:homestead.app 到:/ home / vagrant / code / Laravel / public
然后..