docker安装最小化的 Typecho 和备份示例

docker安装最小化的 Typecho 和备份示例

wszx01
2025-08-23 / 0 评论 / 0 阅读

docker安装最小化的 Typecho 示例,安装前看看目录结构,如需要修改,先研究一下。
Debian 11、12系统适用,与其它方式安装不冲突

一、目录结构
/home/html/typecho/typecho1/
├── docker-compose.yml
├── Caddyfile
├── public/ (网站文件存放目录)
├── php/
│ └── Dockerfile
└── data/ (安装后数据库文件会自动生成)

二、安装前准备:
相关升级

apt update && apt upgrade -y && apt install -y curl wget unzip zip

安装好 docker compose

curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin

三、创建目录结构和需要文件
1、创建目录

sudo mkdir -p /home/html/typecho/typecho1/php/
sudo mkdir -p /home/html/typecho/typecho1/public/
sudo chown -R www-data:www-data /home/html/typecho/typecho1/public/

sudo chmod -R 755 /home/html/typecho/typecho1/public/
touch /home/html/typecho/typecho1/docker-compose.yml
touch /home/html/typecho/typecho1/Caddyfile
touch /home/html/typecho/typecho1/php/Dockerfile

2、文件修改,尽量在本地修改后上传,或用记事本打开粘贴下面的内容

a、 docker-compose.yml 文件【已测试正常】, 一定要修改数据库中的两个密码

services:
  caddy:
    image: caddy:2-alpine
    container_name: caddy_typecho1
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./public:/srv
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - php

  php:
    build: ./php
    container_name: php_typecho1
    volumes:
      - ./public:/srv
    depends_on:
      - db

  db:
    image: mariadb:10.7
    container_name: mariadb_typecho1
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass123
      MYSQL_DATABASE: typecho1
      MYSQL_USER: typecho1
      MYSQL_PASSWORD: typechopass123
    volumes:
      - ./data:/var/lib/mysql

volumes:
  caddy_data:
  caddy_config:

b、Caddyfile文件【已测试正常】
typecho1域名,域名要提前解析好,不打开小黄云

web1.example.com {
    root * /srv
    php_fastcgi php:9000
    file_server
}

c、php/Dockerfile【已测试正常】

FROM php:8.1-fpm

RUN docker-php-ext-install pdo pdo_mysql mysqli
WORKDIR /srv

d、下载官方 Typecho 或上传后解压【已测试正常】

cd /home/html/typecho/typecho1/public/

wget https://github.com/typecho/typecho/releases/download/v1.2.1/typecho.zip
unzip typecho.zip
rm typecho.zip

四、以上步骤完成后启动

cd /home/html/typecho/typecho1/
docker-compose up -d

五、打开网站安装,安装时如会出现 uploads 权限问题,给予权限,其它小问题按提示解决或刷新网页重新安装

数据库地址: db 或用默认
数据库名: typecho1
用户名: typecho1
密码: typechopass123

⚡ 如果你要再装第二个 Typecho,只需要复制一份 /home/html/typecho/typecho1/ 为 /home/html/typecho/typecho2/,然后在 docker-compose.yml 里修改:

容器名(caddy_typecho2、php_typecho2、mariadb_typecho2)
数据库名(typecho2)
端口映射(比如 8080:80)
以此类推

六、🚀 迁移步骤(最简洁)

  1. 旧 VPS 打包,打包整个项目目录,包括数据库。

    cd /home/html/typecho/
    tar -czvf typecho1_backup.tar.gz typecho1
  2. 把备份传输到新 VPS或手动下载后再上传到新vps上

    scp /home/html/typecho/typecho1_backup.tar.gz root@新VPS:/root/
  3. 新 VPS 解压 & 启动

    cd /home/html/typecho/
    mkdir -p /home/html/typecho/
    mv /root/typecho1_backup.tar.gz /home/html/typecho/
    tar -xzvf typecho1_backup.tar.gz

进入目录并启动:

cd /home/html/typecho/typecho1
docker-compose up -d
  1. 修改域名解析
    把域名 A 记录指向新 VPS IP,等 Caddy 自动申请 SSL 证书就可以访问了

七、Typecho 本身对域名是 支持更换的
1、改成新的域名:
Caddy 配置

new.example.com {
    root * /srv
    php_fastcgi php:9000
    file_server
}

重启:

docker-compose down
docker-compose up -d
  1. Typecho 配置
    Typecho 的域名配置存在数据库里(options 表的 siteUrl 字段)。
    你需要进入数据库修改一下:

方法 A:进容器改

docker exec -it mariadb_typecho1 mysql -u typecho1 -p typechopass123DDD typecho1

进入数据库后执行:

UPDATE typecho_options SET value='https://new.example.com/' WHERE name='siteUrl';

方法 B:后台改
如果你还能登录 Typecho 后台:
控制台 → 设置 → 基本 → 站点地址,直接改成新域名即可。

方法 C:备份好数据,全新安装后恢复,最简单

  1. 内容里的绝对链接

✅ 总结

这种方式安装,数据库数据 已经在 data/ 挂载目录里,所以无需单独 mysqldump 导出导入。

整个 typecho1 项目文件夹就是完整环境,直接打包迁移即可。

在新 VPS 上只需要 docker-compose up -d,就能恢复完整博客。

0

评论 (0)

取消