linux使用php动态安装模块mysqli.so(ext/mysqlnd/mysqlnd.h: 没有那个文件或目录)

转载:https://blog.csdn.net/qq_26046771/article/details/78301360

由于我先安装的php,再安装的mysql!

正常过程:
1、安装mysql
2、安装php configure时带–with-mysql参数

现在我不想重装,因此使用phpize动态安装mysqli,php版本为php-7.1.10

1先查看php下phpize路径

#切换到php安装目录
cd /usr/local/php
find ./ -name phpize
显示如下
./bin/phpize

    1
    2
    3
    4
    5

得知路劲为/usr/local/php/bin/phpize

2切换到php源码包目录php-7.1.10下

cd ext/mysqli
#运行phpize在此目录下生成configure文件
/usr/local/php/bin/phpize
#configure
./configure --with-php-config=/usr/local/php/bin/php-config -with-mysqli=/usr/local/mysql/bin/mysql_config
#make
sudo make

    1
    2
    3
    4
    5
    6
    7
    8
    9

make时出错如下

/home/phoenix/下载/php-7.1.10/ext/mysqli/php_mysqli_structs.h:42:36: fatal error: ext/mysqlnd/mysqlnd.h: 没有那个文件或目录

    1

我们用编辑器打开php_mysqli_structs.h
这里写图片描述
解决办法:
方法一
在mysqli文件夹下新建ext子文件夹,并把mysqli文件夹的父文件夹下的mysqlnd复制到刚新建的文件夹下,再次运行

#make
sudo make
#make install
sudo make install
#make install运行后给出消息
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

    1
    2
    3
    4
    5
    6

我们来到/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/目录下
发现多了mysqli.so

3、编辑php.ini

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303"
extension=mysqli.so

    1
    2

4、如果是niginx+php需重新启动php-fpm
如果是apache+php只需要重启httpd .(apache)

方法二
将Makefile复制到/home/phoenix/下载/php-7.1.10下

cd /home/phoenix/下载/php-7.1.10
sudo make
sudo make install//会出错

    1
    2
    3
    4

make install时会出错
自己手动安装

#sudo find ./ -name mysqli.so

    1

找到mysqli.so(.so等同于win下.dll),将文件mysqli.so复制到/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303目录下

cp ./ext/mysqli/modules/mysqli.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

    1

剩下步骤同上
---------------------
作者:phoenix8956
来源:CSDN
原文:https://blog.csdn.net/qq_26046771/article/details/78301360
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值