恢复原有wordpress推荐使用宝塔面板,本文介绍配置新的wordpress站点。
# 更新yum
yum update -y
# 安装Docker
yum install docker -y
# 安装完成后进行查看
yum list | grep docker
# 验证安装(查看版本号)
docker -v
# 修改镜像源
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com"]}
# 启动Docker
systemctl start docker.service
# 设置开机启动
systemctl enable docker
# systemctl start docker
# systemctl restart docker
# systemctl stop docker
# systemctl status docker
# 为Docker创建普通用户,避免使用root
# groupadd dockeruseradd -g docker docker
1.从github下载docker-compose二进制文件安装
# 需要安装到/usr/local/bin/目录
curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 网络太慢可以用daocloud
# curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -v
默认网络不支持指派固定IP,使用固定IP则需要自定义网络。
docker pull wordpress:latest
docker pull mysql:5.7
docker run -d --privileged=true --name mysql_57 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.7
# 运行WP
docker run -d --name wp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=wp -p 8000:80 --link mysql_57:mysql wordpress
# 开启端口
firewall-cmd --zone=public --add-port=8000/tcp --permanentfirewall-cmd --reload
# 在线安装
http://127.0.0.1:8000
注意8888是宝塔面板的默认端口
mysql参考配置 : https://hub.docker.com/_/mysql
version: '3'
networks:
wp-net:
services:
mysql:
image: "mysql:5.7"
privileged: true
container_name: "wp_mysql_5.7"
restart: always
networks:
- wp-net
ports:
- "23306:3306"
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: "wordpress"
MYSQL_USER: "wp_user"
MYSQL_PASSWORD: "123456"
TZ: Asia/Shanghai
command:
--wait_timeout=28800
--interactive_timeout=28800
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- "./mysql-5.7/data:/var/lib/mysql"
- "./mysql-5.7/config/my.cnf:/etc/mysql/my.cnf"
wordpress:
image: wordpress:latest
container_name: wp
depends_on:
- mysql
ports:
- 8000:80
networks:
- wp-net
restart: always
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: 123456
volumes:
- ./html:/var/www/html
安装完毕之后,需要配置一下防火墙。
# 开放8000端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
# 配置立即生效
firewall-cmd --reload
在WordPress 根目录下的wp-config.php 文件大概79行下有下面一段代码:
define( 'WP_DEBUG', false );
# 删除未被使用的网络
docker network prune
docker logs 92143034fa98
wordpress运行之后,一直提示:Error establishing a database connection
查看日志:docker logs wp_mysql
# 修改配置文件:wp-config.php
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'wp_user' );
/** MySQL database password */
define( 'DB_PASSWORD', '123456' );
/** MySQL hostname */
define( 'DB_HOST', '172.25.28.20' );
# 启动
docker-compose up -d
# 查看wordpress的IP
docker ps
docker inspect 92143034fa98
# 在mysql的my.cnf设置白名单(可能localhost不识别,-p也要加上)
# 配置权限wp的wp_user用户的172.25.0.3访问mysql
mysql -h127.0.0.1 -uroot -P23306 -p
mysql -h127.0.0.1 -uwp_user -P23306 -p
> use mysql;
> select Host,User from user;
grant all on *.* to 'root'@'%' identified by '123456' with grant option;
grant all on *.* to 'wp_user'@'%' identified by '123456' with grant option;
# 删除白名单用户的权限
# DELETE FROM user WHERE User='username' and Host='ip';
FLUSH PRIVILEGES;