无法使用mysqli扩展编译PHP 5.2

时间:2013-11-28 12:28:17

标签: php mysqli php-extension

我正在使用mysql扩展名mysqli

编译PHP 5.2版

下面是步骤

  1. 配置
  2. sudo ./configure --with-mysqli = / opt / mysql / server-5.1 / bin / mysql_config

    [它工作正常的mysql版本是5.1我也尝试了最新]

    1. 制作
    2. 制作

      [在拍下吼叫错误之后]

      -lmysqlclient -lz -lcrypt -lnsl -lm -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lcrypt -o sapi / cgi / php-cgi ext / mysqli / mysqli_repl.o:在函数zif_mysqli_disable_reads_from_master': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:43: undefined reference to中mysql_disable_reads_from_master' ext / mysqli / mysqli_repl.o:在函数zif_mysqli_disable_rpl_parse': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:59: undefined reference to中mysql_disable_rpl_parse' ext / mysqli / mysqli_repl.o:在函数zif_mysqli_enable_reads_from_master': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:76: undefined reference to mysql_enable_reads_from_master'中 ext / mysqli / mysqli_repl.o:在函数zif_mysqli_enable_rpl_parse': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:93: undefined reference to中mysql_enable_rpl_parse' ext / mysqli / mysqli_repl.o:在函数zif_mysqli_master_query': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:111: undefined reference to mysql_master_query'中 ext / mysqli / mysqli_repl.o:在函数zif_mysqli_rpl_parse_enabled': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:130: undefined reference to中mysql_rpl_parse_enabled' ext / mysqli / mysqli_repl.o:在函数zif_mysqli_rpl_probe': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:147: undefined reference to mysql_rpl_probe'中 ext / mysqli / mysqli_repl.o:在函数zif_mysqli_rpl_query_type': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:168: undefined reference to mysql_rpl_query_type'中 ext / mysqli / mysqli_repl.o:在函数zif_mysqli_slave_query': /usr/local/src/php5-build/php-5.2.5/ext/mysqli/mysqli_repl.c:207: undefined reference to mysql_slave_query'中 collect2:ld返回1退出状态 make: * [sapi / cgi / php-cgi]错误1

      请让我知道解决方案

3 个答案:

答案 0 :(得分:1)

我的猜测是你的MySQL头文件来自错误版本的MySQL客户端。您尝试与PHP 5.2一起构建的php-mysql扩展已超过5年,并且需要来自相应MySQL版本的库和头文件。只是做'apt-get install mysql-client mysql-client-dev'之类的东西会安装一个最新版本,所以你可能需要下载一个旧版本并自己构建它并告诉./configure在哪里找到mysql头文件(类似./configure-with-mysqli = / path / to / old / headers)

编辑:请注意,配置标志非常重要,否则您仍会包含错误的标头(基于您的系统包含路径)

答案 1 :(得分:0)

我已经运行了这个命令

sudo ./configure --disable-all --with-mysql = / opt / mysql / server-5.1 / --with-mysqli = / opt / mysql / server-5.1 / bin / mysql_config

并且它在我之前的命令中工作我错过了/opt/mysql/server-5.1 /

答案 2 :(得分:0)

删除默认的mysqlclient-dev:

sudo apt-get remove libmysqlclient-dev

安装libmysqlclient-dev_5.6.25

sudo wget http://launchpadlibrarian.net/212189147/libmysqlclient-dev_5.6.25-0ubuntu1_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.6.25-0ubuntu1_amd64.deb
wget http://launchpadlibrarian.net/212189159/libmysqlclient18_5.6.25-0ubuntu1_amd64.deb
sudo dpkg -i libmysqlclient18_5.6.25-0ubuntu1_amd64.deb

我很好!