782 字
4 分钟
wordpress和typecho和halo三种博客部署教程
2025-01-06

使用Docker部署#

Docker-compose部署wordpress#

创建项目文件夹

mkdir wordpress && cd wordpress

创建docker-compose.yml文件并写入以下代码配置:

services:
  db:
    image: mysql:8.0
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpressyyds
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wp

  wordpress:
    container_name: wordpress
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./data/wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    networks:
      - wp

networks:
  wp:

运行:

docker compose up -d

站点端口为 8000 后台路径 /wp-admin


修改docker中wordpress的上传限制。#

进入 wordpress 容器

docker exec -it wordpress /bin/bash

wordpress 容器中的这个路径/usr/local/etc/php/,是存放 php.ini 的地方,但是默认是没有 php.ini 这个文件的,所以我们要通过复制一份php.ini-production文件,来生成 php.ini 文件。

cd /usr/local/etc/php/
cp php.ini-production php.ini

然后使用vim编辑器修改即可,如果没有则需要安装一下

更新及安装vim,使用如下代码

apt-get update
apt-get install vim

安装完成vim,现在就可以对php.ini进行编辑了。

vim php.ini

找到这几个变量,根据自己需求修改。

upload_max_filesize = 2M      # PHP最大上传文件大小
post_max_size = 8M            # 服务器最大数据量和文件大小
memory_limit = 128M           # PHP内存占用限制

最后一步!

重启wordpress

docker restart wordpress


wordpress启用redis缓存的部署方法#

services:
  db:
    image: mysql:8.0
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpressyyds
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wp

  wordpress:
    container_name: wordpress
    depends_on:
      - db
      - redis  # 添加redis
    image: wordpress:latest
    volumes:
      - ./data/wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_REDIS_HOST: redis
    networks:
      - wp

  redis:
    image: redis:alpine
    container_name: redis
    restart: always
    networks:
      - wp

networks:
  wp:
  • wp-config.php文件中添加以下代码
define('WP_REDIS_HOST', 'redis');
define('WP_CACHE', true);

// 确保添加在这个代码前面
/* That's all, stop editing! Happy blogging. */
  • 容器内安装redis扩展
docker exec -it wordpress /bin/bash
apt-get update && apt-get install -y libz-dev libssl-dev

pecl install redis           # 这里直接一路回车

docker-php-ext-enable redis
  • 重启容器
docker restart wordpress
  • 插件商城搜索安装redis官方插件:Redis Object Cache 并启用redis缓存

  • 修改后台路径插件WPS Hide Login
  • 备份插件WPvivid
  • 直播播放器插件SRS Player
  • 优化性能缓存插件WP Fastest Cache
  • 压缩图片和懒加载插件Smush

Docker部署halo博客#

docker run -it -d --name halo -p 8090:8090 -v ./halo2:/root/.halo2 halohub/halo:2

地址: IP:8090

后台路径:/console


国内阿里云镜像

registry.fit2cloud.com/halo/halo

docker-compose.yaml部署#

services:
  halo:
    image: halohub/halo:2
    restart: always
    depends_on:
      - mysql
    ports:
      - "8090:8090"
    volumes:
      - ./halo2:/root/.halo2
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://mysql:3306/halo
      - --spring.r2dbc.username=halo
      - --spring.r2dbc.password=halo_password
      - --spring.sql.init.platform=mysql
      - --halo.external-url=http://公网IP:8090/

  mysql:
    image: mysql:5.7
    container_name: mysql
    environment:
      MYSQL_DATABASE: halo                  # 数据库名称
      MYSQL_USER: halo                      # 数据库用户名
      MYSQL_PASSWORD: halo_password         # 数据库密码
      MYSQL_ROOT_PASSWORD: halo_password    # 数据库root密码
    volumes:
      - ./data/mysql:/var/lib/mysql         # 映射数据库文件
    restart: always


Docker部署typecho#

services:
  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: typechoPASSWORD
      MYSQL_DATABASE: typecho
      MYSQL_USER: typecho
      MYSQL_PASSWORD: typechoPASSWORD
    volumes:
      - ./mysql-data:/var/lib/mysql

  typecho:
    image: joyqi/typecho:nightly-php8.2-apache
    restart: always
    depends_on:
      - mysql
    ports:
      - "8080:80"
    environment:
      TIMEZONE: Asia/Shanghai
      TYPECHO_SITE_URL: https://your-domain.com
      TYPECHO_DB_HOST: mysql
      TYPECHO_DB_NAME: typecho
      TYPECHO_DB_USER: typecho
      TYPECHO_DB_PASS: typechoPASSWORD
    volumes:
      - ./typecho-data:/var/www/html

https://your-domain.com替换为你的网址,提前反代好。

(可选)重置后台管理员密码:删除站点目录的config.inc.php文件,然后重新安装选择保留原有数据库即可

主题文件目录usr/themes#

安装git:

sudo apt install git

下载主题:

git clone 主题Git仓库地址

复制到主题目录:

docker cp 主题文件路径 typecho-server:/app/usr/themes

仓库地址

wordpress和typecho和halo三种博客部署教程
https://emohe.cn/posts/6/
作者
阿涛の小破站
发布于
2025-01-06
许可协议
CC BY-NC-SA 4.0