不重新编译为PHP安装MySQL模块

一台VPS,之前测试时安装过PHP,但什么模块都没有安,现在要在它的基础上安装MySQL,过程中遇到一些麻烦事,最终解决了记录下来存档备忘。

当初安装PHP的源码目录我没有删除,直接在此基础上安装:

1 进入php/ext/mysql

cd php/ext/mysql

2 执行phpize命令,这个命令一定得在php的模块目录下执行,在别的目录下执行会报错

phpize

执行完之后,这个目录就生成了一个configure脚本

3 收集信息,记下结果,待会用得到

which php-config
记下结果1

find / -name mysql.h
记下结果2

4 如果结果2没有找到,说明MySQL的开发库没有安装,将在这一步安装;如果已经安装直接跳到下一步

CentOS下:
yum install mysql-devel

UBUNTU下:
apt-get install libmysqlclient-dev

安装好之后再执行

find / -name mysql.h
记下结果2

5 开始配置

./configure --with-php-config=结果1 --with-mysql=结果2的前缀

这里有个坑,--with-mysql=后面不是写mysql的目录,而是它的前缀。比如我执行得到的结果2是:/usr/include/mysql/mysql.h,这里只需要写--with-mysql=/usr就可以了。我反复测试了半天,最终阅读configure脚本,才发现这个坑,真坑人啊。

6 编译

make && make install

顺利的话会提示:

Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-xxxxxxx/

7 修改php.ini

找到

;extension=php_mysql.dll

改成

extension=mysql.so

8 重启php-fpm

kill -USR2 12345

12345代表php-fpm主进程的ID

9 打开phpinfo(),可以看到MySQL已经成功安装了
 评论
 发表评论
姓   名: