我已经在 Google App Engine 标准环境中苦苦挣扎了一天。
错误如下:
PHP 注意:例外:/srv/bootstrap/cache 目录必须存在且可写。在 /srv/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php:168
我知道该/tmp
文件夹是 App Engine 标准环境的唯一可写文件夹。因此,我app.yaml
有以下附加env_variables
:
APP_STORAGE: "/tmp"
VIEW_COMPILED_PATH: "/tmp"
...我的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
命令根本没有正确运行。
我的应用程序现在只是一个空白页,无论路径如何。这是公平的,因为由于不可写缓存,视图不能被渲染和存储在那里。
以上配置应与在 Google App Engine Standard 上安装 Laraval 的教程相匹配,例如:https ://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard 。
在云控制台中,我检查了该/tmp
文件夹是否存在,是这样的。
无论如何,非常感谢所有帮助。如果您需要更多代码片段,请询问。我很乐意为他们提供。