gpt4 book ai didi

php - App Engine 标准 : The/srv/bootstrap/cache directory must be present and writable 上的 Laravel

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:27 24 4
gpt4 key购买 nike

我已经为 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"

...我的 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 文件夹成为放置缓存 View 和配置的文件夹。实际上,我怀疑 ...:clear 命令甚至根本没有正确运行。

我的应用程序现在只是一个空白的白页,与路径无关。这是公平的,因为由于不可写的缓存, View 无法呈现和存储在那里。

以上配置应该与在Google App Engine Standard上安装Laraval的教程相匹配,比如这个:https://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard .

我在云控制台查看了/tmp文件夹是否存在,是这样的。

无论如何,我们非常感谢您的帮助。如果您需要更多代码片段,请询问。我很乐意提供它们。

最佳答案

我找到了解决这个问题的简单方法。 Laravel 应用程序在 Google App Engine Standard 上的目录是只读的。所以你必须将缓存文件写入/tmp

您可以通过简单地将此环境变量添加到您的 app.yaml

来更改路径
APP_SERVICES_CACHE: /tmp/services.php
APP_PACKAGES_CACHE: /tmp/packages.php
APP_CONFIG_CACHE: /tmp/config.php
APP_ROUTES_CACHE: /tmp/routes.php

关于php - App Engine 标准 : The/srv/bootstrap/cache directory must be present and writable 上的 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com