Owncloud 似乎忽略了 config.php 中的 dbtype使用 docker

问题描述

我是 Owncloud 的新手,想在我的 Owncloud 上部署容器化版本的 NAS (QNAP) 作为 DropBox 的私有替代方案。 我可以使用认的 Owncloud 数据库运行 sqlite 的 docker 容器而没有任何问题:我访问 GUI、创建管理员用户、浏览文件结构等。 但是我想切换到 MysqL 并且到目前为止我无法做到,因为 Owncloud “似乎”忽略了 config.PHP 中的设置。

我在一个单独的容器中创建了一个 MysqL 实例 (MariaDB) 并向它添加一个空的 owncloud-reserved database:我验证了从 Owncloud 容器我可以通过命令行成功登录MysqL 的使用适当的凭据,因此可以访问数据库

按照我在网上找到的一些说明,我编辑了文件 config.PHP 并将变量 $CONfig 中的字段“installed”从“true”更改为“false”:这会在登录时触发数据库配置向导。 在向导中,我选择“MysqL”并等待安装过程完成。 完成后,我检查了:

  1. Owncloud 表已在 MariaDB 数据库中创建(运行向导前该数据库为空)

  2. config.PHP 文件已被修改,现在我可以看到所有 MysqL db 设置,特别是: 'dbtype' => 'MysqL', (在sqlite设置之前显示文件

显然巫师做了他的事。

尽管如此,如果我转到管理员用户的“设置”页面,在“常规”下仍会看到红色警告:“sqlite 用作数据库...等”。 为了测试,我添加一个新用户,确实数据仍然存储在 sqlite 文件中,而不是 MysqL

所以我的结论是 Owncloud 在我的设置中忽略了 config.PHP

我尝试无济于事的事情:

多次重新创建 Owncloud 容器 数据库更改后重启容器 根据 sqlite 官方文档

运行建议的 MysqLowncloud 迁移脚本

我错过了什么? 提前致谢 问候 塞尔吉奥

解决方法

问题解决了。 将具有适当值的以下变量添加到容器的环境中即可:

OWNCLOUD_DB_TYPE=mysql
OWNCLOUD_DB_HOST=name or ip of the host (container) where the db is running
OWNCLOUD_DB_NAME=name of the database
OWNCLOUD_DB_USERNAME=name of the user to authenticate with (must have full privs on the db)
OWNCLOUD_DB_PASSWORD=its password

谢谢

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...