老耿的折腾日记 - 运维建站
type: channel
link: https://mrgeng.com/category/website/
items: WordPress转到Typecho的折腾过程

WordPress转到Typecho的折腾过程
type: item
date: 2025-03-15T16:49:00+00:00
description: 前言从WordPress转到Typecho已经几天了，终于算是把全站的布局，数据都调整好了。来整理一下整个过程吧，还是有不少坑的。为什么想转到Typecho呢，首先我自己也知道WordPress太臃肿了，其次，我一直没找到适合我的主题。偶然看到Hexo和Typecho的博客，那么简约，那么纯粹，一下就被击中了。其实我已经习惯了WordPress了，每次也就是进后台写写技术类的文章，然后再复制到公众号上发布。前些年还喜欢去找一下主题，自己手动修改一下，但WordPress的主题是真的难找，不是因为少，是因为太多了，而且大多都是花里胡哨，乱七八糟的。后来工作越来越忙，就索性从WordPress后台主题市场直接找了一款装上了，说白了，就是摆烂了。看到Handsome和Cuteen主题的博客时，竟让我又燃起了写博客的欲望。也有可能是因为这两个主题我最终决定开始转Typecho。准备工作先把WordPress整个站打包备份一下，然后单独将数据库备份出来。sql文件或sql.tar.zip之类的。搭建Typecho环境我是使用docker，我也推荐你们使用docker，Typecho的作者在DockerHub上有一直在更新他的镜像。搜索joyqi/typecho，你会看到有很tag，这里有第一坑，如果你后面要使用Handsome或Cuteen主题，还有一些其他的插件，就不要拉最新版本的镜像没，也就是不要使用1.3，找1.2.1的镜像来使用就可以了。我一开始就是拉取的nightly-php8.2-apache，不用说，这种最新的镜像妥妥的是1.3，一切都弄好了的时候我去部署Handsome主题，发现只要一启用，就一片空白了。按照说明文档里挨个排查了一遍，最后作者才问我Typecho是什么版本，我说1.3，他说还不兼容，咳，那我强烈建议你问题处理文档里把这一条加在最前面。我用的是1.2.1-php7.4-apache这个镜像，也推荐你们使用，下面是我的docker-compose.yml内容，你们可以参考。我在里面添加了phpMyAdmin的容器，因为后面要操作mysql进行数据导入，使用phpMyAdmin方便一点。services: typecho: image: joyqi/typecho:1.2.1-php7.4-apache restart: always ports: - 8585:80 #端口映射，把博客默认的80端口映射到8086端口 environment: TYPECHO_DB_HOST: typecho_db #默认值是localhost，docker部署时可以用服务名充当主机名 TYPECHO_DB_USER: leon TYPECHO_DB_PASSWORD: Plant@2025 TYPECHO_DB_DATABASE: typecho #所用的database volumes: - /etc/docker/typecho/data:/app/usr # /app/usr是typecho数据文件 depends_on: - typecho_db networks: - mynet phpmyadmin: image: phpmyadmin/phpmyadmin restart: always ports: - 8586:80 environment: PMA_HOST: typecho_db PMA_PORT: 3306 volumes: - ./zzz_custom.ini:/usr/local/etc/php/conf.d/zzz_custom.ini depends_on: - typecho_db networks: - mynet typecho_db: image: mysql:5.7 restart: always command: --default-authentication-plugin=mysql_native_password environment: MYSQL_DATABASE: typecho MYSQL_USER: leon MYSQL_PASSWORD: Plant@2025 MYSQL_ROOT_PASSWORD: Intergraph@2025 volumes: - /etc/docker/typecho/mysql:/var/lib/mysql # mysql数据库文件映射 networks: - mynet networks: mynet:这里面的三个容器是内联，只有typecho向外暴露了端口，phpMyAdmin也是临时暴露一下，后面为了安全还是会关掉，或者在反代软件里关了这个端口的反代也可以。这里记住你的rootpassword，后面进phpMyAdmin里操作数据…