分享交流
合作共赢!

linux使用php动态安装模块mysqliso(extmysqlndmysqlndh 没有那个文件或目录

由于我先安装的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

得知路劲为/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

make时出错如下

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

我们用编辑器打开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/

我们来到/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

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//会出错make install时会出错

自己手动安装

#sudo find ./ -name mysqli.so

找到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/

剩下步骤同上

赞(0) 打赏
未经允许不得转载:琼杰笔记 » linux使用php动态安装模块mysqliso(extmysqlndmysqlndh 没有那个文件或目录

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏