Segfault в расширении mongodb 1.1.2/1.1.3-dev с PHP 7 FPM под gentoo

У меня возникла странная проблема с gentoo. Расширение Mongodb отлично работает в apache2 и cli, но fpm не запускается: /etc/init.d/php-fpm restart * Тестирование конфигурации PHP FastCGI Process Manager ... [30-Jan-2016 13:59:47] ПРИМЕЧАНИЕ : тест файла конфигурации /etc/php/fpm-php7.0/php-fpm.conf прошел успешно

zend_mm_heap поврежден [ !! ]

php -v
PHP 7.0.2-pl5-gentoo (cli) (built: Jan 30 2016 13:16:21) ( ZTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Вот информация из кли:

php -i|grep mongo
mongodb
mongodb support => enabled
mongodb version => 1.1.3-dev
mongodb stability => devel
libmongoc version => 1.3.1-dev
mongodb.debug => no value => no value

Я даже компилировал mongodb без sasl, но результат тот же. Расширение Mongodb было скомпилировано вручную следующим образом (моя система x86_64): git clone https://github.com/mongodb/mongo-php-driver.git cd mongo-php-driver; синхронизация подмодуля git && обновление подмодуля git --init

  • Запустите phpize:

phpize --очистить phpize

  • Удалите файл aclocal.m4:

кв.м. aclocal.m4

  • Запустите aclocal и autoconf:

аклокал автоконф

  • Теперь настройте, создайте и установите пакет:

./configure --without-mongodb_sasl (я пробовал с этим и без него) make make install

добавить extension=mongodb.so в php.ini: /etc/php/fpm-php7.0/php.ini перезапустить php-fpm: /etc/init.d/php-fpm перезапустить

Самое странное, что если я запускаю процесс php-fpm с gdb для отслеживания, расширения работают.

gdb -q /usr/lib/php7.0/bin/php-fpm
Reading symbols from /usr/lib/php7.0/bin/php-fpm...(no debugging symbols found)...done.
(gdb) set args --pid /run/php-fpm.pid --fpm-config /etc/php/fpm-php7.0/php-fpm.conf -c /etc/php/fpm-php7.0/
(gdb) run
Starting program: /usr/lib64/php7.0/bin/php-fpm --pid /run/php-fpm.pid --fpm-config /etc/php/fpm-php7.0/php-fpm.conf -c /etc/php/fpm-php7.0/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Inferior 1 (process 4075) exited normally]
(gdb)

Любая помощь приветствуется


person Andrei Nastasa    schedule 30.01.2016    source источник
comment
Лучше всего открыть вопрос на github; PHP 7 и его поддержка mongodb очень несовершенны, скорее всего, вы обнаружили какую-то ошибку, а не проблему с конфигурацией. Ошибка zend_mm_heap corrupted говорит мне об этом, этого никогда не должно происходить.   -  person Joe Watkins    schedule 31.01.2016
comment
Спасибо за ваш ответ. Я уже сделал это вчера: github.com/mongodb/mongo-php-driver/ Issues/212, но пока нет ответа.   -  person Andrei Nastasa    schedule 31.01.2016


Ответы (1)


Для ленивых гуглов это исправлено. в версии 1.1.5 драйвера php-mongodb

person Thomas Zwaagstra    schedule 31.03.2016