一、准备工作
1.1 安装或关闭以下服务
关闭防火墙等
1.2 本次安装环境
配置信息 | 说明 |
---|---|
服务器IP地址 | 192.168.1.10 |
系统版本 | CentOS7.4 |
内核 | ml-3.10.0 |
Docker 版本 | 20.10.21 |
nginx版本 | 1.21.5 |
mysql版本 | 5.6 |
wordpress版本 | 6.1 |
二、安装nginx
2.1 拷贝配置文件
docker run -d --name test-nginx nginx:latest #启动
mkdir -p /data/nginx/{conf,www,logs} #拷贝默认配置文件
docker cp test-nginx:/etc/nginx /data/nginx/conf/
docker cp test-nginx:/usr/share/nginx/html /data/nginx/www/
docker cp test-nginx:/var/log/nginx /data/nginx/logs/
docker stop c8f465d617ea #停止容器
docker rm c8f465d617ea #删除测试容器
2.2 安装
docker run -d --name nginx -p 8088:80 -v /data/nginx/conf/nginx/:/etc/nginx -v /data/nginx/www/html/:/usr/share/nginx/html -v /data/nginx/logs/:/var/log/nginx nginx:latest #启动
-d 后台运行
--name 容器名称
-p 指定容器暴露的端口
-v 将主机卷映射到容器
2.3 测试访问
192.168.1.10:8088测试访问
三、安装wordpress
3.1 mysql安装
docker pull mysql:5.6 #拉取mysql镜像
docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6 #运行容器
-d 后台运行
--name 容器名称
-e MySQL的root密码为123456
3.2 wordpress安装
docker pull wordpress #拉取wordpress镜像
mkdir -p /data/wordpress/www/
docker cp wordpress:/var/www/html /data/wordpress/www/
docker run -d --name wordpress --link wordpressdb:mysql -p 8080:80 -e /data/wordpress/www/:/var/www/html wordpress #运行容器
--link 挂载mysql
-p 指定容器暴露的端口
3.3 测试访问
192.168.1.10:8080测试访问(IP地址+映射端口。登陆管理后台+/wp-admin。)
四、nginx+wordpress
4.1 编辑配置文件
vim /data/nginx/conf/nginx/conf.d/default.conf #编辑nginx配置文件
server {
listen 80;
server_name blog.test.com; #指定域名
location / {
root /data/wordpress/www/html/; #指定访问目录地址
index index.php index.html index.htm; #添加index.php
}
docker restart nginx #编辑完毕后重启nginx容器
4.2 测试访问
blog.test.com:8080 #域名加端口测试访问
五、其他
5.1 mysql配置
#未配置数据库,需手动配置
docker exec -it wordpressdb /bin/bash #进入mysql容器
mysql -uroot -p #登陆数据库,设置的密码为123456
create database wordpress; #创建数据库,名称为wordpress
flush privileges; #刷新配置
exit; #退出数据库
docker restart wordpressdb #重启mysql
5.2 修改wordpress配置
docker exec -it wordpress /bin/bash #进入wordpress容器
apt-get update #软件包的数据库
apt-get install vim #安装vim
vim wp-config-docker.php #编辑配置文件
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );
/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '123456') );
/** Database hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );
docker restart wordpress #重启wordpress