Laravel на App Engine Standard: каталог / srv / bootstrap / cache должен присутствовать и быть доступным для записи - PullRequest
2 голосов
/ 07 июля 2019

Я борюсь со стандартной средой Google App Engine уже целый день.

Ошибка выглядит следующим образом:

PHP Notice: Exception: The /srv/bootstrap/cache directory must be present and writable. in /srv/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php:168

Я знаю, что папка /tmp является единственной записываемой папкой для стандартной среды App Engine. Поэтому мои app.yaml имеют следующие дополнительные env_variables:

  APP_STORAGE: "/tmp"
  VIEW_COMPILED_PATH: "/tmp"

... my bootstrap/app.php содержит эту строку:

$app->useStoragePath(env('APP_STORAGE', base_path() . '/tmp'));

... и мои composer.json имеют следующие сценарии для учета изменений в конфигурации:

        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump"
        ],
        "post-install-cmd": [
            "composer dump-autoload",
            "php artisan config:clear",
            "php artisan cache:clear",
            "php artisan view:clear",
            "php artisan cache:clear",
            "php artisan regenerate:schoolCSS"
        ]

Это мои драйверы, настроенные в app.yaml:

SESSION_DRIVER: database
BROADCAST_DRIVER: log
CACHE_DRIVER: database
QUEUE_DRIVER: sync

По какой-то причине я просто не могу найти способ сделать папку /tmp папкой, в которой хранятся кэшированные представления и конфиг. На самом деле, я подозреваю, что команды ...:clear даже не выполняются должным образом.

Мое приложение теперь просто пустая белая страница, независимо от пути. Это справедливо, так как из-за недоступного для записи кэша представления не могут быть отображены и сохранены там.

Указанные выше конфигурации должны соответствовать учебным пособиям по установке Laraval в Google App Engine Standard, таким как этот: https://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard.

В облачной консоли я проверил, существует ли папка /tmp, что имеет место.

В любом случае, вся помощь очень ценится. Если вам нужно больше фрагментов кода, просто спросите. Я буду рад предоставить их.

...