从零开始docker一键部署WordPress

ShowUNow 发布于 2024-11-10 345 次阅读


写在前面

使用docker安装非常WordPress是一件非常方便的事情。

建议使用非中国大陆境内的服务器,对于小白来说使用docker更方便。

服务器建议安装Debian11,系统占用小,兼容性也更好。

如果是一台”崭新出产“的服务器,先更新下服务器系统环境

apt update -y && apt install -y curl socat wget sudo

安装docker

1.更新软件包环境

sudo apt update

2.安装docker

sudo apt install -y docker.io

3.启动 Docker 并设置开机自启动

sudo systemctl start docker
sudo systemctl enable docker

4.安装 Docker Compose

sudo apt install -y docker-compose

5.创建docker-compose.yaml文件

创建文件

sudo nano docker-compose.yaml

编写docker-compose.yaml文件

version: '3.1'

services:

  wordpress:
    build: .
    # image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - /var/www/html/wordpress:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini  # 挂载自定义配置文件

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

ctrl+o+回车保存再按ctrl+x退出

代码解释

代码1

volumes:
- /var/www/html/wordpress:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # 挂载自定义配置文件

  1. - /var/www/html/wordpress:/var/www/html的含义是:我们将docker容器中/var/www/html/wordpress的内容挂载到了宿主机的/var/www/html目录下,目的是为了方便我们以后对wordpress的文件内容进行修改而不必每次再进入容器中修改
  2. - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 这段代码的作用是创建一个uploads.ini的文件用于配置wordpress。因为wordpress默认上传文件大小非常的小,好像只有2M,这样别说安装主题了,就算是上传大点的媒体资料都不行。所以我们需要这个文件来更改一下wordpress上传文件大小的限制
创建并编辑uploads.ini文件(放于和docker-compose.yaml同一目录下)
nano uploads.ini

在文件中添加以下内容

upload_max_filesize = 64M                                                                                                 post_max_size = 64M

设置上传文件最大大小为64M,也可以根据自己的需求修改。保存并退出。

代码2

ports:
- 8080:80

意思为将wordpress部署在你服务器的8080端口,你需要确保主机的8080端口没有被占用。

6.启动容器

docker-compose.yml文件所在的目录下,使用以下命令启动容器:

docker-compose up -d

可以看到docker容器会自动拉取WordPress的相关配置文件,非常方便。

7.Nginx Proxy Manager 配置

你也可以选择安装原生的nginx,这样的系统占用更低,更轻量,但同时也需要更多的专业知识。也可以选择安装宝塔面板,不过我个人并不喜欢宝塔面板。所以这里先只介绍Nginx Proxy Manager的配置,对于新手来说非常友好。

1.一键安装Nginx Proxy Manager

docker run -d \
  --name=npm \
  -p 80:80 \
  -p 81:81 \
  -p 443:443 \
  -v /home/npm/data:/data \
  -v /home/npm/letsencrypt:/etc/letsencrypt \
  --restart=always \
  jc21/nginx-proxy-manager:latest

代码解释

-v /home/npm/data:/data \
-v /home/npm/letsencrypt:/etc/letsencrypt \

意思是分别将容器中的/data/etc/letsencrypt目录挂载到宿主机的/home/npm/data/home/npm/letsencrypt目录下。

2.安装成功后进入NGINX后台面板

服务器IP加81端口访问网页

初始用户:admin@example.com

初始密码:changeme

登入后需要先修改登录用户名和密码!

点击Proxy Hosts,再点击屏幕有上角的Add Proxy Host,在Domain Names中填写你解析到你服务器上用于访问博客的域名。Forward Hostname / IP填写你主机的ip地址,Forward Port填写8080。

上方SSL选项卡中SSL Certificate选择Request a new SSL Certificate

勾选Force SSL(推荐),其他的想选就选。同意协议,然后点Save。之后就会自动申请证书并配置。

之后应该就可以通过你的https://域名正常访问你的WordPress站点了!

临时起意搭建的博客,不知道能坚持下去多久。
最后更新于 2024-11-12