博客从Typecho迁移到Wordpress
最近几天研究把博客从Typecho迁移到Wordpress,数据全部完成了迁移,也实现了Obsidian发布到Wordpress的Python脚本(对标此前实现的Typecho版本)。回头看,Wordpress唯一增量价值是Newsletter相关插件,但找了一圈,所有插件都是商业化的,做的过于臃肿,我不喜欢。
所以,最后决定暂不迁移,但把关键过程记录下来,以备未来可能迁移之用。Typecho已经使用6年了,也不知还能再用几年。
数据迁移
首先,使用ByeTyp插件,将Typecho博客数据导出为Wordpress格式的文件。
然后,到Wordpress后台导入数据。导入过程我遇到了两类问题:
- Wordpress后台显示只能上传2M以内的文件,但我从Typecho导出的数据有11M之多。
- 搞定体积大小问题后,上传时经常上传一半后白屏,到Wordpress后台查看,文章数据不完整。
这两个问题都跟服务器配置有关:
- 文件大小限制是由
php.ini
有若干参数控制的 - 上传未完成即终止是因为
php.ini
和nginx
中有若干参数控制程序执行时间导致的
以下是需要修改的配置:
php.ini
找到如下参数上调参数值:
; 将下面这两个参数调整到超过你的导入文件大小,其中post_max_size > upload_max_filesize
post_max_size = 30M
upload_max_filesize = 20M
; 将下面这个执行时间调整到足够大,单位是秒,比如300秒(5分钟)
max_execution_time = 300
max_input_time = 300
nginx
的配置,在location ~
模板中,增加fastcgi_read_timeout
和fastcgi_send_timeout
时间设置,单位为秒,比如设置为300秒。
server {
……
location ~ {
……
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
……
}
……
}
修改后需要重启php8.x-fpm
和nginx
。
php.ini
文件在哪里?
以下有个简单的方法确认php.ini
在什么位置,以及确认php.ini
中修改的参数是否生效。
创建一个页面模板,在模板中引入<?php phpinfo() ?>
,再基于该模板新建一个页面,打开该页面。能看到php.ini
中所有的参数。
其中Loaded Configuration File
参数值即为php.ini
在服务器的实际存储位置。