环境 Centos7 + php2.7.2(核心) + php-fpm + nginx
一 ,简述
1,我的 php 环境使用命令 ./configure --prefix=/root/software/php -enable-fpm 配置的,这样安装的缺少很多扩展,其中
mysql 数据库的访问扩展就需要自己去编译安装,我们可以在 源码包的 ext 文件夹下看见这些依赖,我们可以自行编
译安装
2,在以前的项目中,访问数据库的驱动一般使用 libmysqlclient 作为访问基础,这使得我们在编译 php 数据库访问模块
如 mysqli 和 pdo_mysql 时,需要先安装 mysql 数据库或者 mysql 的客户端访问工具,这使得 php 环境和数据库分离
的开发方式变得有些麻烦
3,从 php 5.3 版本以后,php 源码包中多了一个名为 mysqlnd 的扩展作为 mysql 数据库的访问基础,使得我们无需通过
mysql 的客户端就能访问 mysql 数据库,并且该扩展性能更好,对于 mysqli 和 pdo_mysql 扩展的支持性也更好
二,安装扩展的命令介绍
1,我们需要将 php 的安装目录下的 bin 目录配置到环境变量下
vim /root/.bash_profile 在文件的最后一行添加如下红框内的代码,/root/software/php 为本人测试环境下 php 的安装路径
保存后从新运行该文件 => . /root/.bash_profile
2,我们查看 bin 目录下是否存在以下两个命令 phpize 和 php-config 两个命令
3,一般 php 5.3 以后的版本都自带,如果没有,请自行安装,不会就百度
三,安装 openssl 扩展
01,openssl 扩展是 mysqnd 扩展的依赖,安装 mysqlnd 前需要先安装
02,openssl 扩展依赖 openssl 和 openssl-devel,如果没有可以先用 yum 进行安装
yum -y install openssl openssl-devel
03,然后进入到源码包的 ext 目录下,ls 查看目录内容,这里有很多我们会常用到的扩展
04,进入到 openssl 文件夹,查看是否有 config.m4 文件,如果没有找名字相似的文件,拷贝一份命名为 config.m4
05,执行 phpize 命令,可能会出现如下错误,我们需要先安装依赖 => yum -y install autoconf 然后在执行 phpize
06,如果一切正常,目录下会生成了 configure 的文件
07,我们运行它 => ./configure, 期间如果提示缺少什么依赖,yum 安装一下即可,再次执行
08,没有任何报错后,我们执行 make 和 make install 安装,会返回一个地址,这就代表扩展安装成功了
09,我们用 ls 命令查看该地址可以看见刚刚编译好的 so 文件
10,在 php.ini 加入如下代码 ,重启 php-fpm 即可,我们也用 php -m 查找刚刚安装的扩展是否存在
四,安装 mysqlnd
01,进入到源码包下的 ext 下的 mysqlnd 目录
02,查看发现没有 config.m4 只有 config9.m4 => cp config9.m4 config.m4
03,phpize => ./configure
04,这里坑你会出错,需修改一下全局变量
05,升级 yum 源
rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm
06,export PHP_OPENSSL_DIR=yes