ubuntu 16.04 LTS 怎么编译 mysqli 生成 mysqli.so??

php7.1.0.tar.bz2 # 源码包

我是按照这样的步骤生成的 mysqli.so 文件的(此前已经成功生成了 pdo.so , pdo_mysql.so , mbstring.so):

cd phpDir # php.tar.bz2 解压后的目录
cd ./ext/mysqli  # 进入 mysqli 扩展目录(未编译安装)
phpize       # 生成 configure 文件
./configure  # 生成 编译时配置文件
make         # 编译,这一步会出错!
             # fetalError:ext/mysqlnd/mysqlnd.h:没有那个文件或目录
             # 然而实际上,那个文件是存在的!路径: phpDir/ext/mysqlnd/mysqlnd.h
             # 但由于 make 命令是在 phpDir/ext/mysqli 下执行的
             # 所以, ext/mysqlnd/mysqlnd.h 被认为是: phpDir/ext/mysqli/ext/mysqlnd/mysqlnd.h
             # 因此,造成这个错误!
             # 卡在这一步差不多半天了。
             # 源码编译安装,网络上这方面的资料很少(我没找到...)
             # 不知道各位是如何解决的??
             # 拜求了
make install # 生成 mysqli.so 文件

以上方法来自于(php官网手册):

clipboard.png

clipboard.png

求大神解决!!??

阅读 4k
1 个回答

该问题已解决。

在编译 PHP 的时候就需要开启 mysqlipdo-mysql 扩展,后面再添加的扩展无效(本人测试无效,欢迎指正)。

cd phpDir
sudo ./configure --with-apxs2=/usr/local/apache2/apxs
            --enable-mysqli=mysqlnd     # 核心,必须加
            --enable-pdo-mysqlmysqnd    # 核心,必须加
sudo make
sudo make install
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题