PHP7出来一段时间了,据说PHP7可以性能翻倍。而且我的服务器上也已经开通了PHP7,就开始折腾下Emlog5.3.1。
直接在php7安装emlog5.3.1各种报错。emlog5.3.1虽然已经出了使用mysqli连接类,但是为了兼容性还是默认是使用了mysql。因为PHP7已经不支持mysql扩展了,但是支持mysqli和pdo_mysql。所以这里还是介绍如何使用mysqli来安装emlog。
以下是修改emlog安装程序,无报错安装。如果是实际环境请在本地环境模拟后成功后再更换。
1、修改include\lib\option.php,大概11行修改为mysqli
//默认MySQL链接方式,mysql或mysqli const DEFAULT_MYSQLCONN = 'mysql'; 改为 const DEFAULT_MYSQLCONN = 'mysqli';//默认链接方式改为mysqli
2、修改include\lib\database.php,大概16行删除default:
case 'mysql': default ://这边需要删除default:
3、修改include\lib\cache.php,大概195行加大括号
$$row['option_name'] = $row['option_value']; 改为 ${$row['option_name']} = $row['option_value'];
By 2018-3-14
4、PHP版本最近更新的比较快,autoload自动加载函数会报错,function.base.php开头的__autoload函数修改如下
spl_autoload_register(function($class) { $class = strtolower($class); if (file_exists(EMLOG_ROOT . '/include/model/' . $class . '.php')) { require_once(EMLOG_ROOT . '/include/model/' . $class . '.php'); } elseif (file_exists(EMLOG_ROOT . '/include/lib/' . $class . '.php')) { require_once(EMLOG_ROOT . '/include/lib/' . $class . '.php'); } elseif (file_exists(EMLOG_ROOT . '/include/controller/' . $class . '.php')) { require_once(EMLOG_ROOT . '/include/controller/' . $class . '.php'); } else { emMsg($class . '加载失败。'); } });
PS:暂时就发现这么些地方要修改的,还有部分插件写死了数据库链接方式。需要修改,不然直接报数据库错误。
比如:$DB = MySql::getInstance();改为$DB = Database::getInstance();等等。
目前有 17 条评论
烈火 2019-02-09 10:12 7楼
宅客基地 2018-04-15 23:03 6楼
星之宇 2018-04-16 12:02
游客 2017-09-16 17:42 5楼
星之宇 2017-09-16 18:04
游客 2017-09-17 10:39
苇子 2017-09-17 10:41
星之宇 2017-09-17 18:25
姜辰 2017-07-10 21:06 4楼
星之宇 2017-07-11 09:13
姜辰 2017-01-30 15:05 3楼
星之宇 2017-02-03 12:34
姜辰 2016-12-14 21:43 2楼
星之宇 2016-12-14 21:46
姜辰 2016-12-14 23:38
乐悠游 2016-03-25 10:22 1楼
星之宇 2016-03-25 10:33