- 浏览: 7943982 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
http://www.cnxct.com/category/%e6%89%80%e8%b0%93%e6%8a%80%e6%9c%af/
我们的一个项目,用了PDO_MYSQL拓展,准备迁移服务器,新环境需要编译安装环境。昨天,运维同事抽空编译了一下,一直编译不上pdo_mysql,同时,公司的一款新webgame临近上线,他们实在太忙,我这个三流运维技术的程序员来试试吧。
运维同事描述:
服务器系统版本:Linux version 2.6.32-71.el6.x86_64 (mockbuild@c6b6.centos.org) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Fri May 20 03:51:51 BST 2011
编译PHP的参数
查看源代码打印帮助1 ...
2 tar zxvf $soft_dir/php-5.3.8.tar.gz -C $soft_tmp
3 cd $soft_tmp/php-5.3.8
4 ./configure --prefix=$soft_install/php --with-config-file-path=$soft_install/php/etc --with-mysql=$soft_install/mysql --with-mysqli=mysqlnd --with-gd=$soft_install/gd --with-jpeg-dir=$soft_install/jpeg --with-png-dir=$soft_install/png --with-freetype-dir=$soft_install/freetype --enable-bcmath --with-mcrypt && make && make install
5 ...
之后再次编译 pdo_mysql 拓展
查看源代码打印帮助1 ...
2 cd $soft_tmp/PDO_MYSQL-1.0.2/
3 $soft_install/php/bin/phpize
4 ./configure --with-php-config=$soft_install/php/bin/php-config --with-pdo-mysql=$soft_install/mysql/ && make && make install
5 ...
之后, shell里执行 php -i 和 php -m都没有看到 pdo_mysql拓展。搜pdo_mysql,在将路径添加到php.ini中,仍找不到这个扩展,判断为编译失败。
这里是将pdo_mysql作为一个拓展引入使用的。在php5.3中,PHP开发组把mysqlnd作为默认的连接MYSQL的数据库驱动来使用,据官方描述,节省内存40%,速度更快,当然或许是为了解决许可协议的问题。之前PHP连接MYSQL,是调用MYSQL官方提供的C/C++编写的lib_mysql的dll/so,来实现。这个类库同样可以给PYTHON等脚本语言调用,只要按照API规范来。我们改用mysqlnd之后,就不用再为了lib_mysql去安装mysql client了。详情见:mysqlnd插件mysqlnd_ms的介绍。
两种方法都可以,运维同事都尝试了,由于时间关系,他们没做过多的尝试研究,就转向更紧急的项目了。
运维同事下载使用的PDO_MYSQL拓展的地址是 http://pecl.php.net/package/PDO_MYSQL ,里面用很耀眼的颜色,标注如下几行字
This package is not maintained anymore and has been superseded. Package has moved to channel http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_mysql/, package ext/pdo_mysql.
也就是说,早在2006年5月1(我是根据最后一个打包文件日期猜的,或许不准)之后,PHP已经将这个pdo拓展放到PHP源码的 ext/pdo_mysql下内置了。这里的这个包,将不会在更新维护了。
在PHP官方文档上对pdo_mysql使用mysqlnd的时候,是这么描述的
在php5.3中,已经支持mysqlnd作为数据库连接驱动了。而在将来的php5.4中,将变为默认的连接驱动。如图:
mysqlnd-pdo_mysql
开启这个类库的
查看源代码打印帮助1 ./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
之后,我的编译参数如下
查看源代码打印帮助1 ./configure --prefix=/usr/local/services/php --with-config-file-path=/usr/local/services/php/etc --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-iconv-dir=/usr/local/services/libiconv --disable-phar --with-gd=/usr/local/services/gd --with-jpeg-dir=/usr/local/services/jpeg --with-png-dir=/usr/local/services/png --with-freetype-dir=/usr/local/services/freetype --enable-bcmath --with-mcrypt
区别是使用php内置的pdo_mysql类库,使用mysqlnd作为连接驱动。
make之后,提示如下错误
查看源代码打印帮助01 soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1070: undefined reference to `mysql_eof'
02 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1070: undefined reference to `mysql_fetch_row'
03 ext/mysql/php_mysql.o: In function `zif_mysql_error':
04 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1727: undefined reference to `mysql_error'
05 ext/mysql/php_mysql.o: In function `zif_mysql_errno':
06 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1758: undefined reference to `mysql_errno'
07 ext/mysql/php_mysql.o: In function `php_mysql_do_connect':
08 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:705: undefined reference to `mysql_get_client_version'
09 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:963: undefined reference to `mysql_init'
10 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:976: undefined reference to `mysql_options'
11 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:980: undefined reference to `mysql_real_connect'
12 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1002: undefined reference to `mysql_options'
13 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:706: undefined reference to `mysql_get_client_version'
14 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:844: undefined reference to `mysql_init'
15 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:850: undefined reference to `mysql_options'
16 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:853: undefined reference to `mysql_real_connect'
17 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:871: undefined reference to `mysql_options'
18 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:989: undefined reference to `mysql_error'
19 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:992: undefined reference to `mysql_errno'
20 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:898: undefined reference to `mysql_ping'
21 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:899: undefined reference to `mysql_errno'
22 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:901: undefined reference to `mysql_real_connect'
23 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:911: undefined reference to `mysql_options'
24 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:862: undefined reference to `mysql_error'
这种错误,让我手足无措,GOOGLE搜了下,也没找到相关案例,而且,一直被墙,打不开国外网页。百度搜的结果,还是算了。(中文还行,E文的话,百度确实不行,尤其是程序相关)
之后,尝试make clean,清除之前的编译结果缓存之类。
再次make,有个小意外
查看源代码打印帮助1 ERROR: invalid PHP executable specified by TEST_PHP_EXECUTABLE = .....
再次搜索,这倒是很多网友遇到过,大部分的建议就是无视这个错误,不影响编译。照做。make install ,一路挺顺畅。
接着,php -i / php -m 也没发现pdo_mysql模块。
郁闷无比,决定看下web下的phpinfo结果,发现居然有了。问题终于解决了。。。万岁。。
可是!!!
1,为啥php -i 、php -m 的结果里看不到呢? 思考,为什么呢?
结合刚刚的报错,联想到CLI 模式下的php 脚本(以及相关的php.ini)跟刚刚从web下访问的php程序不是同一个。检查环境变量,以及切换到编译好的目录下执行php -i,发现pdo_mysql、mysqlnd等相关添加的模块了。
2,php.ini里没启用pdo_mysql拓展,为什么还能看的到呢?
这次使用的是PHP内置的类库,不是以新拓展方式加载运行的,所以,不用更改php.ini,再添加相关so路径。
综上所述,文章没有高深的东西,只是有几个需要细心的点。
1,以官方文档为准,一切跟着官方文档来,不轻易采信网络上网友提供的编译参数,包括这边博文。不论对方是老手、大牛,还是其他什么什么有威望的人。他们提供的方法或许跟你当前的环境不一致,时间也相差很大,或许相隔好几年了。
2,确认得到的结果是准确的,怎么说呢,文中的例子中php-i的路径不是我们新编译的,而是之前编译,或者yum安装的,一定要到自己编译的程序目录下,用自己新编译的脚本去执行测试,获得测试结果,下结论,不为了偷懒,不敲路径,直接写程序名进行测试。
3,遇到诡异的错误,我总会想要一个全新的系统,进行安装,以确保不被各种冗余、缓存等垃圾文件干扰。例子中用了make clean进行清除相关缓存,来解决文件缓存问题。(感谢@ivon_lee 的帮助)
4,自动安装脚本要及时更新,当然,不是意味着追求最新版本。例子中的pdo_mysql的拓展,官方提供了更好的方式,不论是效率,资源占用,都有更好的提升,为啥不使用呢。
备注:mysqlnd 的相关有点对比见http://developer.51cto.com/art/200903/115995.htm
我们的一个项目,用了PDO_MYSQL拓展,准备迁移服务器,新环境需要编译安装环境。昨天,运维同事抽空编译了一下,一直编译不上pdo_mysql,同时,公司的一款新webgame临近上线,他们实在太忙,我这个三流运维技术的程序员来试试吧。
运维同事描述:
服务器系统版本:Linux version 2.6.32-71.el6.x86_64 (mockbuild@c6b6.centos.org) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Fri May 20 03:51:51 BST 2011
编译PHP的参数
查看源代码打印帮助1 ...
2 tar zxvf $soft_dir/php-5.3.8.tar.gz -C $soft_tmp
3 cd $soft_tmp/php-5.3.8
4 ./configure --prefix=$soft_install/php --with-config-file-path=$soft_install/php/etc --with-mysql=$soft_install/mysql --with-mysqli=mysqlnd --with-gd=$soft_install/gd --with-jpeg-dir=$soft_install/jpeg --with-png-dir=$soft_install/png --with-freetype-dir=$soft_install/freetype --enable-bcmath --with-mcrypt && make && make install
5 ...
之后再次编译 pdo_mysql 拓展
查看源代码打印帮助1 ...
2 cd $soft_tmp/PDO_MYSQL-1.0.2/
3 $soft_install/php/bin/phpize
4 ./configure --with-php-config=$soft_install/php/bin/php-config --with-pdo-mysql=$soft_install/mysql/ && make && make install
5 ...
之后, shell里执行 php -i 和 php -m都没有看到 pdo_mysql拓展。搜pdo_mysql,在将路径添加到php.ini中,仍找不到这个扩展,判断为编译失败。
这里是将pdo_mysql作为一个拓展引入使用的。在php5.3中,PHP开发组把mysqlnd作为默认的连接MYSQL的数据库驱动来使用,据官方描述,节省内存40%,速度更快,当然或许是为了解决许可协议的问题。之前PHP连接MYSQL,是调用MYSQL官方提供的C/C++编写的lib_mysql的dll/so,来实现。这个类库同样可以给PYTHON等脚本语言调用,只要按照API规范来。我们改用mysqlnd之后,就不用再为了lib_mysql去安装mysql client了。详情见:mysqlnd插件mysqlnd_ms的介绍。
两种方法都可以,运维同事都尝试了,由于时间关系,他们没做过多的尝试研究,就转向更紧急的项目了。
运维同事下载使用的PDO_MYSQL拓展的地址是 http://pecl.php.net/package/PDO_MYSQL ,里面用很耀眼的颜色,标注如下几行字
This package is not maintained anymore and has been superseded. Package has moved to channel http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_mysql/, package ext/pdo_mysql.
也就是说,早在2006年5月1(我是根据最后一个打包文件日期猜的,或许不准)之后,PHP已经将这个pdo拓展放到PHP源码的 ext/pdo_mysql下内置了。这里的这个包,将不会在更新维护了。
在PHP官方文档上对pdo_mysql使用mysqlnd的时候,是这么描述的
在php5.3中,已经支持mysqlnd作为数据库连接驱动了。而在将来的php5.4中,将变为默认的连接驱动。如图:
mysqlnd-pdo_mysql
开启这个类库的
查看源代码打印帮助1 ./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
之后,我的编译参数如下
查看源代码打印帮助1 ./configure --prefix=/usr/local/services/php --with-config-file-path=/usr/local/services/php/etc --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-iconv-dir=/usr/local/services/libiconv --disable-phar --with-gd=/usr/local/services/gd --with-jpeg-dir=/usr/local/services/jpeg --with-png-dir=/usr/local/services/png --with-freetype-dir=/usr/local/services/freetype --enable-bcmath --with-mcrypt
区别是使用php内置的pdo_mysql类库,使用mysqlnd作为连接驱动。
make之后,提示如下错误
查看源代码打印帮助01 soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1070: undefined reference to `mysql_eof'
02 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1070: undefined reference to `mysql_fetch_row'
03 ext/mysql/php_mysql.o: In function `zif_mysql_error':
04 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1727: undefined reference to `mysql_error'
05 ext/mysql/php_mysql.o: In function `zif_mysql_errno':
06 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1758: undefined reference to `mysql_errno'
07 ext/mysql/php_mysql.o: In function `php_mysql_do_connect':
08 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:705: undefined reference to `mysql_get_client_version'
09 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:963: undefined reference to `mysql_init'
10 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:976: undefined reference to `mysql_options'
11 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:980: undefined reference to `mysql_real_connect'
12 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:1002: undefined reference to `mysql_options'
13 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:706: undefined reference to `mysql_get_client_version'
14 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:844: undefined reference to `mysql_init'
15 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:850: undefined reference to `mysql_options'
16 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:853: undefined reference to `mysql_real_connect'
17 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:871: undefined reference to `mysql_options'
18 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:989: undefined reference to `mysql_error'
19 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:992: undefined reference to `mysql_errno'
20 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:898: undefined reference to `mysql_ping'
21 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:899: undefined reference to `mysql_errno'
22 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:901: undefined reference to `mysql_real_connect'
23 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:911: undefined reference to `mysql_options'
24 /data/sa/suse-soft/soft_tmp/php-5.3.8/ext/mysql/php_mysql.c:862: undefined reference to `mysql_error'
这种错误,让我手足无措,GOOGLE搜了下,也没找到相关案例,而且,一直被墙,打不开国外网页。百度搜的结果,还是算了。(中文还行,E文的话,百度确实不行,尤其是程序相关)
之后,尝试make clean,清除之前的编译结果缓存之类。
再次make,有个小意外
查看源代码打印帮助1 ERROR: invalid PHP executable specified by TEST_PHP_EXECUTABLE = .....
再次搜索,这倒是很多网友遇到过,大部分的建议就是无视这个错误,不影响编译。照做。make install ,一路挺顺畅。
接着,php -i / php -m 也没发现pdo_mysql模块。
郁闷无比,决定看下web下的phpinfo结果,发现居然有了。问题终于解决了。。。万岁。。
可是!!!
1,为啥php -i 、php -m 的结果里看不到呢? 思考,为什么呢?
结合刚刚的报错,联想到CLI 模式下的php 脚本(以及相关的php.ini)跟刚刚从web下访问的php程序不是同一个。检查环境变量,以及切换到编译好的目录下执行php -i,发现pdo_mysql、mysqlnd等相关添加的模块了。
2,php.ini里没启用pdo_mysql拓展,为什么还能看的到呢?
这次使用的是PHP内置的类库,不是以新拓展方式加载运行的,所以,不用更改php.ini,再添加相关so路径。
综上所述,文章没有高深的东西,只是有几个需要细心的点。
1,以官方文档为准,一切跟着官方文档来,不轻易采信网络上网友提供的编译参数,包括这边博文。不论对方是老手、大牛,还是其他什么什么有威望的人。他们提供的方法或许跟你当前的环境不一致,时间也相差很大,或许相隔好几年了。
2,确认得到的结果是准确的,怎么说呢,文中的例子中php-i的路径不是我们新编译的,而是之前编译,或者yum安装的,一定要到自己编译的程序目录下,用自己新编译的脚本去执行测试,获得测试结果,下结论,不为了偷懒,不敲路径,直接写程序名进行测试。
3,遇到诡异的错误,我总会想要一个全新的系统,进行安装,以确保不被各种冗余、缓存等垃圾文件干扰。例子中用了make clean进行清除相关缓存,来解决文件缓存问题。(感谢@ivon_lee 的帮助)
4,自动安装脚本要及时更新,当然,不是意味着追求最新版本。例子中的pdo_mysql的拓展,官方提供了更好的方式,不论是效率,资源占用,都有更好的提升,为啥不使用呢。
备注:mysqlnd 的相关有点对比见http://developer.51cto.com/art/200903/115995.htm
发表评论
-
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3101微软提供了不少命令行 ... -
挂载文件系统选项nodiratime、noatime等集合小结
2018-06-02 19:56 2666Linux系统文件有三个主 ... -
Linux如何查看当前占用CPU或内存最多的K个进程
2018-05-20 11:01 3298内存 可以使用以下命令查使用内存最多的K个进程 方法1: p ... -
(转)使用frp实现内网穿透
2018-05-14 13:33 2431https://www.jianshu.com/p/e8e26 ... -
docker小结1
2018-05-11 14:26 4841 通过dockerfile建立一个简单的HELLO.C,然后 ... -
LINUX下EPOLL等不错的文章收藏
2018-04-25 09:35 5641 通俗讲解 异步,非阻塞和 IO 复用 https:/ ... -
Ubuntu中root用户和user用户的相互切换
2018-04-06 12:46 10321)从user用户切换到root用户 不管是用图形模式登录U ... -
ubuntu下Virtualbox虚拟Ubuntu共享文件夹设置
2018-04-06 11:41 10111. 安装增强功能包(Guest Additions) 安装 ... -
Web网站压力及性能测试
2017-10-09 19:59 699https://segmentfault.com/a/1190 ... -
工具推荐:Netdata,Linux性能实时监测工具
2017-07-14 09:10 1175工具推荐:Netdata,Linux性能实时监测工具 http ... -
一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知
2017-07-11 07:07 1653一个 Linux 下基于 Bash 的文件和数据库监控及备份工 ... -
收藏个不错的能发送日志等警告信息等到微信的工具
2017-06-11 10:12 1077发现个将比如报警日志呀之类的提醒信息,发送给微信的好的工具,不 ... -
收藏:nginx教程从入门到精通(ttlsa出品)
2017-02-09 22:53 728http://www.ttlsa.com/nginx/ngin ... -
(转)从dstat理解Linux性能监控体系
2016-08-02 10:27 2565http://calvin1978.blogcn.com/ar ... -
linux下安装SZ,RZ命令
2016-02-26 20:59 1664在 linux 下,一般用secur crt等工具,今天居然 ... -
Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包
2014-11-14 09:12 1761Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包、延 ... -
ping+tracerout的unix下网络诊断小工具mtr
2014-07-29 22:04 1602今日才发现,原来linux中可以用ping和tracerout ... -
(转)Apache日志分割
2014-02-25 20:20 1609Apache和Ngix一样,对日志没有进行分割处理,这样很不方 ... -
linux下 cpu频率节能
2014-02-25 13:06 1436参考: http://linux-wiki.cn/wiki/z ... -
(转)最佳日志实践
2014-01-22 23:24 954http://www.bitstech.net/2014/01 ...
相关推荐
sudo apt-get install php5 php5-common php5-cli php5-dev php5-mysql phpmyadmin php5-pgsql phppgadmin php5-gd php5-mcrypt php5-curl php-pear libapache2-mod-php5 php5-xdebug php5-codesniffer ``` 2. *...
通过PDO,开发者可以使用面向对象的方式来操作数据库,同时享受到PDO提供的事务处理、预编译语句和错误处理等特性。 3. 安装与配置: 在Windows环境下,这些DLL文件需要放置在PHP的ext目录下,并在php.ini配置文件...
同时,还需要安装与PHP5.3编译相关的库,例如XML、libevent、curl、GD库、JPEG支持、PNG支持、libmcrypt、zlib、tidy、MySQL客户端库等。执行以下命令: ```bash sudo apt-get install libxml2 libxml2-dev ...
2. "php_pdo_sqlsrv_53_nts_vc6.dll" - 这是PDO SQL Server驱动,同样适用于PHP 5.3版本,非线程安全,也是用Visual C++ 6编译的。这个扩展允许通过PDO接口访问SQL Server数据库。 3. ...
在CentOS 6.4操作系统上编译安装PHP5的过程是一项技术性的工作,涉及到多个步骤和依赖库的安装。以下是对整个过程的详细说明: 首先,为了编译PHP5,你需要确保系统上已经安装了一些基本的开发工具和库。通过运行`...
ubuntu14.04+php5.6环境下连接sqlserver2008扩展库 mssql.so+pdo_dblib.so,编译方法:http://blog.csdn.net/hanzengyi/article/details/52054862
- 预编译语句:通过预编译的SQL语句提高执行效率,同时防止SQL注入攻击。 - 多结果集处理:允许一个查询返回多个结果集,方便处理复杂的数据需求。 - 高级数据类型支持:包括XML、几何类型、日期/时间类型等,与...
本篇文章将详细阐述如何在PHP 5.3环境下配置Oracle客户端以及安装PDO_OCI模块,以便实现PHP连接Oracle 11g R2数据库。 首先,确保你的系统已经安装了PHP基础环境,包括PHP、PHP-PDO等必要组件。如果尚未安装,可以...
### PHP5.3到PHP7的新特性总结 ...通过以上分析可以看出,从PHP5.3升级到PHP7的过程中,不仅解决了许多遗留问题,还引入了许多新特性,极大地提升了开发效率和程序性能。对于开发者而言,掌握这些新特性是非常重要的。
- **Extensions**:PHP提供了许多内置扩展,如MySQLi、PDO、SPL等,这些扩展位于`ext`目录下,用于增强PHP的功能。 - **Main**:包含启动、初始化和终止PHP运行时环境的代码。 - **lib**:包含PHP的一些基础库,...
◦编译问题 ◦使用 PHP ◦Password Hashing — Safe Password Hashing ◦PHP 和 HTML ◦PHP 和 COM ◦从 PHP 4 移植到 PHP 5 ◦杂类问题 •附录◦PHP 及其相关工程的历史 ◦Migrating from PHP 5.5.x to PHP 5.6.x ...
- **OpCache**:从5.5.0版本开始,PHP引入了内置的OpCache,用于存储预编译的PHP代码,从而提高了性能。 - **改进的错误处理**:引入了更友好的错误报告机制,如错误严重性分级和更好的调试信息。 - **更好的性能**...
最新的php手册 2014年02月20号最后编译 by: Mehdi Achour Friedhelm Betz Antony Dovgal Nuno Lopes Hannes Magnusson Georg Richter Damien Seguy Jakub Vrana 其他贡献者 2014-02-20 Edited ...
■编译问题 ■使用 PHP ■PHP 和 HTML ■PHP 和 COM ■PHP 和其它语言 ■从 PHP 4 移植到 PHP 5 ■杂类问题 ■附录 ■PHP 及其相关工程的历史 ■从 PHP 5.2.x 移植到 PHP 5.3.x ■Migrating from PHP 5.1.x to PHP ...
### Linux环境下源码安装Apache 2.4、Nginx 1.20、PHP 5.3.10及MySQL 5.5 #### 一、准备工作:基础软件安装 在Ubuntu系统中,需要先确保一些基础工具的安装,避免后续编译过程中出现问题。...path=/usr/local/...
编译问题 使用 PHP Password Hashing — Safe Password Hashing PHP 和 HTML PHP 和 COM PHP 和其它语言 从 PHP 4 移植到 PHP 5 杂类问题 附录 PHP 及其相关工程的历史 Migrating from PHP ...
对于PHP5.4和5.3,需要下载对应版本的sqlsrv和pdo_sqlsrv驱动。通常,这些驱动可以在微软的官方网站上找到,或者通过Composer来安装。安装过程中可能需要配置php.ini文件,将扩展添加到`extension_dir`路径,并启用...
这里的"53"可能指的是PHP的版本号(例如PHP 5.3),"ts"则可能代表"Thread Safe",表明这是为多线程环境编译的版本。 在PHP中,要连接到SQL Server,通常有两种方法:使用旧的mssql扩展(不推荐)或使用更现代的PDO...
■编译问题 ■使用 PHP ■Password Hashing — Safe Password Hashing ■PHP 和 HTML ■PHP 和 COM ■PHP 和其它语言 ■从 PHP 4 移植到 PHP 5 ■杂类问题 ■附录■PHP 及其相关工程的历史 ■Migrating from PHP ...