PHP无法使用MongoDB驱动程序进行编译

时间:2019-06-06 19:56:35

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

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

checking whether to enable MongoDB support... yes
./configure: line 59477: syntax error near unexpected token 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(而不是Verson 2)上运行它,以便可以创建用于Lambda函数的php运行时,并且需要将mongodb驱动程序编译到其中。

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

sudo yum update -y
sudo yum install -y \
   pcre.x86_64 \
   libxml2-devel \
   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 "Development Tools"

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

#have to install php to get phpize!
sudo ./configure --prefix=/usr \
            --sysconfdir=/etc \
            --with-config-file-path=/etc 
sudo make
sudo make install


git clone https://github.com/mongodb/mongo-php-driver.git
cd mongo-php-driver
git checkout -b v1.5
git submodule update --init
phpize
sudo ./configure
sudo make all
sudo make install

cd ../../
rm configure
./buildconf --force
sudo ./configure --prefix=/usr \
            --sysconfdir=/etc \
            --with-config-file-path=/etc \
            --with-mcrypt \
            --enable-bcmath \
            --with-bz2 \
            --enable-calendar \
            --enable-ctype \
            --with-curl \
            --enable-dba=shared \
            --enable-dom \
            --enable-exif \
            --enable-fileinfo \
            --enable-ftp \
            --with-gd \
            --with-gettext\
            --enable-hash \
            --with-iconv \
            --enable-intl \
            --enable-json \
            --enable-libxml \
            --enable-mbstring \
            --with-mhash \
            --enable-mysqlnd \
            --with-openssl \
            --with-pcre-regex \
            --enable-pdo \
            --with-pdo-mysql \
            --enable-phar \
            --enable-posix \
            --with-readline \
            --enable-session \
            --enable-shmop \
            --enable-simplexml \
            --enable-soap \
            --enable-sockets \
            --enable-sysvmsg \
            --enable-tokenizer \
            --enable-wddx \
            --enable-xml \
            --enable-xmlreader \
            --enable-xmlwriter \
            --enable-opcache \
            --enable-zip \
            --with-zlib \
            --enable-sysvsem \
            --enable-sysvshm \
            --enable-mongodb

谢谢!

1 个答案:

答案 0 :(得分:2)

作为一种快速而又变通的解决方法,您可以尝试使用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_ADD_SOURCES查找替换PHP_MONGODB_ADD_SOURCES