Php “处没有现有目录”/“工作区/存储/日志”;而且它是不可构建的:只读文件系统
我使用以下步骤在gcloud上部署了一个Laravel应用程序:Php “处没有现有目录”/“工作区/存储/日志”;而且它是不可构建的:只读文件系统,php,laravel,logging,gcloud,Php,Laravel,Logging,Gcloud,我使用以下步骤在gcloud上部署了一个Laravel应用程序: php artisan密钥:生成--show php artisan缓存:清除 php artisan配置:清除 php artisan视图:清除 php工匠路线:清除 gcloud测试版应用程序部署--无缓存 我在composer.json中有以下内容: "post-install-cmd": [ "Illuminate\\Foundation\\ComposerScripts::post
php artisan密钥:生成--show
php artisan缓存:清除
php artisan配置:清除
php artisan视图:清除
php工匠路线:清除
gcloud测试版应用程序部署--无缓存
我在composer.json
中有以下内容:
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize",
"chmod -R 777 bootstrap\/cache",
"chmod -R 777 storage\/logs",
"php artisan cache:clear"
]
app.yaml
内容如下:
runtime: php72
runtime_config:
document_root: public
env_variables:
# Put production environment variables here.
APP_LOG: errorlog
APP_KEY: base64:js8r1FFX55XhAcXVjU71plGXGTCt4YrauCqXFHjlsO4=
APP_STORAGE: /tmp
VIEW_COMPILED_PATH: /tmp
CACHE_DRIVER: cookie
SESSION_DRIVER: cookie
## Set these environment variables according to your CloudSQL configuration.
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: secret
CLOUD_SQL_DSN: "mysql:dbname=cbt-sql;unix_socket=/cloudsql/theta-byte-123456:asia-southeast1:cbt-sql"
但是,我得到了以下错误。我不确定我做错了什么
(1/1) UnexpectedValueException
There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system
in StreamHandler.php line 172
at StreamHandler->createDir()
in StreamHandler.php line 100
at StreamHandler->write(array('message' => 'There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', 'context' => array('exception' => object(UnexpectedValueException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTimeImmutable), 'extra' => array(), 'formatted' => '[2019-10-12 06:24:56] production.ERROR: There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system {"exception":"[object] (UnexpectedValueException(code: 0): There is no existing directory at \\"/workspace/storage/logs\\" and its not buildable: Read-only file system at /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:172)[stacktrace]#0 /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php(100): Monolog\\\\Handler\\\\StreamHandler->createDir()#1 /srv/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(120): Monolog\\\\Handler\\\\StreamHandler->write(Array)#2 /srv/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\\\\Handler\\\\RotatingFileHandler->write(Array)#3 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(323): Monolog\\\\Handler\\\\AbstractProcessingHandler->handle(Array)#4 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(538): Monolog\\\\Logger->addRecord(400, \'There is no exi...\', Array)#5 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(176): Monolog\\\\Logger->error(\'There is no exi...\', Array)#6 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(87): Illuminate\\\\Log\\\\Logger->writeLog(\'error\', \'There is no exi...\', Array)#7 /srv/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(539): Illuminate\\\\Log\\\\Logger->error(\'There is no exi...\', Array)#8 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\\\\Log\\\\LogManager->error(\'There is no exi...\', Array)#9 /srv/app/Exceptions/Handler.php(37): Illuminate\\\\Foundation\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#10 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#11 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\\\Foundation\\\\Http\\\\Kernel->reportException(Object(UnexpectedValueException))#12 /srv/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->handle(Object(Illuminate\\\\Http\\\\Request))#13 {main}"} '))
in RotatingFileHandler.php line 120
at RotatingFileHandler->write(array('message' => 'There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', 'context' => array('exception' => object(UnexpectedValueException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTimeImmutable), 'extra' => array(), 'formatted' => '[2019-10-12 06:24:56] production.ERROR: There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system {"exception":"[object] (UnexpectedValueException(code: 0): There is no existing directory at \\"/workspace/storage/logs\\" and its not buildable: Read-only file system at /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:172)[stacktrace]#0 /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php(100): Monolog\\\\Handler\\\\StreamHandler->createDir()#1 /srv/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(120): Monolog\\\\Handler\\\\StreamHandler->write(Array)#2 /srv/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\\\\Handler\\\\RotatingFileHandler->write(Array)#3 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(323): Monolog\\\\Handler\\\\AbstractProcessingHandler->handle(Array)#4 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(538): Monolog\\\\Logger->addRecord(400, \'There is no exi...\', Array)#5 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(176): Monolog\\\\Logger->error(\'There is no exi...\', Array)#6 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(87): Illuminate\\\\Log\\\\Logger->writeLog(\'error\', \'There is no exi...\', Array)#7 /srv/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(539): Illuminate\\\\Log\\\\Logger->error(\'There is no exi...\', Array)#8 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\\\\Log\\\\LogManager->error(\'There is no exi...\', Array)#9 /srv/app/Exceptions/Handler.php(37): Illuminate\\\\Foundation\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#10 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#11 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\\\Foundation\\\\Http\\\\Kernel->reportException(Object(UnexpectedValueException))#12 /srv/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->handle(Object(Illuminate\\\\Http\\\\Request))#13 {main}"} '))
in AbstractProcessingHandler.php line 42
at AbstractProcessingHandler->handle(array('message' => 'There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', 'context' => array('exception' => object(UnexpectedValueException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTimeImmutable), 'extra' => array(), 'formatted' => '[2019-10-12 06:24:56] production.ERROR: There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system {"exception":"[object] (UnexpectedValueException(code: 0): There is no existing directory at \\"/workspace/storage/logs\\" and its not buildable: Read-only file system at /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:172)[stacktrace]#0 /srv/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php(100): Monolog\\\\Handler\\\\StreamHandler->createDir()#1 /srv/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(120): Monolog\\\\Handler\\\\StreamHandler->write(Array)#2 /srv/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\\\\Handler\\\\RotatingFileHandler->write(Array)#3 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(323): Monolog\\\\Handler\\\\AbstractProcessingHandler->handle(Array)#4 /srv/vendor/monolog/monolog/src/Monolog/Logger.php(538): Monolog\\\\Logger->addRecord(400, \'There is no exi...\', Array)#5 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(176): Monolog\\\\Logger->error(\'There is no exi...\', Array)#6 /srv/vendor/laravel/framework/src/Illuminate/Log/Logger.php(87): Illuminate\\\\Log\\\\Logger->writeLog(\'error\', \'There is no exi...\', Array)#7 /srv/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(539): Illuminate\\\\Log\\\\Logger->error(\'There is no exi...\', Array)#8 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\\\\Log\\\\LogManager->error(\'There is no exi...\', Array)#9 /srv/app/Exceptions/Handler.php(37): Illuminate\\\\Foundation\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#10 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\\\Exceptions\\\\Handler->report(Object(UnexpectedValueException))#11 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\\\Foundation\\\\Http\\\\Kernel->reportException(Object(UnexpectedValueException))#12 /srv/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->handle(Object(Illuminate\\\\Http\\\\Request))#13 {main}"} '))
in Logger.php line 323
at Logger->addRecord(400, 'There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', array('exception' => object(UnexpectedValueException)))
in Logger.php line 538
at Logger->error('There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', array('exception' => object(UnexpectedValueException)))
in Logger.php line 176
at Logger->writeLog('error', 'There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', array('exception' => object(UnexpectedValueException)))
in Logger.php line 87
at Logger->error('There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', array('exception' => object(UnexpectedValueException)))
in LogManager.php line 539
at LogManager->error('There is no existing directory at "/workspace/storage/logs" and its not buildable: Read-only file system', array('exception' => object(UnexpectedValueException)))
in Handler.php line 118
at Handler->report(object(UnexpectedValueException))
in Handler.php line 37
at Handler->report(object(UnexpectedValueException))
in HandleExceptions.php line 92
at HandleExceptions->handleException(object(UnexpectedValueException))
您的应用程序似乎正在尝试在
存储/logs
目录中写入日志
这是不允许的,因为在Google App Engine 7.2环境中,除/tmp
目录外,所有目录都是只读的。检查:
运行时包括一个可写的/tmp
目录,所有其他目录都具有只读访问权限。写入/tmp
会占用系统内存。有关详细信息,请参阅
我还发现了一个问题,建议通过以下方式解决:
尝试将其添加到环境变量下的app.yaml
:
env_variables:
# ...
LOG_CHANNEL: stderr
或者,
按照中后面的说明进行集成
堆栈驱动程序日志记录。这两种方法都可以解决您的问题
我按照设置Stackdriver日志记录和错误报告中的步骤解决了这个问题,网址是Great!我也有同样的问题。你的Laravel版本是什么?