PHP7下安装Emlog5.3.1

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();等等。

2.jpg

目前有 16 条评论

avatar

宅客基地  2018-04-15 23:03 6楼

mysql_fetch_array在PHP7.0中,大佬会用什么替代? 回复
avatar

星之宇  2018-04-16 12:02

@宅客基地:php7去除了mysql扩展,可以使用mysqli或者pdo模式来实现 回复
avatar

游客  2017-09-16 17:42 5楼

大神,修改之后安装出现,Parse error: syntax error, unexpected 'tag' (T_STRING), expecting ')' in /mnt/sda1/www/mblog/include/lib/option.php on line 156,怎么处理? 回复
avatar

星之宇  2017-09-16 18:04

@游客:这个你应该是符号出现问题了。 回复
avatar

游客  2017-09-17 10:39

@星之宇:什么符号,大神能不能明示一下,谢谢了,或者大神给个能够正确在PHP7下可以安装的emlog5.3.1,谢谢大神了!! 回复
avatar

苇子  2017-09-17 10:41

@星之宇:大神能不能明示一下,哪个符号出的问题?我就是在官版上按照大神的提示更改的,不知道哪里出了问题,大神能不能给个能够在PHP下安装使用的emlog5.3.1的程序,谢谢了!! 回复
avatar

星之宇  2017-09-17 18:25

@苇子:刚测试了下可以的。不过安装的时候会报一个警告 回复
avatar

姜辰  2017-07-10 21:06 4楼

问大佬一个问题,mysql_escape_string在PHP7.0中,大佬会用什么替代? 回复
avatar

星之宇  2017-07-11 09:13

@姜辰:这个函数在PHP7中已经弃用了,一般情况下建议使用addslashes,Wordpress也是使用这个函数来修改的。 回复
avatar

姜辰  2017-01-30 15:05 3楼

博主,呢个模版设置插件这样修改后无法正常运行了,请教一下您是怎么处理的?另祝新年快乐,万事如意,阖家幸福! 回复
avatar

星之宇  2017-02-03 12:34

@姜辰:tpl_options.php文件370行左右 回复
avatar

姜辰  2016-12-14 21:43 2楼

就是比较好奇怎么升级的PHP7.0 回复
avatar

星之宇  2016-12-14 21:46

@姜辰:手工升级的,修改程序很简单的 回复
avatar

姜辰  2016-12-14 23:38

@星之宇:额,服务器我不会折腾,EM我已经修改完毕了~ 回复
avatar

乐悠游  2016-03-25 10:22 1楼

php7应该没有传说中那么快,而且对于一些现在一些程序向下兼容不是很好,我前几天试用了一下,只好换回5.6算了。 回复
avatar

星之宇  2016-03-25 10:33

@乐悠游:到emlog来说,解决了标签问题就是解决了emlog的瓶颈!其他的都是浮云 回复
昵称
邮箱
主页
提交
订阅