PHP не будет компилироваться с драйвером MongoDB - PullRequest
1 голос
/ 06 июня 2019

Итак, я пытаюсь собрать PHP 5.5.9 с драйвером MongoDB 1.5 (я знаю, мы вернулись в 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 (неВерсия 2), чтобы я мог создать среду выполнения php для использования с функциями Lambda, и мне нужен скомпилированный в него драйвер mongodb.

Вот все команды, которые я использовал, когда я ssh'd всвежий экземпляр:

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 Ответ

2 голосов
/ 10 июня 2019

В качестве быстрого и грязного обходного пути вы можете попробовать заменить отсутствующую функцию зависимости "PHP_MONGODB_ADD_SOURCES" на "PHP_ADD_SOURCES" в файле mongo-php-driver / config.m4

Вот логическое обоснование:

  • PHP_MONGODB_ADD_SOURCES определяется в файле: scripts / autotools / m4 / php_mongodb.m4
  • Все, что делает эта функция, - это некоторая проверка входных данных, а затем вызывает либо PHP_ADD_SOURCES, либо PHP_ADD_SOURCES_X на тех же самых входных данных. Эти функции имеют источники из других зависимостей, которые могут существовать.
  • Версия "_X" выглядит менее распространенной. Так что просто найдите и замените PHP_MONGODB_ADD_SOURCES на PHP_ADD_SOURCES в config.m4
...