【问题标题】:Get composer to work in App Engine Standard Environment?让作曲家在 App Engine 标准环境中工作?
【发布时间】:2019-08-01 22:50:47
【问题描述】:

我们正在尝试部署一个 PHP 应用程序,其中包含由 Composer 生成的供应商文件夹等。 成功部署后访问应用程序时出现错误 500:

PHP 致命错误:require_once():需要打开失败 '/base/data/home/apps/appname/initial.416696519564391510/include/fragments/vendor/autoload.php' (include_path='.;/base/data/home/apps/appname/initial.416696519564391510/;/base/alloc/tmpfs/dynamic_runtimes/php55_dynamic/4d9dbd56f8406c08/sdk') 在 /base/data/home/apps/appname/initial.416696519564391510/include/fragments/drive.php 在第 4 行

第 4 行包含:

require_once __DIR__ . '/vendor/autoload.php';

我们注意到 vendor 文件夹丢失了,即使它位于本地服务器的根目录(app.yaml 所在的位置)中。所以它不会上传由作曲家生成的供应商文件夹。我们在某处读到,默认情况下,vendor/ 目录在生成的 .gcloudignore 文件中被忽略,以减少部署中发送的文件数量。所以我们从 .gcloudignore 文件中注释掉了 vendor 文件夹并再次部署了应用程序并在部署时遇到了这个错误

错误:(gcloud.app.deploy)INVALID_ARGUMENT:此部署也有 很多文件。此应用程序的新版本限制为 10000 个文件。 - '@type': type.googleapis.com/google.rpc.BadRequest fieldViolations: - 描述:此部署的文件太多。此应用程序的新版本限制为 10000 个文件。场地: version.deployment.files[...]

我们如何解决这个问题,要么让 composer 在应用引擎标准环境 PHP 5.5 中工作,要么部署包含超过 10 000 个文件的供应商文件夹?

【问题讨论】:

  • git clonegit pull 如果它已经被克隆了。那应该调出作曲家文件。要获得作曲家的东西,你需要在新服务器上composer install
  • @RiggsFolly 该项目不在 git 上。我们已经在本地安装了 composer,但无法使用 gcloud app deploy 将它们导入 App Engine...
  • 部署文件后,为什么不在服务器上运行composer install

标签: php google-app-engine composer-php autoload vendor


【解决方案1】:

通过从 Vendor 文件夹中清除不必要的文件解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-12
    • 2018-07-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多