【发布时间】:2018-08-01 21:44:31
【问题描述】:
我已经建立了一个新的 symfony 4 项目,我试图在 heroku 上进行部署。我已在本地成功设置并运行该应用程序。我基本上按照heroku tutorial here 的说明进行操作。但是,本教程仅针对 symfony 版本 2 和 3 编写。
我过去成功设置了一个 symfony 3 应用程序,我必须按照“最佳实践”部分中的说明创建一个 Procfile 将 heroku 服务器定向到web/ 目录。在这个 S4 安装中,我没有看到 web/ 文件夹,所以我没有创建 Procfile。 Heroku 在这种情况下使用默认命令。
我在 heroku config 中创建了 2 个配置变量:APP_ENV、SYMPHONY_ENV 都设置为 prod。我将应用程序部署到heroku,它全部部署成功,但是当我尝试访问该页面时,我只得到一个403 Forbidden。在日志中我得到了这个,这可能是正确的功能,因为我还没有编写任何代码:
[autoindex:error] [pid 116:tid 139699079337728] [client 10.5.228.216:17171] AH01276:无法提供目录 /app/:找不到匹配的 DirectoryIndex (index.php,index.html,index.htm),并且 选项指令禁止服务器生成的目录索引
我没有看到app 文件夹,但我确实看到了一个名为public 的文件夹,里面有一个索引文件。
有没有人有将 Symfony 4 的新版本部署到 Heroku 的经验,如果有,任何提示将不胜感激。谢谢!
【问题讨论】:
-
你试过了吗?在 Symfony 4 中,公共根文件夹从“web”更改为“public”。
-
@LBA 我刚刚尝试过,并感谢它似乎有效的简单建议,尽管现在我得到了一个执行:
PHP Fatal error: Uncaught Symfony\Component\Routing\Exception\NoConfigurationException in /app/var/cache/prod/srcProdProjectContainerUrlMatcher.php这似乎没问题,因为我还没有配置任何东西这个heroku服务器应用程序设置为生产 -
确实如此 - 所以只需继续,并在遇到困难时询问
-
@LBA 是的,谢谢,我为基本路由放入了控制器,并且该站点正常工作,看起来很傻。我应该早点尝试你的建议,但不知何故它似乎并不明显。谢谢。
标签: php symfony heroku symfony4