Loading... 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 ``` 4. 修改域名解析 把域名 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 ``` 2. 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:备份好数据,全新安装后恢复,最简单 3. 内容里的绝对链接 ✅ 总结 这种方式安装,数据库数据 已经在 data/ 挂载目录里,所以无需单独 mysqldump 导出导入。 整个 typecho1 项目文件夹就是完整环境,直接打包迁移即可。 在新 VPS 上只需要 docker-compose up -d,就能恢复完整博客。 最后修改:2025 年 08 月 23 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏