一、安装Docker
参考文章:CentOS 安装 Docker
二、安装WordPress
1.拉取wordpress镜像
docker pull wordpress
2.拉取mysql镜像,以5.6版本为例
docker pull mysql:5.6 # 如果需要获取最新版本,命令为:docker pull mysql:latest
3.查看镜像是否拉取成功
docker images
4.检查mysql的3306端口是否被占用
netstat -antp | grep "3306" | grep -v "grep"
5.启动mysql
docker run -d --name wpdb -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=abc_123 mysql:5.6
# -d:docker后台运行mysql:5.6容器
# --name:为容器取名
# -e MYSQL_ROOT_PASSWORD=abc_123:为容器mysql设置root环境变量,即设置密码
# -p 3306:3306:将本机3306端口映射到容器中的3306端口,如果本机上安装有mysql且已经运行,为避免端口占用,请将第一个3306替换为其他端口。
# --restart=always:自启动
6.启动wordpress
docker run -d --name AkimBoxWeb --link wpdb:mysql -p 80:80 --restart=always wordpress
# -d:docker后台运行
# --name:为容器取名
# --link:可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量
# wpdb:mysql:上面创建mysql容器名称
# 80:80:将本机80端口映射到容器中的80端口,可自行更改访问地址,替换第一个80为其他端口即可
# wordpress:wordpress镜像名称
# --restart=always:自启动
7.查看容器是否已运行
docker ps
8.配置数据库及放开mysql的root账户为可远程
进入容器mysql
docker exec -it AkimBoxWeb mysql -u root -p
# AkimBoxWeb:创建的wordpress容器
输入mysql密码,密码为第5步创建容器时的密码
创建数据库
create database akim-box-web-db;
使用mysql数据库,修改root账户为可远程
use mysql;
设置root账户为可远程
update user set Host='%' where User='root';
# 会报错【ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'】,不予理会,继续执行下面一句sql
flush privileges;
exit;
9.进入wordpress容器
docker exec -it wordpress /bin/bash
10.升级软件包
apt upgrade
11.安装vim
apt-get install vim
# 如果报错E: Unable to locate package vim,需要先更新同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,执行命令:apt-get update,然后再执行安装vim命令
12.修改wordpress默认数据库为第8步创建的数据库
vim wp-config-docker.php
将数据库名改为akim-box-web-db
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'akim-box-web-db') );
将数据库账号修改为root
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );
将密码修改为第5步创建myql容器时设置的密码
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'abc_123') );
保存
esc + :wq
退出容器
exit
13.重启docker容器
docker restart(wordpress容器ID)
14.打开访问地址,创建数据库,有可能localhost创建不成功,把连接地址改为IP地址试试
docker inspect 容器ID | grep "IPAddress"
15.修改wordpress文件上传大小限制
1.进入wordpress容器
docker exec -it 容器id /bin/bash
2.查找php.ini文件所在配置位置(Configuration File (php.ini) Path)和加载位置(Loaded Configuration File:)一般加载位置 都是 none
php --ini
3.复制配置文件,以便php.ini配置生效
cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
4.修改刚才复制的php.ini
vim /usr/local/etc/php/php.ini
找到以下关键字,修改值
upload_max_filesize = 20M #文件大小限制
post_max_size = 20M #post大小限制
5.重启容器
docker restart 容器id
16.设置SSL,做域名解析的时候,也需要添加对应SSL域名的A记录。
1.进入wordpress容器
docker exec -it 容器id /bin/bash
2.编辑wp-config.php文件(该文件在初始化数据库连接完成后自动生成,也就是wordpress首次运行配置语言、数据库连接完成后生成),新增如下内容:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
3.重启容器
docker restart 容器id
4.Nginx配置参考
server {
listen 80;
server_name www.xxx.com xxx.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.xxx.com xxx.com;
ssl_certificate ../cert/web-server.pem;
ssl_certificate_key ../cert/web-server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log logs/host.access.log main;
#
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}
}
文章评论