最近几天研究把博客从Typecho迁移到Wordpress,数据全部完成了迁移,也实现了Obsidian发布到Wordpress的Python脚本(对标此前实现的Typecho版本)。回头看,Wordpress唯一增量价值是Newsletter相关插件,但找了一圈,所有插件都是商业化的,做的过于臃肿,我不喜欢。

Wordpress效果
Wordpress效果

所以,最后决定暂不迁移,但把关键过程记录下来,以备未来可能迁移之用。Typecho已经使用6年了,也不知还能再用几年。

数据迁移

首先,使用ByeTyp插件,将Typecho博客数据导出为Wordpress格式的文件。

然后,到Wordpress后台导入数据。导入过程我遇到了两类问题:

  1. Wordpress后台显示只能上传2M以内的文件,但我从Typecho导出的数据有11M之多。
  2. 搞定体积大小问题后,上传时经常上传一半后白屏,到Wordpress后台查看,文章数据不完整。

这两个问题都跟服务器配置有关:

  1. 文件大小限制是由php.ini有若干参数控制的
  2. 上传未完成即终止是因为php.ininginx中有若干参数控制程序执行时间导致的

以下是需要修改的配置:

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_timeoutfastcgi_send_timeout时间设置,单位为秒,比如设置为300秒。

server {
    ……
    location ~ {
        ……
        fastcgi_read_timeout 300;
        fastcgi_send_timeout 300;
        ……
    }
    ……
}    

修改后需要重启php8.x-fpmnginx

php.ini文件在哪里?

以下有个简单的方法确认php.ini在什么位置,以及确认php.ini中修改的参数是否生效。

创建一个页面模板,在模板中引入<?php phpinfo() ?>,再基于该模板新建一个页面,打开该页面。能看到php.ini中所有的参数。

其中Loaded Configuration File参数值即为php.ini在服务器的实际存储位置。

分类: 折腾 标签: none

添加新评论