【发布时间】:2019-02-10 15:47:25
【问题描述】:
我最近一直在使用 Wordpress 和 Docker 创建新站点,并且对它们的工作原理有了合理的了解,我现在希望将一些已建立的站点迁移到 Docker 中。
我一直在关注本指南:
https://stephenafamo.com/blog/moving-wordpress-docker-container/
我已按应有的方式进行了所有设置,但是当我访问我的 domain.com:1234 时,我收到错误消息“建立数据库连接时出错”。我已按照建议将 wp-config.php 中的 'DB HOST' 更改为 'mysql',并且我引入的站点中的所有 DB 详细信息都是正确的。
我已附加到 mysql 容器并检查了 db 是否存在并且使用了正确的用户,并且还通过 mysql CLI 确保 pw 是正确的。
SELinux 设置为许可,我没有更改任何目录/文件所有权或权限,对于后者,目录全部为 755,文件应为 644。
编辑:我应该提到数据库/数据及其下的所有内容似乎由用户/组“polkitd 输入”而不是 root 拥有。
当我在端口 1234 上浏览网站时(如预期的那样),除了 WP 容器的 500 条错误消息之外,Docker 日志并没有真正告诉我太多信息。
这是 docker-compose 文件:
version: '2'
services:
example_db:
image: mysql:latest
container_name: example_db
volumes:
- ./database/data:/var/lib/mysql
- ./database/initdb.d:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: password123 # any random string will do
MYSQL_DATABASE: mydomin_db # the name of your mysql database
MYSQL_USER: my domain_me # the name of the database user
MYSQL_PASSWORD: password123 # the password of the mysql user
example:
depends_on:
- example_db
image: wordpress:php7.1 # we're using the image with php7.1
container_name: example
ports:
- "1234:80"
restart: always
links:
- example_db:mysql
volumes:
- ./src:/var/www/html
欢迎提出建议,因为我没有想法!
【问题讨论】:
-
我认为你也需要在 WP 容器中传递这些东西 WORDPRESS_DB_HOST: example_db:3306 WORDPRESS_DB_USER: ${WORDPRESS_DB_USER} WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME} 我以前也遇到过类似的问题。
-
刚刚尝试过,不幸的是它没有工作。编辑:还是我需要将数据库变量 MYSQL_DATABASE 更改为 WORDPRESS 或反之亦然?
-
所以我在环境下为 WP 容器尝试了类似的方法:通过传递类似 WORDPRESS_DB_NAME: my domain_db 但它仍然是同样的问题并尝试使用类似 WORDPRESS_DB_NAME: ${MYSQL_DATABASE} 的东西抛出了关于变量不存在,所以将它们设置为空字符串,所以我猜不是这样。
标签: mysql wordpress docker docker-compose