Docker安装配置WordPress

文章目录

[隐藏]

  • 安装MariaDB
  • 安装WordPress
  • 使用nginx反向代理

本站使用WordPress搭建,之前一直使用Linode $10美刀一个月的服务,机房选择在JP,但是感觉速度不行,在国内链接的响应速度基本都在200-300ms之间,前段时间发现搬瓦工的速度还可以,而且按年付费价格比Linode便宜,所以用了好一段时间来折腾网站迁移的工作。

之前在Linode,网站直接搭建在主机上,上面搭建的服务还很多,迁移非常的困难,于是在新站点服务全面使用基于Docker配置,方便以后迁移。

本站迁移中,使用了两个Docker镜像,官方的WordPress和MariaDB镜像。

安装MariaDB

下载安装最新版的MariaDB镜像

docker pull mariadb  

创建一个外部目录/docker/mariadb/var/lib/mysql来存放MariaDB数据文件

mkdir -p /docker/mariadb/var/lib/mysql/  

创建并运行MariaDB容器,把本地数据目录映射到容器中的/var/lib/mysql目录,并把3306端口映射到主机地址的3306端口,要注意使用-e MYSQL_ROOT_PASSWORD来指定MariaDB root用户初始密码

docker run --name mariadb -p 3306:3306 -v /docker/mariadb/var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXXXXXXXXX -d mariadb  

登入MariaDB容器环境

docker exec -it mariadb bash  mysql -u root -p  

创建数据库和数据库维护用户

create database wordpress character set utf8 collate utf8_general_ci;  create user wordpress_user identified by 'XXXXXXXXX';  grant all privileges on wordpress.* to wordpress_user;  flush privileges;  
安装WordPress

下载最新版的WordPress镜像安装

docker pull wordpress  

创建并运行Docker容器环境,官方的WordPress镜像是基于Ubuntu+Apache+MySQL的,镜像里面使用的是80端口,因为主机上安装了nginx,代理很多服务,所以把容器里面的80端口映射到主机的8081端口,使用–link mariadb:mysql指定使用的MySQL为已安装的MariaDB容器

docker run --name wordpress -p 8081:80 --link mariadb:mysql -d wordpress  

这时候通过浏览器打开地址ip:8081即可按照提示安装WordPress了。

使用nginx反向代理

本机上安装了nginx,配置了https给很多服务使用,所以这里也把WordPress的地址通过用nginx反向代理实现https访问。

在/etc/nginx/conf.d/目录下创建一个新的配置文件

server {      listen 80;      server_name liangxiaorui.com www.liangxiaorui.com;      return 301  https://$server_name$request_uri;  }    server {    listen       443 ssl;    server_name liangxiaorui.com www.liangxiaorui.com;    ssl_certificate /path/to/cert.pem;    ssl_certificate_key /path/to/key.pem;    keepalive_timeout 70;      error_log /var/log/nginx/liangxiaorui.com.log error;      location  / {          proxy_redirect off;          proxy_set_header Host $host;          proxy_set_header X-Forwarded-Server $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:8081;      }        error_page   500 502 503 504  /50x.html;      location = /50x.html {          root   /usr/share/nginx/html;      }    }  

这里使用proxy_pass反向代理到容器的8081端口实现https访问。这里需要注意的是,一定要加上

proxy_set_header X-Forwarded-Proto $scheme;  

因为外部nginx使用的是https,容器里面的Apache使用的是http,添加这句话就是为了识别用户实际发出的是https协议还是http协议,之前没加,导致一直出现127.0.0.1重定向错误。这也是迁移过程中遇到的一个小问题之一。

配置完成之后,就可以通过https访问站点了

Docker安装配置WordPress

原文出处:liangxiaorui -> https://liangxiaorui.com/2018/04/26/docker-install-wordpress/

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-06-06 19:37:43
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[加我微信]
chaoneo
注:点击复制微信号并打开微信APP,添加好友后进行聊天。
[电话联系]
13585372227
[电子邮件]
chaoneo@163.com
取消

选择聊天工具: