我最近一直在用wordpress&docker制作新网站,并且对它的工作原理有一个合理的把握,我现在正在寻找将一些已建立的网站迁移到docker中。
我一直遵循这个指南:
https://stephenafamo.com/blog/moving-wordpress-docker-container/
我有一切设置,因为它应该是,但当我去我的领域。com:1234 i 获取错误消息“建立数据库连接时出错”。我已经按照建议在wp-config.php中将“db host”更改为“mysql”,并且im引入的站点中的所有db细节都是正确的。
我已经连接到mysql容器,并检查了db是否存在以及是否有正确的用户,还通过mysql cli确保pw也是正确的。
selinux设置为permissive,我没有更改任何目录/文件的所有权或权限,对于后者,目录和文件都是755和644。
编辑:我应该提到,数据库/数据和下面的所有内容似乎都属于用户/组“polkitd input”,而不是root。
docker日志也没有告诉我太多,除了我在1234端口浏览站点时wp容器的500条错误消息(正如预期的那样)。
这是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
建议最受欢迎,因为我的想法!
5条答案
按热度按时间q5iwbnjs1#
请看下面的剧本。我试过试过了。很好用。
如果您遇到进一步的问题,请告诉我。
wgxvkvu92#
如果你想把所有的东西都放在一个容器里,你可以参考这里的回购协议,https://github.com/akshayshikre/lamp-alpine/tree/development
这里使用lamp alpine图片,然后安装mysql、php、apache2(lamp堆栈),并复制本地wordpress demosite和db进行演示
如果不希望任何类型的连续集成部分忽略.circleci文件夹,请检查docker compose file和dockerfile,环境变量在.env文件中
dw1jzc5e3#
在docker compose的新版本中,它将如下所示(如果您不想使用phpmyadmin,可以省略它):
数据库卷是一个命名卷wp data,而wordpress html是一个绑定装载到当前目录的文件。
hyrbngr74#
如果你遵循这些教程,https://stephenafamo.com/blog/moving-wordpress-docker-container/,您的网站将无法正常工作。因为它不还原数据库,您需要使用此命令手动还原initdb.d dir中存在的.sql转储文件。
我也困在这个和我的css工作不正常。当你有新想法时请告诉我。
ghhaqwfi5#
我和你分享我的方法
显示运行版本,问题,看看是否一切都好在你这边!
运行docker copose文件
等你快进
显示正在运行的容器和正在端口8000上侦听的wordpress容器的名称
如果您遵循了网站上列出的步骤,您将在表中看到wordpress容器的名称,如下所示https://hub.docker.com/_/wordpress
如果您在浏览器中查看地址:localhost:8000 you 将得到消息“建立数据库连接时出错”
在wordpress容器中启动bash
apt更新失败,因为没有连接
打开新终端并显示当前防火墙配置
将值设置为“iptables”
确认新值
重新启动firwalld服务以应用更改
在浏览器中刷新正在运行的wordpress会话,这很好。干得好。