【问题标题】:Deploying Symfony2 from TravisCI to Heroku after successful build error blank screen成功构建错误空白屏幕后,将 Symfony2 从 TravisCI 部署到 Heroku
【发布时间】:2015-01-23 15:32:38
【问题描述】:

我得到一个空白屏幕,但这是错误日志的结果。它似乎在 /tmp/build_xxxx...

dev 和 prod 在本地都可以正常工作。

代码在这里...https://github.com/TransformCore/dial-tone-frontend

2014-11-25T14:43:27.388147+00:00 heroku[路由器]: at=info method=GET path="/css/bootstrap.css" host=dial-tone-frontend.herokuapp.com request_id= 1bdcc1f4-4d8b-42b0-a85d-8b265d2665bd fwd="80.5.64.178" dyno=web.1 connect=1ms service=8ms status=500 bytes=208 2014-11-25T14:43:27.388931+00:00 app[web.1]:[2014-11-25 14:43:27] request.CRITICAL:未捕获的 PHP 异常 InvalidArgumentException:“文件”/tmp/build_23552b1c8333d8e8b9b475444451531c/ app/config/routing.yml" 不存在。"在 /app/app/cache/prod/classes.php 第 1575 行 {"exception":"[object] (InvalidArgumentException: 文件 \"/tmp/build_23552b1c8333d8e8b9b475444451531c/app/config/routing.yml\" 不存在。在/app/app/cache/prod/classes.php:1575)"} [] 2014-11-25T14:43:27.390315+00:00 app[web.1]: [25-Nov-2014 14:43:27 UTC] PHP 致命错误:未捕获的异常 'InvalidArgumentException' 带有消息“文件”/tmp /build_23552b1c8333d8e8b9b475444451531c/app/config/routing.yml" 不存在。在 /app/app/cache/prod/classes.php:1575 2014-11-25T14:43:27.390355+00:00 应用程序 [web.1]:堆栈跟踪: 2014-11-25T14:43:27.390525+00:00 app[web.1]:#0 /app/app/cache/prod/classes.php(2301): Symfony\Component\Config\FileLocator->locate(' /tmp/build_2355...',NULL,真) 2014-11-25T14:43:27.390779+00:00 app[web.1]:#1 /app/vendor/symfony/symfony/src/Symfony/Component/Routing/Loader/YamlFileLoader.php(49): Symfony\ Component\HttpKernel\Config\FileLocator->locate('/tmp/build_2355...') 2014-11-25T14:43:27.391220+00:00 app[web.1]:#3 /app/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Routing/DelegatingLoader.php(58): Symfony\ Component\Config\Loader\DelegatingLoader->load('/tmp/build_2355...', NULL) 2014-11-25T14:43:27.391369+00:00 app[web.1]:#4 /app/app/cache/prod/classes.php(1502): Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader->load ('/tmp/build_2355...', NULL) 2014-11-25T14:43:27.391484+00:00 app[web.1]: #5 /app/app/cache/prod/classes.php( 在 /app/app/cache/prod/classes.php 上线1575 2014-11-25T14:43:27.391759+00:00 应用程序 [web.1]: 10.36.138.222 - - [25/Nov/2014:14:43:27 +0000] “GET /css/bootstrap.css HTTP/ 1.1" 500 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36" 2014-11-25T14:43:27.389956+00:00 app[web.1]: [2014-11-25 14:43:27] request.CRITICAL: 处理异常时抛出异常 (Twig_Error_Loader: "/tmp/ build_23552b1c8333d8e8b9b475444451531c/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views" 目录不存在。) {"exception":"[object] (InvalidArgumentException: The file \"/tmp/build_23552b1c8333d8e8b9b475 /routing.yml\" 不存在。在 /app/app/cache/prod/classes.php:1575)"} [] 2014-11-25T14:43:27.390994+00:00 app[web.1]: #2 /app/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/DelegatingLoader.php(45): Symfony\ Component\Routing\Loader\YamlFileLoader->load('/tmp/build_2355...', NULL)

【问题讨论】:

  • 我会在部署前清除缓存并更新作曲家。从您的日志中,看起来某些供应商捆绑包在部署时未正确安装。部署到 heroku 时,终端的输出是什么?
  • 我已经按照您的建议完成了,清除缓存并在部署前进行作曲家更新。它部署成功,没有错误。我认为这与导致问题的 build_23552b1c8333d8e8b9b475444451531c 路径有关?
  • 不,heroku 默认使用这样的名称构建到 tmp 目录,然后打包您的应用程序以运行。运行heroku push master 后的输出或任何会告诉您确切安装了哪些包的输出。好像少了一些。您可以通过输出和您的 composer.json 并确保它们都在那里。
  • 列表中似乎没有任何遗漏
  • 我开始了一个新项目,并遵循 Symfony2 和 Heroku 的 Symfony2 文档,它们都给出了相同的错误,即生成的缓存位于错误的路径中。参考:devcenter.heroku.com/articles/getting-started-with-symfony2

标签: php symfony heroku travis-ci


【解决方案1】:

我认为问题在于在生产环境中使用了 '%kernel.root_dir%' 的缓存版本。

Heroku 在 '/tmp/build...' 之类的目录中构建 slug,但在目录 /app 中运行它。

我发现的唯一解决方法是更改​​用于计算根目录的逻辑。

我更改了我的 'app/AppKernel.php' 添加此方法:

public function getRootDir()
{
  if (isset($_ENV['SYMFONY_ENV']) && $_ENV['SYMFONY_ENV'] == 'prod') {
    // Workaround to avoid problem with the slug of heroku
    return '/app/app';
  }
  return parent::getRootDir();
}

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2023-02-23
    • 2020-10-29
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2021-07-16
    • 2019-02-10
    • 2021-08-09
    相关资源
    最近更新 更多