【问题标题】:Yii2 App not displaying on Heroku domainYii2 应用程序未显示在 Heroku 域上
【发布时间】:2016-01-14 14:12:14
【问题描述】:

我使用 composer 在 Cloud9 工作区上安装了 Yii2“基本”应用程序。它运行良好,你可以在这里看到https://portfolio-php--dfmmalaw.c9.io/basic/web/index.php

问题是我在部署到 Heroku URL 后尝试查看时遇到错误。

"Forbidden 您无权访问此服务器上的 /。"

下面的截图是我的 Cloud9 工作区 http://prntscr.com/8rrkn0

我什至尝试将 basic/web/index.php 添加到 Heroku URL,但我只是得到一个空白页面。我究竟做错了什么?

【问题讨论】:

    标签: php heroku yii yii2


    【解决方案1】:

    最简单的方法是检查您的 apache 日志。我没有使用 Heroku 的经验,但我确信他们确实提供了对它们的访问权限。只要看看那里,你就会看到问题所在。白页通常意味着这是一个灾难性错误。

    另一件需要注意的事情是你是否使用了短的 php 标签。您不应该这样做,这通常是在您的计算机上更宽松但对托管服务器更严格的设置。但是再看看日志,他们也会告诉你这一点。

    这是针对高级模板的,因此不适合您: 我猜你没有像文档告诉你的那样运行'php init'。 init 命令不仅适用于您第一次获取应用程序,而且适用于每次在新服务器上设置它时。它会创建 index.php 和您肯定需要的其他配置文件。只需再次按照 yii2 安装说明进行操作 http://www.yiiframework.com/doc-2.0/guide-start-installation.html

    【讨论】:

    • 你好,米海。我看不到在上面链接的文档中使用“php init”命令的地方。 index.php 文件是我通过 Composer 安装 Yii2 框架时创建的。它位于 basic/web 目录中,我可以在 Cloud9 中运行应用程序,您可以在此处看到 >>>>>> prntscr.com/8rtpbq
    • 你好,对不起,我在高级模板上工作了太多,那个模板有一个 init。让我弄清楚是什么。
    【解决方案2】:

    在得到 Herokai David Zuelke 的帮助后,我决定编写一个关于“在 Cloud9 中创建 Yii2 应用程序 → 推送到 Github → 部署到 Heroku”的方法。请参见下文(如果更容易阅读,请在顶部查看 Google 文档链接):

    https://docs.google.com/document/d/15teHaGWUWSNW_VwdV3-7bVpQHNRv2G0Z8GPFbIB-ogs/edit

    1) 创建 Yii2 “基础”应用:

    290795 $ composer create-project --prefer-dist yiisoft/yii2-app-basic basic
    

    2) 进入“基本”目录

    290795 $ cd basic/
    

    3) 为“基本”目录初始化本地仓库

    basic $ git init
    

    4) 添加并提交 Yii 项目

    basic $ git add .
    basic $ git commit -m "basic Yii project"
    

    5) 在“web”目录中添加指向 index.php(入口脚本)的 procfile

    basic $ echo "web: vendor/bin/heroku-php-apache2 web/" > Procfile
    basic $ git add Procfile 
    basic $ git commit -m "Procfile for Heroku"
    

    6) 注释掉调试内容(我手动而不是从命令行执行此操作)

    basic $ vim web/index.php # remove dev/debug env stuff (not my way)
    basic $ git add web/index.php 
    basic $ git commit -m "remove dev/debug env"
    

    7) 这会将依赖关系从 v1.0.3 更新到 v1.1(绝对必要)

    basic $ composer require fxp/composer-asset-plugin
    basic $ git add composer.json composer.lock 
    basic $ git commit -m "use fxp/composer-asset-plugin in project"
    

    8) 创建 Heroku 应用并推送到它。 (我改为创建并推送到 Github 存储库)

    basic $ heroku create
    basic $ git push heroku master (again I push to Github Repo synced with Heroku)
    

    9) 为 Yii 应用程序添加日志记录到 Heroku(没有开箱即用的 Yii 日志记录)

    basic $ echo "web: vendor/bin/heroku-php-apache2 -l runtime/logs/app.log web/" > Procfile
    basic $ git add Procfile 
    basic $ git commit -m "tail runtime/logs/app.log"
    basic $ git push heroku master (again I push to Github Repo synced with Heroku)
    

    10) 这允许“联系”页面工作(不知道为什么)

    basic $ composer require ext-gd:* --ignore-platform-reqs
    basic $ git add composer.json composer.lock 
    basic $ git commit -m "require GD for contact CAPTCHA"
    basic $ git push heroku master (again I push to Github Repo synced with Heroku)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2014-02-08
      • 2021-04-27
      • 2020-12-31
      • 2017-09-11
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多