使用 Docker 安装 WordPress

建立数据目录

mkdir -p /var/mysql
mkdir -p /var/wordpress

安装MySQL

使用下面的命令启动MySQL。

docker run --name mysql \
    --restart=always \
    -e MYSQL_ROOT_PASSWORD=yourpassword \
    -v /var/mysql:/data \
    -d mysql

--name 参数指定要启动的实例名称,MYSQL_ROOT_PASSWORD指定ROOT密码。-v 参数挂载 /var/mysql 目录到容器作为共享位置。

安装 WordPress

配置为直接外网访问

如果不想配置为直接访问,请略过本节。

docker run --name wordpress \
    --restart=always \
    --link mysql:mysql \
    -v /var/wordpress:/var/www/html/wp-content/ \
    -p 80:80 \
    -d wordpress

使用 Nginx 做反向代理、多站点配置

如果已经运行了直接向外网服务的 wordpress 容器,先删除:

docker stop wordpress
docker rm wordpress

改用下面的命令启动容器:

docker run --name wordpress \
    --restart=always \
    --link mysql:mysql \
    -v /var/wordpress:/var/www/html/wp-content/ \
    -p 127.0.0.1:81:80 \
    -d wordpress

然后在 ngnix 配置目录中添加 jebbs.co.conf:

vim /etc/nginx/conf.d/jebbs.co.conf

输入以下内容

{
    listen 80;
    server_name jebbs.co www.jebbs.co;
    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; # HTTPS 反向代理 wordpress 所必需的
        proxy_pass http://127.0.0.1:81;
    }
    access_log /var/log/jebbs.co_access.log;
}

--name 参数指定要启动的WordPress实例名称,--link 参数指定要使用的 Docker MySQL 实例名称,-p 参数将 Docker 内部的80端口映射到本地的端口上。-v 参数指定挂载的目录。

对挂载的目录设置权限。

设置权限以避免更新插件等操作需要通过 FTP。

## 一句命令搞定
docker exec wordpress chown -R www-data:www-data /var/www/html

## 或者进入交互终端再操作
docker exec -i -t wordpress bash
chown -R www-data:www-data /var/www/html
exit

访问服务器的IP或域名,在界面上完成基本配置,就可以开启 WordPress 之旅了。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注