Мы пытаемся развернуть приложение 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.41669651956439fragments/include/include/include/include 4
Строка 4 содержит:
require_once __DIR__ . '/vendor/autoload.php';
Мы заметили, что папка vendor отсутствует, хотя она находится в корневом (где находится app.yaml) каталоге на локальном сервере. Таким образом, это не загрузка папки поставщика, созданной композитором. Мы где-то читали, что по умолчанию каталог vendor / игнорируется в сгенерированном файле .gcloudignore, чтобы уменьшить количество файлов, отправляемых при развертывании. Поэтому мы закомментировали папку vendor из файла .gcloudignore и снова развернули приложение и получили эту ошибку при развертывании.
ОШИБКА: (gcloud.app.deploy) INVALID_ARGUMENT: в этом развертывании слишком много файлов. Новые версии ограничены 10000 файлами для этого приложения. - '@type': type.googleapis.com/google.rpc.BadRequest fieldViolations: - description: в этом развертывании слишком много файлов. Новые версии ограничены 10000 файлами для этого приложения. поле: version.deployment.files [...]
Как мы можем решить проблему: заставить композитора работать в стандартной среде движка приложений PHP 5.5 или развернуть папку поставщика, содержащую более 10 000 файлов?
git clone
илиgit pull
, если он уже клонирован. Это должно вызвать файлы композитора. Чтобы получить материалы для композитора, вам нужноcomposer install
на новом сервере - person RiggsFolly   schedule 11.03.2019composer install
на сервере после развертывания файлов? - person Nico Haase   schedule 12.03.2019