Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用mysqli扩展编译PHP5.2_Php_Mysqli_Php Extension - Fatal编程技术网

无法使用mysqli扩展编译PHP5.2

无法使用mysqli扩展编译PHP5.2,php,mysqli,php-extension,Php,Mysqli,Php Extension,我正在使用mysql扩展mysqli编译PHP 5.2版 下面是步骤 配置 sudo./configure--with mysqli=/opt/mysql/server-5.1/bin/mysql\u config [它运行良好mysql版本是5.1,我也尝试了最新版本] 制造 制造 [犯了下面的错误后,我得到] -lmysqlclient-lz-lcrypt-lnsl-lm-lxml2-lcrypt-lxml2-lxml2-lcrypt-o sapi/cgi/php-cgi ext/mysql

我正在使用mysql扩展mysqli编译PHP 5.2版

下面是步骤

  • 配置
  • sudo./configure--with mysqli=/opt/mysql/server-5.1/bin/mysql\u config

    [它运行良好mysql版本是5.1,我也尝试了最新版本]

  • 制造
  • 制造

    [犯了下面的错误后,我得到]

    -lmysqlclient-lz-lcrypt-lnsl-lm-lxml2-lcrypt-lxml2-lxml2-lcrypt-o sapi/cgi/php-cgi ext/mysqli/mysqli_repl.o:在函数
    zif_mysqli_disable_读取_来自_master':
    /usr/local/src/php5 build/php-5.2.5/ext/mysqli/mysqli_repl.c:43:未定义对
    mysql_disable_reads_from_master's的引用 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:未定义对
    mysql_disable_rpl_parse'的引用 ext/mysqli/mysqli_repl.o:在函数
    zif_mysqli_enable_读取_主节点中:
    /usr/local/src/php5 build/php-5.2.5/ext/mysqli/mysqli_repl.c:76:未定义对
    mysql_enable_reads_from_master's的引用 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:对
    mysql\u enable\u rpl\u 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:未定义对
    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:未定义对
    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:未定义对
    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\u repl.c:168:未定义对
    mysql\u rpl\u query\u 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:未定义对
    mysql_slave_query'的引用 collect2:ld返回了1个退出状态 make:[sapi/cgi/php cgi]错误1


    请让我知道解决方案

    我猜您包含的头文件来自错误版本的MySQL客户端。您试图与PHP5.2一起构建的php mysql扩展已经有5年以上的历史,需要相应mysql版本的库和头文件。只需执行类似“apt get install mysql client mysql client dev”的操作即可安装最新版本,因此您可能需要下载较旧的版本并自行构建,然后告诉./configure在哪里可以找到mysql头(类似于./configure-with mysqli=/path/to/old/headers)


    编辑:请注意,configure标志非常重要,否则您仍然会包含错误的头文件(根据您的系统包含路径)

    我猜您的包含头文件的MySQL客户端版本是错误的。您试图与PHP5.2一起构建的php mysql扩展已经有5年以上的历史,需要相应mysql版本的库和头文件。只需执行类似“apt get install mysql client mysql client dev”的操作即可安装最新版本,因此您可能需要下载较旧的版本并自行构建,然后告诉./configure在哪里可以找到mysql头(类似于./configure-with mysqli=/path/to/old/headers)


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

    我已运行此命令

    sudo./configure--disable all--with mysql=/opt/mysql/server-5.1/--with mysqli=/opt/mysql/server-5.1/bin/mysql\u config


    它在我以前的命令中工作,我缺少/opt/mysql/server-5.1/

    我已经运行了这个命令

    sudo./configure--disable all--with mysql=/opt/mysql/server-5.1/--with mysqli=/opt/mysql/server-5.1/bin/mysql\u config


    它在我以前的命令中工作,我缺少/opt/mysql/server-5.1/

    删除默认的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
    

    我很好

    删除默认的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
    

    我很好

    为什么您仍在构建5.2版?它不再受支持。为什么不升级到一个受支持的版本呢?我们有一个老项目仍然在这个版本上运行。我以前遇到过这个问题(必须构建过时的PHP版本)。首先确保您构建的是5.2的最新版本。我不确定它最近是否接受过任何类型的遗留支持,因此您可能会被存档中的旧版本卡住。为什么您仍在构建5.2版?它不再受支持。为什么不升级到一个受支持的版本呢?我们有一个老项目仍然在这个版本上运行。我以前遇到过这个问题(必须构建过时的PHP版本)。首先确保您构建的是5.2的最新版本。我不确定它最近是否接受过任何类型的遗留支持,因此您可能会被存档中的旧版本卡住。