你是不是刚把服务器PHP升到7.x,打开自己用迅睿做的网站,直接傻了?
要么全白一片打不开,要么弹一堆红色报错,后台都进不去。
找空间商说程序不兼容,找教程全是看不懂的专业词,改完还是错。
今天我把帮十多个客户修过的现成方法整理好了,不用懂高深编程,一步一步照着做就能修好,看完就能动手。
打开网站全白或者500,看不到错在哪,按这两步来:
找到网站根目录的index.php,用编辑器打开它。
在第一行后面加两行代码:
```
error_reporting(E_ALL);
ini_set('display_errors', 1);
```
刷新网页就能看到具体报错,记下文件路径和行号。
避坑提醒:修完一定要删掉这两行,不然别人能看到你的错误信息,不安全。
要是打开网页直接告诉你哪行错了、错了啥,直接把关键词、文件路径记下来就行,接下来对应修就好。
这是最多人碰到的问题,PHP7直接去掉了/e修饰符,老迅睿很多地方用它。
报错一般会提示:The /e modifier is no longer supported
打开报错文件找到那行代码,直接改写法就行。
举个例子,原来的代码是:
```
$content = preg_replace("/{(\w+)}/e", '\$this->getTag(\1)', $content);
```
改成preg_replace_callback的写法:

```
$content = preg_replace_callback("/{(\w+)}/", function($m){
return $this->getTag($m[1]);
}, $content);
```
改完保存刷新,这个错就修好了。
PHP7废弃了老的mysql扩展,所以会报这个错。
提示一般是:Call to undefined function mysql_connect()
打开报错的文件,把所有mysql_前缀改成mysqli_就行。
避坑提醒:只改函数名,参数不用动,大部分情况都能用。要是改完还错,直接去迅睿官网下兼容补丁,覆盖原文件比自己改省心。
这种是黄色提示,不影响打开,但看着闹心,也影响搜索引擎体验。
一般提示是Undefined variable或者Undefined index。
修复方法超简单,在使用变量前加一句定义就行。
举个例子,报错说$id未定义,就在用到$id前加:$id = '';
要是数组索引报错,比如$_GET['id']未定义,就改成:
``` $id = isset($_GET['id']) ? $_GET['id'] : ''; ```
保存刷新,提示直接消失。
不要改完首页能打开就完事,一定要进后台试试,发一篇文章,点几个分类,试试用户登录注册这些功能,有问题马上改,别等用户出问题才发现。
官方早就出了完全兼容PHP7甚至PHP8的新版本,你要是用的好几年前的老版本,改完这里错那里,不如先备份数据,直接升级到最新版,花半小时搞定,以后再也不会出兼容问题。
其实迅睿的PHP7兼容报错,都是版本更新带来的小问题,不是什么修不好的大bug,你不用慌。
先开报错找到位置,再对应上面的方法改,最多半小时就能修好,嫌一个个改麻烦,备份完升最新版就完了。
现在就打开你网站的后台文件,先开报错显示找到问题,今天就能把这个问题解决,别让网站一直打不开丢流量。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图