织梦DedeCMS迁移PHP7.4完整教程
很多站长还在用 PHP5.6 跑织梦 DedeCMS,但新服务器默认只提供 PHP7.4 以上版本,直接切换往往会出现白屏或报错。
这篇教程会从备份开始,一步步带你把织梦迁移到 PHP7.4,并给出常见报错的修复方法,零基础也能跟着做。
迁移前必须做的两件准备
1. 完整备份网站和数据库
无论迁移是否顺利,备份都是第一步。
你可以用宝塔面板的“网站备份”和“数据库备份”功能,也可以手动打包:
tar -czvf dedecms_backup.tar.gz /www/wwwroot/你的网站目录
mysqldump -u 数据库用户 -p 数据库名 > dedecms_db.sql
2. 确认当前织梦版本和 PHP 版本
登录织梦后台,在“系统”->“系统信息”里查看版本。
如果版本低于 5.7 SP2,建议先升级到最新版,因为新版对 PHP7 兼容性更好。
同时确认服务器上已安装 PHP7.4,可以用宝塔面板的“软件商店”安装,或命令行检查:
php -v
如果显示 PHP 7.4.x,说明环境就绪。
切换 PHP 版本并处理兼容问题
在宝塔面板中,进入“网站”->“你的站点”->“设置”->“PHP版本”,选择 PHP7.4。
切换后立刻访问网站前台和后台,观察是否正常。
常见问题一:后台登录页空白。
这通常是因为织梦旧版使用了 PHP7 已移除的函数,比如 mysql_* 系列。
解决方法是修改 /include/common.inc.php,把数据库连接方式改为 mysqli。
如果不想手动改,可以下载官方最新的补丁文件覆盖。
常见问题二:前台报错“Deprecated: mysql_connect()”。
同样需要替换数据库操作函数。
打开 /include/config.php,确认数据库连接参数正确,然后检查 /data/common.inc.php 是否存在旧式连接代码。
常见问题三:验证码不显示或乱码。
这通常是 GD 库或字体路径问题。
在 PHP7.4 设置中确认已安装 gd 扩展,并检查 /include/vdimgck.php 里的字体路径是否指向存在的字体文件。
如果修改后仍然报错,可以临时开启 PHP 错误显示,在网站根目录创建 phpinfo.php 文件,内容为 ,访问后确认 PHP 版本和扩展。
php phpinfo(); ?
>
排查完记得删除该文件。
关键文件调整与伪静态规则更新
织梦的伪静态规则在 PHP7.4 下可能需要微调。
如果你使用 Nginx,检查站点配置文件中的 rewrite 规则,确保没有使用已废弃的语法。
宝塔面板中可以在“网站”->“设置”->“伪静态”里选择“DedeCMS”模板,或手动添加:
rewrite ^/list-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&PageNo=$2 last;
另外,检查 /data/ 目录权限,确保 PHP 进程可写。
通常设置为 755,所有者与网站运行用户一致。
迁移后如何验证效果
完成上述步骤后,按以下清单逐项检查:
- 前台首页、栏目页、内容页能否正常打开,图片和样式是否加载。
- 后台登录、发布文章、修改栏目是否正常。
- 会员注册、登录、评论功能是否可用。
- 使用浏览器开发者工具查看是否有 JavaScript 报错或 404 请求。
- 查看服务器 PHP 错误日志(宝塔面板“网站”->“日志”),确认没有新的警告或错误。
如果一切正常,说明迁移成功。
建议再观察 24 小时,确保没有偶发问题。
避坑提醒
- 不要在迁移过程中直接删除旧版 PHP,保留 PHP5.6 一段时间作为回退方案。
- 修改核心文件前先备份原文件,避免改错无法恢复。
- 如果使用了第三方插件或模板,确认它们也兼容 PHP7.4,否则单独升级或替换。
- 迁移完成后,及时更新织梦到最新版本,并修改后台默认路径,提升安全性。
常见疑问
迁移后网站打开速度变慢怎么办?
先检查是否开启了 PHP7.4 的 OPcache,可以在宝塔面板的 PHP 设置中开启。
同时确认数据库索引是否合理,必要时优化数据表。
后台提示“Session 启动失败”如何解决?
这通常是 /data/session/ 目录权限不足或路径不存在。
手动创建该目录并赋予 755 权限,然后在 php.ini 中确认 session.save_path 指向正确。
原来的一些功能失效了,必须改代码吗?
如果功能依赖旧版 PHP 函数,通常需要修改对应文件。
建议优先查找官方补丁或社区解决方案,避免自己重写核心逻辑。
迁移后是否需要重新生成静态页面?
如果你使用了织梦的静态生成功能,建议在后台“生成”->“更新所有”里重新生成一次,确保页面链接和内容正确。
按照以上步骤操作,大多数织梦站点都能顺利迁移到 PHP7.4。
遇到报错时不要慌,先看错误信息定位文件和行号,再对照本文的排查点处理。