php --with-mysql=mysqlnd

1.什么是mysqlnd驱动?

PHP手册上的描述:

MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). 

MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. 


mysqldnd即mysql native driver简写,即是由PHP源码提供的mysql驱动连接代码.它的目的是代替旧的libmysql驱动.

 

传统的安装php的方式中,我们在编译PHP时,一般需要指定以下几项:
--with-mysql=/usr/local/mysql 

--with-pdo-mysql=/usr/local/mysql

这实际上就是使用了mysql官方自带的libmysql驱动, 这是比较老的驱动, PHP 5.3开始已经不建议使用它了, 而建议使用mysqlnd.

 

2. PDO与mysqlnd, libmysql又是何种关系?
PDO是一个应用层抽象类,底层和mysql server连接交互需要mysql驱动的支持. 也就是说无论你使用了何种驱动,都可以使用PDO.

PDO是提供了PHP应用程序层API接口,而mysqlnd, libmysql则负责与mysql server进行网络协议交互(它并不提供php应用程序层API功能)

 

3. 为何要使用mysqlnd驱动?
PHP官方手册描述:
A.libmysql驱动是由mysql AB公司(现在是oracle公司)编写, 并按mysql license许可协议发布,所以在PHP中默认是被禁用的.

而mysqlnd是由php官方开发的驱动,以php license许可协议发布,故就规避了许可协议和版权的问题

B.因为mysqlnd内置于PHP源代码,故你在编译安装php时就不需要预先安装mysql server也可以提供mysql client API (mysql_connect, pdo , mysqli), 这将减化一些工作量.

 

C. mysqlnd是专门为php优化编写的驱动,它使用了PHP本身的特性,在内存管理,性能上比libmysql更有优势. php官方的测试是:libmysql将每条记录在内存中保存了两份,而mysqlnd只保存了一份

 

D. 一些新的或增强的功能
增强的持久连接
引入特有的函数mysqli_fetch_all()

引入一些性能统计函数mysqli_get_cache_stats(), mysqli_get_client_stats(), 

mysqli_get_connection_stats(),

使用上述函数,可很容易分析mysql查询的性能瓶颈!

SSL支持(从php 5.3.3开始有效)

压缩协议支持

命名管道支持(php 5.4.0开始有效)

 

 

4. 看到这里,你可能跃跃欲试,很想使用mysqlnd驱动, 本节描述如何使用mysqlnd驱动
提示: 如果使用mysqlnd,并不需要预先安装mysql

 

编译php时,修改以下几个项参数即可
--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd 

 

验证:如果在phpinfo输出的mysql项中发现 client API Version  : mysqlnd, 说明mysqlnd驱动安装成功.

 

另外,附一个可用于生产环境的php的编译参数列表
./configure --prefix=/usr/local/php \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd

--with-iconv-dir \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir \

--enable-xml \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--with-mcrypt \

--with-curlwrappers \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--without-pear

 

http://zhangxugg-163-com.iteye.com/blog/1894990

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一组 PHP 编译参数,下面逐一解释: 1. --prefix=/www/server/php/74:指定 PHP 的安装路径,所有的 PHP 文件都会被安装在该目录下。 2. --with-config-file-path=/www/server/php/74/etc:指定 PHP 配置文件的路径,即 php.ini 文件所在的目录。这个目录通常会被设置为与 PHP 安装目录分离,以便于更新 PHP 时不会丢失自定义的配置。 3. --enable-fpm:启用 PHP-FPM,这是一种 PHP FastCGI 进程管理器,用于处理高并发的 PHP 应用程序。 4. --with-fpm-user=www:指定 PHP-FPM 进程所运行的用户,这里设置为 www 用户。 5. --with-fpm-group=www:指定 PHP-FPM 进程所运行的用户组,这里设置为 www 用户组。 6. --enable-mysqlnd:启用 MySQL Native Driver,这是一个 PHP 扩展,用于连接 MySQL 数据库。 7. --with-mysqli=mysqlnd:指定 MySQLi 扩展使用的驱动为 mysqlnd,同样用于连接 MySQL 数据库。 8. --with-pdo-mysql=mysqlnd:指定 PDO MySQL 扩展使用的驱动为 mysqlnd,同样用于连接 MySQL 数据库。 9. --with-iconv-dir:指定 iconv 库所在的目录,用于字符串编码转换。 10. --with-freetype:启用 FreeType 库,用于处理字体文件。 11. --with-jpeg:启用 JPEG 库,用于处理 JPEG 图像文件。 12. --with-zlib:启用 zlib 库,用于压缩和解压缩文件。 13. --with-libxml-dir=/usr:指定 libxml 库所在的目录。 14. --enable-xml:启用 XML 扩展,用于处理 XML 文件。 15. --disable-rpath:禁用 RPATH 功能,这是一种动态链接库的搜索路径,禁用可以增加 PHP 的安全性。 16. --enable-bcmath:启用 BCMath 扩展,用于进行任意精度数学计算。 17. --enable-shmop:启用 SHMOP 扩展,用于共享内存操作。 18. --enable-sysvsem:启用 SysV Semaphore 扩展,用于进程间通信。 19. --enable-inline-optimization:启用编译器优化,用于优化 PHP 代码的性能。 20. --with-curl:启用 cURL 扩展,用于处理 HTTP 请求和文件传输。 21. --enable-mbregex:启用多字节正则表达式扩展,用于处理非 ASCII 字符串的正则表达式匹配。 22. --enable-mbstring:启用多字节字符串扩展,用于处理非 ASCII 字符串。 23. --enable-intl:启用国际化扩展,用于处理多语言和地区设置。 24. --enable-ftp:启用 FTP 扩展,用于处理 FTP 传输。 25. --enable-gd:启用 GD 扩展,用于处理图像。 26. --with-openssl:启用 OpenSSL 扩展,用于处理加密和解密操作。 27. --with-mhash:启用 mhash 扩展,用于处理哈希函数。 28. --enable-pcntl:启用 PCNTL 扩展,用于处理进程控制操作。 29. --enable-sockets:启用 Sockets 扩展,用于进行网络通信。 30. --with-xmlrpc:启用 XML-RPC 扩展,用于进行远程过程调用。 31. --enable-soap:启用 SOAP 扩展,用于进行 Web 服务调用。 32. --with-gettext:启用 Gettext 扩展,用于处理多语言翻译。 33. --disable-fileinfo:禁用 Fileinfo 扩展,这是一个用于文件类型检测的扩展,禁用可以增加 PHP 的安全性。 34. --enable-opcache:启用 OPcache 扩展,用于缓存 PHP 代码,提高 PHP 应用程序的性能。 35. --with-sodium=/usr/local/libsodium:启用 Sodium 扩展,用于处理加密和解密操作。 36. --with-webp:启用 WebP 扩展,用于处理 WebP 图像文件。 37. --enable-mysqlnd-compression-support:启用 MySQLnd 压缩支持,用于压缩和解压缩数据库连接。 38. --with-png-dir:指定 PNG 库所在的目录,用于处理 PNG 图像文件。 39. --with-libmbfl:启用 libmbfl 库,这是一个用于处理多字节字符集的库。 40. --enable-zip:启用 Zip 扩展,用于处理 ZIP 压缩文件。 41. --with-pear:启用 PEAR 扩展,这是一个 PHP 扩展和应用程序库的管理工具。 42. --enable-maintainer-zts:启用 Maintainer ZTS 模式,这是一种线程安全模式,用于提高 PHP 的并发性能。 43. --without-gdbm:禁用 GDBM 支持,这是一个用于数据库操作的库,禁用可以减少 PHP 的依赖性。 这些编译参数的使用场景是在编译 PHP 时指定的,通常在安装 PHP 扩展时也需要指定相应的编译参数。有了这些编译参数,可以根据不同的应用场景和需求来定制 PHP,以提高 PHP 的性能和安全性。没有这些编译参数,则可能会导致某些功能无法使用或者性能较差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值