必要条件:
1. PHP(5.6.40)编译时,需要添加该四项参数(--enable-mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd ),目的使用mysqlnd连接mysql数据库。
1.1. --with-mysql 针对 php 的数据库连接函数:mysql_connect
1.2. 在php-fpm.conf 配置文件中修改监听的端口与IP(listen = ip:port 或 listen = port)
2.Nginx服务器的站点目录与PHP服务器上的站点目录要路径一致(两台服务器上都有统一路径的站点目录)。
2.1. 也可以让Nginx与PHP服务器的站点目录都统一放在 NFS服务器上(这样就不需要Nginx及PHP服务器上分别都有一份内容相同及路径相同的站点目录)
2.2. 在nginx.conf 配置文件中
server{
...
root /Server/data/html/www ;
location ~* \.php?$
{ fastcgi_pass php_server_ip:port ;
fastcgi_index index.php;
include fastcgi.conf;
}
}
3.补充扩展
什么是 mysqlnd?
mysqlnd
(MySQL native driver) MySQL原生驱动,是由 PHP
提供的连接 mysql
数据库的驱动程序,用于代替 libmysql驱动程序。
为什么要使用 mysqlnd?
1. 原生支持
libmysq
驱动,依赖mysql
客户端库(libmysqlclient)。
为了使用 libmysql
驱动,需要在编译PHP
之前安装好 mysql
客户端库并指定其位置。
# 编译 php 使用 libmysql./configure --prefix=/usr/local/php \ --with-mysql=/path/to/mysql_config \ --with-mysqli=/path/mysql_config \ --with-pdo-mysql=/path/mysql_config \ # 其它参数省略... make && make install
使用 mysqlnd
则不必安装 mysql
客户端,因为PHP原生支持、直接在编译 php
时使用以下几个项参数即可:
# 编译 php 使用 mysqlnd./configure --prefix=/usr/local/php \ --with-config-file-path=/etc/ \ --enable-mysqlnd \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ # 其它参数省略... make && make install
2. 高级功能
mysqlnd
和 Zend
引擎高度集成,因此提供更多高级特性,以及有效利用Zend进行加速。
3. license 版权
libmysql
是 MySQL AB
公司开发的,现在版权属于 Oracle
公司,它使用 MYSQL License发布。mysqlnd
是由 Zend
公司开发并使用 PHP License发布的,避免 Oracle
版权问题。
扩展
1. 连接 mysql 数据库的 PHP扩展库:
mysql 扩展 (Original MySQL) 在
php 7.x
版本被移除。mysqli 增强扩展 (MySQL Improved Extension) 。
pdo_mysql (pdo for mysql) 从
5.4.0
开始默认使用 mysqlnd 驱动。
2. PDO 对象
PHP 数据对象 (PDO) 扩展,为PHP访问数据库定义了一个轻量级的一致接口。
PDO 提供了一个数据访问抽象层,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。
4.图解:
发表评论