我创建了我的第一个Laravel应用程序,它在本地运行。路线和控制器和东西都存在于app目录中,我在http://homestead.app看到它(我不在网址中包含/ app)。我是从这些laracasts中做到的:https://laracasts.com/series/laravel-5-from-scratch
问题:我已成功将其部署到Heroku,但当我转到根网址(https://dk-laravel-test.herokuapp.com)时,我收到403错误:
Forbidden
You don't have permission to access / on this server.
线索:
根据Papertrail日志,它实际上试图转到/ app / ,但我不确定为什么 - 这是正常的,或者是什么&# 39; s无意中设置了某个地方?
Sep 04 05:50:40 dk-laravel-test app / web.1:[Fri Sep 04 12:50:40.115461 2015] [autoindex:error] [pid 104:tid 140623923373824] [client 10.157.115.7: 23446] AH01276:无法提供目录/ app /:找不到匹配的DirectoryIndex(index.php,index.html,index.htm),以及Options指令禁止的服务器生成的目录索引
当我在根目录下放一个index.php文件,然后尝试直接去那里时,我得到一个404(不确定是否有这个或其他问题的线索):{{3} }
(3。我以前在heroku中添加了一个小的测试php应用程序并且服务很好 - 没有明显的跳跃比较两者,但Laravel显然更加擅长)
问题:我在哪里可能会不小心告诉它去/ app /?这是正常的吗?抱歉,如果这是基本的,它是我的第一个牛仔竞技表演,而且我已经环顾了几个小时
我检查的其他信息/内容: - 在这篇文章(https://dk-laravel-test.herokuapp.com/index.php)之后,我设置了BUILDPACK_URL,在我的Procfile中我有:
web: vendor/bin/heroku-php-apache2 public
如果我删除公众'没有不同的结果参数(在阅读此https://mattstauffer.co/blog/installing-a-laravel-app-on-heroku后尝试过),或将其更改为/ Laravel / public
我还没有触及我的laravel项目中的.htaccess文件:
选项-MultiViews
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
我确认Procfile是大写的(https://devcenter.heroku.com/articles/custom-php-settings#setting-the-document-root)
如果重要,我会使用Homestead
有什么想法吗?哪里可以不小心告诉它去/ app /?其他我应该检查的东西?任何帮助都非常感谢!!
答案 0 :(得分:1)
答:我认为这与Procfile无法访问有关:
1)在原始情况下,我的laravel应用程序是我的git repo中的一个目录,所以我认为Procfile是一个太深而无法实际找到/使用的级别。
2)为了验证是否是这样,我为新的Laravel应用程序制作了一个新的(顶级)回购。即使在调整Procfile(!)时我仍然看到相同的/ app /症状,所以我感到难过和沮丧。但是今天早上我再次更新了Procfile并将其推送到github和heroku(因为我在github repo中为主分支设置了自动部署,所以应该是不必要的),但现在当我尝试在浏览器中加载它时日志是(正确)" /"而不是" / app /",所以我终于迈出了下一步! (剩下的谜一点,Procfile仍然没有在我的github repo中列出,但它出现在提交差异中,所以更改确实通过了)
所以我认为Procfile是它:|