普通视图

typecho博客从宝塔面板搬到1panel面板踩的那些坑

2025年12月9日 10:57

typecho博客从宝塔面板搬到1panel面板踩的那些坑 - 第1张图片

老张博客搬家至酷鸭数据香港VPS》时,还算是比较顺利。想着既然老张博客已经搬到了酷鸭数据,那也把我的后花园“老张随笔”也搬过来吧,说干就干。

以前用的CC家服务器,安装的是宝塔面板,手里一直还有一个1panel的永久授权版,所以这次酷鸭数据的香港VPS我使用的是1panel。如果两台服务器都是宝塔,那搬家真的是分分钟的事,直接用应该商店里的“网站迁移”就行,而现在,只能通过备份网站文件、数据库文件后再上传到新服务器的方式来进行搬家了。

网站运行环境不一致

这块还比较顺利,因为两台服务器我都使用了相同版本的MYSQL、PHP等。另外需要特别注意的就是PHP的扩展、禁用函数也必须要保持一致。

链接不上数据库

这个问题非常好解决,宝塔面板链接数据库MYSQL默认的是localhost,而1panel面板连接MYSQL地址是MYSQL的容器的名称,这点必须要修改。

登录后台遇500,Unmatched '}'报错

这个是我折腾最久的一个坑,当把老张随笔搬过来后,登录后台发现出现500报错,提示为Unmatched '}'。这个坑一直折腾了几个小时。其实在这里,我也是犯了一个非常简单的错误,就是搬家之前没有关闭所有插件。所以建议像这样的搬家,最好在搬家之前把所有的插件停掉、主题换成默认的,搬家后再一个一个启用插件,以便可以更好的测试到错误。

把所有的插件和主题停用后,后台可以正常进入,这个时候再一个一个启用插件,当排查到LoveKKCommentModify这个插件,只要启用就会提示Unmatched '}'。因为对1panel不熟悉,找到AI解决了问题。修改了LoveKKCommentModify的Plugin.php文件第343行:将 <? 改为 <?php、第589行:将 <? 改为 <?php。

其实导致这个问题的最终原因是LoveKKCommentModify插件使用了PHP短标签,宝塔面板默认是开启的,而1panel默认是关闭的。只需要到1panel的运行环境中,把PHP短标签开启即可。根本就不需要修改什么代码。

开启伪静态,登录不了后台

登录1panel后台,为typecho网站设置未静态,代码是默认的,但是出问题了。登录后台出现404错误,并提示:“找不到以下 Web 地址的网页: https://zhangbo.net/index.php/action/login?_=5ca13260eXXXXXXX53adXXXXc92a HTTP ERROR 404。

deepseek分析原因为Typecho的路径处理与当前伪静态规则不匹配。我也就想不通了,为什么官方的默认的代码就不匹配了。最后解决方法添加break指令修正规则

if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
break;
}

搬了一个家,遇到很多坑,折腾N天!要是若干年前还没有AI的时候,估计请教N位大佬也不一定能把问题解决。现在好了,AI普及,遇到问题都可以自己解决,有了AI,人人都是程序员了!!

❌