【问题标题】:How do i upload to amazon s3 using Heroku composer amazon aws sdk我如何使用 Heroku composer amazon aws sdk 上传到 amazon s3
【发布时间】:2015-04-30 10:43:22
【问题描述】:

我正在使用 heroku,我正在这里学习本教程,https://devcenter.heroku.com/articles/s3-upload-php

我已将 composer require 行放在我的 composer.json 文件中,如下所示。

{ “要求” : { "silex/silex": "~1.1", “独白/独白”:“~1.7” }, “需要开发”:{ “heroku/heroku-buildpack-php”:“*” }, “要求” : { “aws/aws-sdk-php”:“~2.6” } }

如您所见,我将亚马逊放在最后。但是,我收到以下错误消息。

2015-02-27T16:26:05.499004+00:00 app[web.1]: [27-Feb-2015 16:26:05 UTC] PHP 警告:require(vendor/autoload.php): failed to打开流:第 4 行的 /app/web/fb/fileupload.php 中没有这样的文件或目录

有谁知道除了将该行放在我的作曲家json文件中之外我是否需要做任何事情????请帮忙

【问题讨论】:

    标签: php heroku amazon-web-services heroku-toolbelt aws-php-sdk


    【解决方案1】:

    所以看起来包含找不到vendor/autoload.php

    你确定它存在吗?

    vendor 文件夹应该在fb 文件夹中并且有那个文件。 记住它是区分大小写的。

    1. 只需确保指向包含中的正确文件即可。
    2. 确保你运行composer install

    【讨论】:

    • 好的,我已将我的 composer json 文件更改为与您的一样。如何运行 heroku composer update?
    • 当我尝试使用 heroku toolbelt CLI 运行 composer install 时,它说找不到命令
    • 另外,该文件不存在。我必须以某种方式运行作曲家更新
    【解决方案2】:

    您现在有两个“require”键,它应该如何工作?这是一个哈希映射,键相互覆盖!

    这就是你想要的:

    {
      "require": {
        "silex/silex": "~1.1",
        "monolog/monolog": "~1.7",
        "aws/aws-sdk-php": "~2.6"
      },
      "require-dev": {
        "heroku/heroku-buildpack-php": "*"
      }
    }
    

    然后您当然必须运行 composer update 来生成 composer.lock,并将其与您的其余代码一起检查到存储库中。

    为什么不在将应用程序推送到 Heroku 之前在计算机上本地运行该应用程序?

    【讨论】:

    • 我是一个新手开发人员,从 2009 年开始只编码,并且只使用 as3、php、c#、.net。该应用程序需要 facebook graph api,我不确定如何在本地运行该应用程序。无论如何,我需要以某种方式在我的 heroku dyno 上运行 composer update
    • 不,你没有。就像我说的,你在本地运行composer update,所以你的依赖版本在composer.lock 中被冻结到一个已知且可重现的状态。这就是依赖管理的重点。然后检查更改后的 composer.jsoncomposer.lock,并将其推送到 Heroku,它将为您安装依赖项。
    • 当然,如果你想在应用程序的fb/ 子文件夹中包含自动加载器,那么你需要require('../vendor/autoload.php');,或者更好的是require(__DIR__.'/../vendor/autoload.php');...
    • 为什么我的 .gitignore 文件包含供应商目录?我是否必须删除它,以便在下次推送时将库转移到服务器?
    • 没有。 vendor/ 目录包含依赖项的源代码。 Composer、Bundler、NPM 等的全部意义在于你检查依赖源,只检查“声明”,即composer.json(你“需要”)和composer.lock (上次运行 composer update 时的“冻结”状态,因此您、您的合作开发人员、Heroku 等总是在每个 composer install 或部署上安装完全相同的依赖项,而不是某天破坏事情的新版本)。只需按照我给您的说明进行操作,Heroku 就会安装 AWS 开发工具包。
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2017-07-07
    • 2011-03-23
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多