无标题文档
wdCP系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdCDN系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
wdOS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdDNS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
注册 发贴 提问 回复-必看必看 wddns免费智能 DNS 开通 本地或虚拟机使 用wdcp 一键包在mysql编 译时"卡住"
AI导航网AI应用网站大全 wdcp官方技术支持/服务 阿里云8折优惠券 无敌云 腾讯云优惠中,现注册更有260代金额券赠送
返回列表 发帖
提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等

温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的

[分享] 再来折腾php升级,提供另一种添加pdo_mysql的方法

本帖最后由 adyanced 于 2013-5-25 17:12 编辑

话说我要在服务器上安装的软件需要php 5.3以上版本,同时要有pdo mysql,所以昨天按照论坛方法将myphp升级到了5.3.17,然后再按照论坛里的方法装上了pdo_mysql,phpinfo也显示有了pdo_mysql,版本是5.1.63,就是原来的php版本。

软件自动检测环境一切满足条件,可是程序运行还是出现:
        PHP Fatal error:  Undefined class constant 'MYSQL_ATTR_FOUND_ROWS'

真是命苦。


翻遍google,都说这是php 5.3以前的一个 bug,5.3之后的已经加入了这个常数。可我明明已经升级到php 5.3.17了,难道那个该死的软件认为我用的还是老版本?

回头再看论坛里面添加pdo_mysql的脚本,发现是从http://pecl.php.net/package/PDO_MYSQL下载,然后编译成扩展模块添加进php的。进入pecl,看到
1.jpg
原来2006年开始就把pdo mysql内置到php里面,不再支持这个升级了。于是想是不是这种安装模式有点欠妥呢,人家早就内置了,干嘛非要给它外部打个补丁。


折腾。幸亏有快照。


重新下载php5.3的升级脚本,不忙运行,先修改php_up53.sh,查找./configure字段,在这行的末尾加上如下参数(我用的apache,用nginx的话,改对应的内容

--with-mysql=mysqlnd--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

这样php就把pdo_mysql作为内置功能,而不是扩展模块动态加载,加上mysqlnd是因为怀疑我用的那个软件是不是也需要这个功能。反正php5开始也把它作为内置的了,就一起编译吧。


升级php5.3,成功!
2.jpg

3.jpg

4.jpg

5.jpg

我的软件也能跑起来了,当然不知道是不是也装了mysqlnd原因。


个人觉得既然php已经内带了pdo,那么再用外部扩展可能就不太合适了,毕竟那个模块已经那么多年没有维护了,而php还在不断前进,谁知道它和php能不能组建和谐社会呢。对于其他一些php5已经内置的东西,也可以用这个方法来添加。

补充一条,用这个方法添加pdo_mysql的话,不用到php.ini里面去添加extensions了,因为它现在是正房,不是小妾

TOP

不错
看清提问三步曲及多看教程/FAQ索引(wdcp,v3,一键包,wdOS),益处多多.wdcp工具集 阿里云主机8折优惠码

TOP

这个解决我大问题.谢谢

TOP

php 5.3.28 好像默认添加了该扩展 我升级后就直接用的

TOP

返回列表