无法将 OctoberCMS 部署到 Google App Engine (Flex)

Cannot deploy OctoberCMS to Google App Engine (Flex)

我在尝试将我的 OctoberCMS+sqlite(基于 Laravel 5.5)部署到 google 应用引擎时遇到以下问题,这是我的部署错误:

...
Step #1:   - Installing october/backend (v1.0.436): Downloading (100%)
Step #1:   - Installing october/cms (v1.0.436): Downloading (100%)
Step #1:   - Installing october/system (v1.0.436): Downloading (100%)
Step #1: Generating optimized autoload files
...
Step #1: > php artisan cache:clear
Step #1: Cache cleared successfully.
Step #1: > php artisan cache:clear
Step #1: 
Step #1: In Connection.php line 664:
Step #1:                                                                                
Step #1:   could not find driver (SQL: select * from "system_settings" where "item" =   
Step #1:   vojtasvoboda_errorlogger_settings limit 1)                                   
Step #1:                                                                                
Step #1: 
Step #1: In PDOConnection.php line 47:
Step #1:                          
Step #1:   could not find driver  
Step #1:                          
Step #1: 
Step #1: In PDOConnection.php line 43:
Step #1:                          
Step #1:   could not find driver  
Step #1:                          
Step #1: 
Step #1: Script php artisan cache:clear handling the post-install-cmd event returned with error code 1
Step #1: The command '/bin/sh -c /build-scripts/composer.sh' returned a non-zero code: 1
Finished Step #1
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/docker@sha256:5836cd0f940f2f1a912b8fee4c74e5f1a84df92aab557c608a94e171e9df8d46" failed: exit status 1
Step #1: 
------------------------------------------------------------------------------------------------------------------------------------------------------

ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/gcr/builds/23c79228-9500-4c42-8bea-9b8076e30c42?project=1055473064866 Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details

这是我的app.yaml

runtime: php
env: flex

runtime_config:
  document_root: .

# Ensure we skip ".env", which is only for local development
skip_files:
  - .env
  - Dockerfile
  - docker-compose.yml

env_variables:
  # Put production environment variables here.
  APP_LOG: errorlog
  #APP_KEY: LCG9E1xG5FQDMNauR8wWW3GTyB6Tj6Nv
  STORAGE_DIR: /tmp

这是我的数据库:

...
'default' => env('DB_CONNECTION', 'sqlite'),
...

'sqlite' => [
    'driver'   => 'sqlite',
    'database' => env('DB_DATABASE', 'storage/database.sqlite'),
    'prefix'   => '',
],
    ...

我的 GAE 是 Fl​​exible env,它应该能够在那里使用 Framework 和 CMS,但不幸的是这个错误不允许我在此服务上安装这个基于 Laravel 的 CMS。

如能提供任何帮助,我们将不胜感激。 谢谢

我不确定,但错误是由于 MySQL,因为 CMS 尝试使用 mysql_pdo 驱动程序查找数据。

你能明确告诉环境我们正在使用sqlite

Try adding DB_CONNECTION = sqlite in environment

env_variables:
  # ADD EXPLICIT VALUE
  DB_CONNECTION: sqlite
  # Put production environment variables here.
  APP_LOG: errorlog
  #APP_KEY: LCG9E1xG5FQDMNauR8wWW3GTyB6Tj6Nv
  STORAGE_DIR: /tmp

if it don't works then try to add hardcoded value

'default' => env('DB_CONNECTION', 'sqlite'),

REPLACE THIS TO

'default' => 'sqlite',

请评论它是否适合您或遇到任何其他问题。

我认为GAE不支持并发文件操作,因为:

1)用C语言编写的SQLite 2) SQLite 需要本地 I/O 而 App Engine 运行 时间不会给你

此处提到:https://www.quora.com/Can-I-use-an-offline-SQLite-file-in-Google-App-Engine-for-Java, issuetracker.google.com/issues/35895573 and here Open SQLite database on Google App Engine

您收到的错误是由 SQLite 引起的,但这不是您设置中唯一会阻止您在 App 引擎柔性环境中安装 OctoberCMS 的问题。

例如,OctoberCMS 还需要能够修改文件,为此您需要配置 Docker 容器。您必须设置运行时:custom.

您最好遵循配置教程:https://webmotion.medium.com/how-to-install-octobercms-laravel-application-on-google-app-engine-c77a9185f420