无法将 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 是 Flexible 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.
我在尝试将我的 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 是 Flexible 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.