【发布时间】: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 clone或git pull如果它已经被克隆了。那应该调出作曲家文件。要获得作曲家的东西,你需要在新服务器上composer install -
@RiggsFolly 该项目不在 git 上。我们已经在本地安装了 composer,但无法使用 gcloud app deploy 将它们导入 App Engine...
-
部署文件后,为什么不在服务器上运行
composer install?
标签: php google-app-engine composer-php autoload vendor