Мы пытаемся развернуть приложение PHP, содержащее, среди прочего, папку поставщика, созданную Composer.При доступе к приложению после успешного развертывания мы получаем ошибку 500:
Неустранимая PHP-ошибка: require_once (): не удалось открыть файл »/base/data/home/apps/appname/initial.416696519564391510/include/фрагменты / 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';
Мы заметили, что папка поставщикаотсутствует, даже если он находится в корневом каталоге (где находится app.yaml) каталога на локальном сервере.Так что это не загрузка папки производителя, созданной композитором.Мы где-то читали, что по умолчанию каталог vendor / игнорируется в сгенерированном файле .gcloudignore, чтобы уменьшить количество файлов, отправляемых при развертывании.Поэтому мы закомментировали папку vendor из файла .gcloudignore, снова развернули приложение и получили эту ошибку при развертывании
ОШИБКА: (gcloud.app.deploy) INVALID_ARGUMENT: в этом развертывании слишком много файлов.Новые версии ограничены до 10000 файлов для этого приложения.- '@type': type.googleapis.com/google.rpc.BadRequest fieldViolations: - описание: в этом развертывании слишком много файлов.Новые версии ограничены до 10000 файлов для этого приложения.field: version.deployment.files [...]
Как мы можем решить эту проблему: заставить композитора работать в стандартной среде ядра приложения PHP 5.5 или развернуть папку vendor, содержащую более 10 000файлы