CentOS6.3 PHP和MySQL编译完成后添加PHP的MySQL扩展:
1.进入已安装的PHP的源码目录
cd php-5.6.9 (因为服务器上安装完之后源码已经被删除,故自己又上传一个php-5.6.9.tar.gz进行解压,此处注意版本一定要和系统已经安装的一致)
2.进入mysql的扩展库目录
cd ext/mysql/
3.运行phpize在当前目录生成configure
/usr/local/m1905/php/bin/phpize
此为安装按成后的php目录的phpize的地址,根据自己的情况进行修改
若不知道PHP的安装目录可通过ps -ef|grep php 查看
4.运行php配置脚本
./configure --with-php-config=/usr/local/m1905/php/bin/php-config
此处见很多网上的文章,喜欢使用
./configure --with-php-config=/usr/local/m1905/php/bin/php-config --with-mysql=/usr --with-zlib-dir=/usr/local/m1905/php/lib/php/extensions/no-debug-non-zts-20131226
亲测之后,发现此种命令虽然可以达到添加扩展的效果,但是麻烦而且容易引发各种问题,需要逐一的解决。
自己在实际运行这条长的命令时遇到的问题在此记录一下:
第一个问题:
没有mysql.h
解决方案:
yum install mysql-devel (添加mysql.h文件到/usr/include/mysql/mysql.h)
第二个问题:
/usr/lib/下无libmysqlclient.so
解决方案:
ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so
(系统默认到/usr/lib下查找libmysqlclient.so,但64为系统此文件在lib64中,需要做软连接)
libmysqlclient.so的版本可以自己到/usr/lib64/mysql/查看
5.编译生成mysql.so
make && make install
编译完成后会自动将mysql.so文件添加到PHP的扩展文件目录里
我的目录是在
/usr/local/m1905/php/lib/php/extensions/no-debug-non-zts-20131226
6.修改php.ini在最后一行添加
[mysql]
extension = mysql.so (我的php.ini的文件目录为/usr/local/m1905/php/etc/php.ini)
7.重启服务(如果已经有开机运行脚本,条件允许的话也可以通过直接重启服务器)