PHP 不会与 MongoDB 驱动程序一起编译

标签 php mongodb compiler-errors configure php-5.5

所以我正在尝试使用 MongoDB 驱动程序 1.5 构建 PHP 5.5.9(我知道,我们回到了 2014 年!)但是当我运行 ./configure 时遇到错误:

检查是否启用 MongoDB 支持...是
./configure:第 59477 行:意外标记 src/libmongoc/src/common/附近的语法错误,'
./configure: line 59477: PHP_MONGODB_ADD_SOURCES(src/libmongoc/src/common/, $PHP_MONGODB_COMMON_SOURCES, $PHP_MONGODB_BUNDLED_CFLAGS)'

好像应该有一个函数 PHP_MONGODB_ADD_SOURCES 在配置脚本中不存在......我该如何解决这个问题?

我在 AWS Linux AMI(不是第 2 版)上运行它,这样我就可以创建一个用于 Lambda 函数的 php 运行时,并且我需要将 mongodb 驱动程序编译到其中。

这是我在 ssh 进入新实例时使用的所有命令:

须藤百胜更新 -y
须藤百胜安装 -y\
pcre.x86_64\
libxml2-开发\
libmcrypt-devel.x86_64\
bzip2-devel.x86_64\
libcurl-devel.x86_64\
openssl-devel.x86_64\
libpng-devel.x86_64\
libicu-devel.x86_64\
libedit-devel.x86_64\
readline-devel.x86_64\
git.x86_64\
php-devel.x86_64

sudo yum groupinstall “开发工具”

curl -o php-5.5.9.tar.gz https://www.php.net/distributions/php-5.5.9.tar.gz
tar xvzf php-5.5.9.tar.gz
cd php-5.5.9

#必须安装php才能获得phpize!
须藤 ./configure --prefix=/usr\
--sysconfdir=/等\
--with-config-file-path=/etc
须藤制作
须藤使安装

git 克隆 https://github.com/mongodb/mongo-php-driver.git
cd mongo-php-驱动程序
git checkout -b v1.5
git子模块更新--init
php化
须藤 ./配置
sudo 全部
须藤使安装

光盘../../
rm配置
./buildconf --force
须藤 ./configure --prefix=/usr\
--sysconfdir=/等\
--with-config-file-path=/etc\
--with-mcrypt\
--启用-bcmath\
--with-bz2\
--启用日历\
--启用-ctype\
--带 curl \
--enable-dba=共享\
--启用域\
--启用-exif\
--启用文件信息\
--启用-ftp\
--with-gd\
--with-gettext\
--启用哈希\
--with-iconv\
--启用国际\
--启用-json\
--启用-libxml\
--启用mbstring\
--with-mhash\
--启用-mysqlnd\
--with-openssl\
--with-pcre-正则表达式\
--启用-pdo\
--with-pdo-mysql\
--启用法尔\
--启用-posix\
--with-readline\
--启用 session \
--启用-shmop\
--启用-simplexml\
--启用肥皂\
--启用套接字\
--启用-sysvmsg\
--启用标记器\
--启用-wddx\
--启用-xml\
--启用-xmlreader\
--启用-xmlwriter\
--启用-opcache\
--启用压缩\
--with-zlib\
--启用-sysvsem\
--启用-sysvshm\
--启用-mongodb

提前致谢!

最佳答案

作为一种快速而简单的解决方法,您可以尝试在文件 mongo-php-driver/config.m4 中用“PHP_ADD_SOURCES”替换缺失的依赖函数“PHP_MONGODB_ADD_SOURCES”

理由如下:

  • PHP_MONGODB_ADD_SOURCES 在文件中定义:scripts/autotools/m4/php_mongodb.m4
  • 该函数所做的只是一些输入验证,然后在相同的输入上调用 PHP_ADD_SOURCES 或 PHP_ADD_SOURCES_X。这些函数似乎具有来自可能存在的其他依赖项的来源。
  • “_X”版本似乎不太常见。因此,只需在 config.m4
  • 中将 PHP_MONGODB_ADD_SOURCES 替换为 PHP_ADD_SOURCES

    关于PHP 不会与 MongoDB 驱动程序一起编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56484286/

    相关文章:

    javascript - 从表中查询值

    php - 连接到 sandbox.2checkout.com :443 时出现未知 SSL 协议(protocol)错误

    node.js - Mongod : inserting entry with customer _id (monk/node. js)

    mongodb - mongoimport 选择字段类型

    java - 类型转换时不一致(错误: Incompatible types)

    php - Mysql 将多个插入语句转换为一个

    php - 显示动态创建路径中的图像

    javascript - 无法使用异步、nodejs 和 mongodb 更改 javascript 对象属性

    Java List 反序列化并返回对象会出现不兼容类型错误

    asp-classic - ASP vb编译错误800A03EA