【问题标题】:PHP will not compile with MongoDB driverPHP 不会与 MongoDB 驱动程序一起编译
【发布时间】:2019-06-06 19:56:35
【问题描述】:

所以我正在尝试使用 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 \ --带卷曲\ --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 \ --启用会话\ --启用-shmop \ --启用-simplexml \ --启用肥皂\ --启用套接字\ --启用-sysvmsg \ --启用标记器\ --启用-wddx \ --启用-xml \ --启用-xmlreader \ --启用-xmlwriter \ --启用-opcache \ --启用压缩\ --with-zlib \ --启用-sysvsem \ --启用-sysvshm \ --启用-mongodb

提前致谢!

【问题讨论】:

    标签: php mongodb compiler-errors configure php-5.5


    【解决方案1】:

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

    原因如下:

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

    【讨论】:

    • 虽然这不是我使用的解决方案,但它确实为我指明了正确的方向。我最终做的是将 scripts/autotools/m4/php_mongodb.m4 的内容复制到 config.m4 的顶部并编译。现在我将对其进行测试,看看它是否真的有效。感谢您的回复!
    猜你喜欢
    • 2016-03-13
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2018-01-13
    • 2016-07-25
    • 2017-05-17
    • 2017-08-06
    相关资源
    最近更新 更多