php5到php7 记录opensns 失败的安装

  • 2
  • 862 views
  • A+
所属分类:应用运维

在PHP7环境下安装OPENSNS(失败)

问题

mysql_connect               不支持

php5到php7 记录opensns 失败的安装

php7环境下,你会发现安装opensns时出错,报“mysql_connect”不支持,其原因为,opensns在设计之处,只考虑了php5.3的兼容性,以至于甚至到现在,改程序不支持php5.5(包括)以上的php版本。

解决思路

php5.3之后,逐渐废弃了原生mysql,转而以mysqli和pdo-mysql代替,以至于像zabbix的新版本依赖于mysqli 接口方法。那么对php程序中的相关函数方法进行替换是否可行呢

故本次探索进行了一下两步

步骤一替换 mysql_connect 为mysqli_connect

在linux中我们可以进入opensns目录执行如下命令

find . -name '*.php'|xargs -i sed -i 's#mysql_connect#mysqli_connect#g' {}

其中前半部分find . -name '*.php'是寻找相关的php文件

sed命令则用于替换函数名,由于方法基本结构相同而函数不同,大部分情况下

 

是可以使用的

结果

安装完成 tp 架构 mysql_escape_string函数相关报错

php5到php7 记录opensns 失败的安装

步骤二替换 mysql_escape_string 为addslashes

重新安装
find . -name '*.php'|xargs -i sed -i 's#mysql_escape_string#addslashes#g' {}

进入主页成功,程序运行失败

php5到php7 记录opensns 失败的安装

 

步骤三 只替换 检查依赖中的array{}中mysql为mysqli

 

php5到php7 记录opensns 失败的安装

变为支持

安装失败,同步骤一

注本次版本为opensns3.3.7

总结

旧sns的时代已经悄然过去了,不少像opensns这样的优秀开源成果,可谓是我国开源文化的先驱楷模,联想到最近所谓00CEO抄袭github项目的,不由得引发我们的深思,我们或许需要更多的关注开源项目。然而,最近接触的两个开源项目 opensns 和悟空crm(5kcrm)都是基于php5.3的版本而php的版本早已经策马前驱,经过了5.5、7.0.、7.2等多个版本的更新。这或许是与我天朝的php开发人员学习培训与应用环境有关,但特别想不通opensns基于tp 居然不兼容新版本?这可是和wordpress差了好大一截呢。除了自己努力意外,希望国内的php开发生态能更加的与时俱进吧。

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar很文博客:来自天朝的朋友 谷歌浏览器 Windows 8.1 1

      看到博主的网站都用上MIP了,很多页面都指向M站了