emlog 5.3.1版本不支持php7+,在php7下安装emlog会出现多个不同的错误,从而无法继续进行安装,也就无法使用。因此要在php7上使用emlog 5.3.1,就得通过修改emlog程序源代码来实现。
修改步骤:
1、编辑文件include\lib\function.base.php,找到代码(第7行左右)
| 1 | function __autoload($class) { | 
修改为
| 1 | spl_autoload_register(function($class) { | 
说明:__autoload()函数在php7中已经废弃,在emlog安装界面会出现Deprecated提示
2、编辑文件include\lib\option.php,找到代码(第11行左右)
| 1 | const DEFAULT_MYSQLCONN = 'mysql'; | 
修改为
| 1 | const DEFAULT_MYSQLCONN = 'mysqli'; | 
说明:安装emlog时,输入mysql数据库信息进行安装,会出现“服务器空间PHP不支持MySql数据库”的提示。这是因数php7已经不支持mysql扩展,但支持mysqli和pdo_mysql,由于emlog 5.3.1支持mysqli连接类,所以此处修改为mysqli。
3、编辑文件include\lib\database.php,删除代码(第16行)
| 1 | default : | 
说明:删除或注释掉都可以
4、编辑文件include\lib\cache.php,修改代码(第195行左右)
| 1 | $$row['option_name'] = $row['option_value']; | 
修改为
| 1 | ${$row['option_name']} = $row['option_value']; | 
5、编辑文件include\lib\passwordhash.php,修改代码(第42行左右)
| 1 | function PasswordHash($iteration_count_log2, $portable_hashes) | 
修改为
| 1 | function __construct($iteration_count_log2, $portable_hashes) | 
说明:php7中构造函数的名称不能和类名称相同
至此,使用emlog默认主题的情况下,emlog 5.3.1已经可以在php 7+版本上正常运行了。如果使用的是非默认主题,则可能需要修改数据库链接的方式等,如
| 1 | $DB = MySql::getInstance(); | 
修改为
| 1 | $DB = Database::getInstance(); | 
PS:按照Emlog的更新情况,其实目前并不建议新网站使用Emlog,可以考虑一下Z-Blog或WordPress。
 
								 
								 
								 
								 
								 
								 
								 
								 
								 
								 
								 
								 
					