docker部署wordpress多站点

步骤一:创建本地目录文件并赋权限:

mkdir -p /data/wp/{mysql,backup/db,backup/files,logs/nginx,logs/mysql}
mkdir -p /data/wp/site{1,2,3}/wp-content
mkdir -p wp-stack/nginx/conf.d
chmod -R 755 /data/wp

 

步骤二:在wp-stack中执行docker-compose up -d

 

version: "3.7"

services:
  db:
    image: mariadb:10.11
    container_name: wp_db
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    environment:
      MARIADB_ROOT_PASSWORD: "StrongRootPass"
      TZ: "Asia/Shanghai"
    volumes:
      - /data/wp/mysql:/var/lib/mysql
    security_opt:
      - seccomp=unconfined
    restart: unless-stopped
    networks:
      - wpnet


  wp1:
    ports:
     - "8081:80"
    image: wordpress:php8.2-apache
    container_name: wp1
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wp1db
      WORDPRESS_DB_USER: wp1user
      WORDPRESS_DB_PASSWORD: "wp1StrongPass"
      TZ: "Asia/Shanghai"
    volumes:
      - /data/wp/site1/wp-content:/var/www/html/wp-content
    networks:
      - wpnet
    depends_on:
      - db
    restart: unless-stopped

  wp2:
    ports:
      - "8082:80"
    image: wordpress:php8.2-apache
    container_name: wp2
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wp2db
      WORDPRESS_DB_USER: wp2user
      WORDPRESS_DB_PASSWORD: "wp2StrongPass"
      TZ: "Asia/Shanghai"
    volumes:
      - /data/wp/site2/wp-content:/var/www/html/wp-content
    networks:
      - wpnet
    depends_on:
      - db
    restart: unless-stopped

  wp3:
    ports:
      - "8083:80"
    image: wordpress:php8.2-apache
    container_name: wp3
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wp3db
      WORDPRESS_DB_USER: wp3user
      WORDPRESS_DB_PASSWORD: "wp3StrongPass"
      TZ: "Asia/Shanghai"
    volumes:
      - /data/wp/site3/wp-content:/var/www/html/wp-content
    networks:
      - wpnet
    depends_on:
      - db
    restart: unless-stopped


networks:
  wpnet:

 

步骤三:创建数据库:

 

docker exec -i wp_db mysql -uroot -pStrongRootPass <<EOF
CREATE DATABASE wp1db DEFAULT CHARSET utf8mb4;
CREATE DATABASE wp2db DEFAULT CHARSET utf8mb4;
CREATE DATABASE wp3db DEFAULT CHARSET utf8mb4;

CREATE USER 'wp1user'@'%' IDENTIFIED BY 'wp1StrongPass';
CREATE USER 'wp2user'@'%' IDENTIFIED BY 'wp2StrongPass';
CREATE USER 'wp3user'@'%' IDENTIFIED BY 'wp3StrongPass';

GRANT ALL PRIVILEGES ON wp1db.* TO 'wp1user'@'%';
GRANT ALL PRIVILEGES ON wp2db.* TO 'wp2user'@'%';
GRANT ALL PRIVILEGES ON wp3db.* TO 'wp3user'@'%';

FLUSH PRIVILEGES;
EOF

最后:输入IP(或域名)加端口即可安装wordpress。

其他:备份:

&lt;/pre&gt;
#!/bin/bash
BACKUP_DIR="/data/wp/backup/db"
DATE=$(date +%F)

docker exec wp_db mysqldump -uroot -pStrongRootPass \
--single-transaction --routines --triggers --events \
--all-databases \
&gt; $BACKUP_DIR/wp_db_$DATE.sql

find $BACKUP_DIR -type f -mtime +7 -delete
chmod +x /usr/local/bin/wp_db_backup.sh
crontab -e
# 加入  每天凌晨3点备份
0 3 * * * /usr/local/bin/wp_db_backup.sh
10 3 * * * /usr/local/bin/wp_files_backup.sh</pre>
&nbsp;
<pre>