php编译安装mysqli扩展,报fatal error: ext/mysqlnd/mysqlnd.h: No such file or directory
< 返回列表时间: 2019-12-09来源:OSCHINA
【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>>>
编译安装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服务,安装完成。
热门排行