一、前言
LifeType是一个用php语言写的多用户的blog系统程序,官网最后的发布版本为LifeType 1.2.12。
对于LifeType 1.2.12,当时推荐的比较理想的运行环境也就是Apache 2.2 + PHP 5.2 + MySQL 5.1了。
虽然不做修改的话,LifeType 1.2.12也能在Apache 2.4 + PHP 5.4 + MySQL 5.6下跑起来。但是现在看来,这个php版本也是比较老了。
二、让LifeType支持php7
1.对此,一位希腊的网友Alexandros在2019年对内部开发版本LifeType 1.2.13-dev做了支持php7的修改。
这是下载地址https://github.com/acoul/lifetype
最终他修改后的运行环境为Gentoo 32bit apache-2.4.41 & php-7.2.25(也支持php-5.6.40)
我在Win10 Apache 2.4.43 ,PHP7.2.25,MySQL 5.7.31下做了测试,可以运行。
2.关于LifeType在php7下的实现,也有人在LifeType的邮件列表论坛里讨论,其实也是LifeType的核心开发人员jondaley,对php7的支持,也是在Alexandros基础上做的修改,同时对LifeType也有一些日常的更新。你可以订阅,也可以通过存档列表查看相关内容:http://limedaley.com/pipermail/plog-svn/
3.另外,台湾网友tommy也做了让LifeType支持php7的修改工作,并在他的blog上记录了大概修改思路,以及共享了修改文件的下载,具体见tommy的blog帖子:https://blog.teatime.com.tw/1/post/473
三、LifeType的升级步骤
1.LifeType的升级操作,个人的建议还是要先在本机或测试环境中来进行。
2.确认无误,再移植到正式的服务器环境中,而且务必备份LifeType的mysql数据库及LifeType安装目录下的所有文件(包括程序文件、上传附件等)。
3.下载lifetype-1.2.13-dev的压缩包,解压复制到LifeType的安装目录(再次提醒,操作前务必先备份),覆盖旧文件。LifeType安装目录下重要的或可能修改的文件,大概如下,记得要保留或者重新拷贝回来:
config #配置文件夹
gallery #上传文件夹
imgs\plog_top.gif #summary.php首页banner
locale\locale_zh_CN.php #中文语言包
plugins #插件中文
styles\summary.css #summary.php风格文件
templates #模板,特别注意summary.php定制首页不要覆盖
.htaccess #目录设置、访问权限及重写规则
3.因为LifeType1.2基本没有对mysql数据库结构做修改,所以只要升级LifeType修改程序就可以运行了。
四、LifeType在php7下的一些小问题
1.之前LifeType主要在apache2.2下部署,如果使用了apache2.4,要记得修改.htaccess文件,因为apache2.4下控制目录访问权限的语句有了修改。否则程序没有权限执行。一般需要修改:
.\.htaccess
.\gallery\.htaccess
.\plugins\.htaccess
2.图片不能上传问题,是因为eregi函数被弃用,改为preg_match即可。打开class\gallery\getid3\getid3.php文件:
在63行
if (eregi('([0-9]+)M', $memory_limit, $matches)) {
改为
if (preg_match('([0-9]+)M', $memory_limit, $matches)) {
即可。这个修改已经在github上报给了Alexandros,新下载的程序已经做了修复。
3.发表文章,如果内文中有个别中英文混排,且之间没有空格的话,如“plog验证码”,则提交文章时,报错500。这时文章已经写入mysql,但因分词出问题,不能成功写入token表。解决方法为,编辑文件class\bayesian\bayesiantokenizer.class.php第六行:
将
define( "SPLIT_REG_EXP", "/[^a-zA-Z0-9àáèéíïòóúüÀÁÈÉÍÏÒÓÚÜ'$!,.^-]+/");
改为
define( "SPLIT_REG_EXP", "[^a-zA-Z0-9àáèéíïòóúüÀÁÈÉÍÏÒÓÚÜ'$!,.^-]+");
4.rss2.0输出blog和文章标题乱码,这是几个版本都有的bug。编辑\templates\rss\rss20.template文件,有两处:
把
|escape:hexentity}
替换为:
|escape}
评论
Re: 让LifeType在php7下运行
测试一下,来自2021的评论。
不错不错
实用的信息