编译安装php mysqli扩展
phpize
./configure && make && make install
遇到如下报错信息。
/bin/sh /usr/local/src/php-7.2.11/ext/mysqli/libtool --mode=compile cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/local/src/php-7.2.11/ext/mysqli -DPHP_ATOM_INC -I/usr/local/src/php-7.2.11/ext/mysqli/include -I/usr/local/src/php-7.2.11/ext/mysqli/main -I/usr/local/src/php-7.2.11/ext/mysqli -I/usr/local/server/php/include/php -I/usr/local/server/php/include/php/main -I/usr/local/server/php/include/php/TSRM -I/usr/local/server/php/include/php/Zend -I/usr/local/server/php/include/php/ext -I/usr/local/server/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/php-7.2.11/ext/mysqli/mysqli.c -o mysqli.lo
mkdir .libs
cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/local/src/php-7.2.11/ext/mysqli -DPHP_ATOM_INC -I/usr/local/src/php-7.2.11/ext/mysqli/include -I/usr/local/src/php-7.2.11/ext/mysqli/main -I/usr/local/src/php-7.2.11/ext/mysqli -I/usr/local/server/php/include/php -I/usr/local/server/php/include/php/main -I/usr/local/server/php/include/php/TSRM -I/usr/local/server/php/include/php/Zend -I/usr/local/server/php/include/php/ext -I/usr/local/server/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/php-7.2.11/ext/mysqli/mysqli.c -fPIC -DPIC -o .libs/mysqli.o
In file included from /usr/local/src/php-7.2.11/ext/mysqli/mysqli.c:34:0:
/usr/local/src/php-7.2.11/ext/mysqli/php_mysqli_structs.h:42:33: **fatal error: ext/mysqlnd/mysqlnd.h: No such file or directory**
#include "ext/mysqlnd/mysqlnd.h"
^
compilation terminated.
make: *** [mysqli.lo] Error 1
重点是看这句。fatal error: ext/mysqlnd/mysqlnd.h: No such file or directory ,在php扩展包里,找不到mysqlnd.h 库文件。
但是查看了mysqlnd目录后,发现文件都在。
这个时候在看报错信息里。/usr/local/src/php-7.2.11/ext/mysqli/php_mysqli_structs.h:42:33 ,进入这个文件,查看42行。
#include "ext/mysqlnd/mysqlnd.h
这个是用C语言写的。从相对路径ext 加载库文件mysqlnd.h ,但是mysqli目录里没有ext,这块我们通过创建软链接的方式来解决:
我主机里的php安装包放在/usr/local/src/目录里
ln -s /usr/local/src/php-7.2.11/ext/ /usr/local/src/php-7.2.11/ext/mysqli
软链接创建后,当在/usr/local/src/php-7.2.11/ext/mysqli 需要加载ext 目录的文件时,就会直接进入/usr/local/src/php-7.2.11/ext/ 去加载了。
现在重新编译安装
make clean //先清除一下
./configure && make && make install
出现下面的提示信息,代表安装完成。
然后进入php.ini 添加扩展指令
最后重启php服务,安装完成。
来源:oschina
链接:https://my.oschina.net/jiemowudi/blog/3139134