织梦CMS迁移新版服务器,兼容PHP版本问题

织梦CMS(DedeCMS)迁移到新版服务器时,最常见的拦路虎就是PHP版本不兼容。
很多老站原来跑在PHP 5.6甚至更低版本,换到新服务器后默认PHP 7.x或8.x,页面直接白屏、后台报错或功能失效。
这篇文章会从环境确认、兼容处理到验证,一步步帮你把网站恢复起来,适合刚接触服务器迁移的站长或运维新手。

先确认新服务器上的PHP版本和织梦版本

迁移前必须搞清楚两边的环境差异,否则后面都是瞎折腾。

  • 查看旧服务器PHP版本:在旧站根目录建一个 phpinfo.php,内容写 ,浏览器访问后看顶部PHP Version。
  • 查看织梦版本:登录旧站后台,右下角或“系统”->“系统信息”里会显示DedeCMS版本号,比如 V5.7 SP2。
  • 查看新服务器PHP版本:如果用的是宝塔面板,进入“网站”->对应站点->“PHP版本”就能看到;命令行可以执行 php -v

判断条件: 织梦V5.7及更早版本官方只兼容到PHP 5.6,直接上PHP 7.4以上大概率报错。
如果新服务器无法降级PHP,就需要对程序做兼容修补。

处理PHP版本不兼容的两种思路

方案一:降级PHP版本(最省事)

如果新服务器允许安装多个PHP版本,优先把站点切到PHP 5.6或7.0。
宝塔面板操作路径:软件商店 -> 安装PHP 5.6 -> 网站 -> 站点设置 -> PHP版本 -> 选择5.6 -> 保存。

注意: 部分新系统(如Ubuntu 22.04)默认软件源已移除PHP 5.6,需要手动编译或换用其他面板,建议以官方文档为准。

方案二:修补织梦程序兼容PHP 7+

无法降级时,需要修改核心文件。
操作前务必全站备份。

常见报错及修复:

  1. 后台登录提示“Deprecated: mysql_connect()”

织梦默认用 mysql_* 函数,PHP 7已移除。
需要替换为 mysqli_*
打开 include/common.inc.php,找到 $link = mysql_connect(...) 改为 $link = mysqli_connect(...),并同步修改 mysql_select_dbmysql_query 等。
更稳妥的做法是使用社区维护的兼容补丁包。

  1. 前台报错“Call to undefined function mysql_query()”

同样是因为数据库函数不兼容。
可以下载针对PHP 7的织梦补丁,覆盖 include 目录下的数据库类文件。

  1. 页面出现“preg_replace(): The /e modifier is no longer supported”

找到报错文件行,将 preg_replace/e 修饰符改为 preg_replace_callback。例如原代码:
preg_replace('/abc/e', 'strtolower("$1")', $str)
改为:
preg_replace_callback('/abc/', function($m){ return strtolower($m[1]); }, $str)

  1. 后台验证码不显示

PHP 7.4后GD库或Session配置变化,检查 php.inisession.save_path 是否有写入权限,并确保GD扩展已开启。

关键结论: 如果修改核心文件后仍有大量报错,建议直接使用织梦官方或社区发布的PHP 7兼容版本,避免陷入无休止的修补。

迁移后必须验证的四个位置

改完代码不代表万事大吉,按下面清单逐项检查:

  • 前台首页:打开网站,看是否正常显示,有无乱码或空白。
  • 后台登录:输入账号密码,看能否进入,验证码是否正常。
  • 文章发布:尝试发布一篇测试文章,看是否写入数据库并正常显示。
  • 数据库连接:在后台“系统”->“数据库备份/还原”里执行一次备份,确认数据库读写正常。

如果以上都通过,说明迁移基本成功。

容易踩坑的几个细节

  • 文件权限:新服务器上 datauploads 等目录需要Web用户可写,宝塔面板可一键设置权限为755,所有者www。
  • 伪静态规则:如果旧站用了伪静态,新服务器Nginx或Apache需要重新配置,否则内页404。
  • 缓存残留:迁移后先清空 data/cachedata/tplcache 目录,避免旧缓存导致页面错乱。
  • 编码问题:数据库导出时选择UTF-8,导入新库也保持UTF-8,否则中文会乱码。

常见疑问

问:织梦迁移后后台登录一直提示“验证码错误”怎么办?
答:检查 data/session 目录是否存在且可写,同时确认PHP的session配置正确,宝塔面板可在PHP设置里调整。

问:PHP 8.0能跑织梦吗?
答:官方版本不支持,需要大量修改,不建议生产环境使用。如果必须用PHP 8,考虑换用其他CMS或找专业兼容版本。

问:迁移后图片不显示,路径都正确?
答:检查数据库里附件路径是否还指向旧域名,可以用SQL批量替换:UPDATE dede_archives SET litpic=REPLACE(litpic,'旧域名','新域名'); 同时替换文章正文中的链接。

问:不想改代码,有没有更简单的办法?
答:如果服务器支持Docker,可以拉取PHP 5.6的镜像单独跑织梦,但需要一定运维基础。

迁移织梦CMS遇到PHP版本问题,核心就是先确认版本差异,再选择降级或修补。
修补时优先用社区补丁,改完务必验证前台、后台和数据库。
如果这篇文章帮你解决了问题,后续遇到其他迁移报错,也可以按“看报错、查函数、改配置”的思路来排查。

分享到:
上一篇
织梦DedeCMS漏洞防护,老站点安全加固
下一篇
帝国CMS大数据资讯站部署,高并发优化方案
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意