Предупреждение PHP: Запуск PHP: Невозможно загрузить динамическую библиотеку '/usr/lib/php/20160303/zmq.so'

Предупреждение PHP: Запуск PHP: Невозможно загрузить динамическую библиотеку '/usr/lib/php/20160303/zmq.so'

При запуске php -vв Ubuntu 17.10 появляется сообщение об ошибке:

$ php -v

PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/20160303/zmq.so' - /usr/lib/php/20160303/zmq.so: 
undefined symbol: _zval_get_string_func in Unknown on line 0
PHP 5.6.33-1+ubuntu17.10.1+deb.sury.org+1 (cli) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend 
Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

locate zmq.soдает мне следующее:

$ locate zmq.so
/usr/lib/php/20160303/zmq.so
/usr/lib/x86_64-linux-gnu/libzmq.so
/usr/lib/x86_64-linux-gnu/libzmq.so.5
/usr/lib/x86_64-linux-gnu/libzmq.so.5.1.2

Если zmq.soон расположен в правильном каталоге, почему я продолжаю получать это сообщение об ошибке?

решение1

Это zmq.soиз расширения PECLЗМК. Как вы упомянули, он там находится, но не загружается. Если вы недавно обновили версию PHP, это могло вызвать проблему (это также могло произойти из-за обновления дистрибутива).

В любом случае, я думаю, лучше всего попробовать перестроить расширение с помощью следующих команд:

git clone git://github.com/mkoppanen/php-zmq.git
cd php-zmq
phpize && ./configure
make
sudo make install

# now we tell php to use this extension
echo "extension=zmq.so" >> /etc/php/{version_number}/mods-available/zmq.ini
sudo phpenmod zmq
sudo service apache2 restart #Since you also tagged this with apache2

Эту информацию я нашел по следующим ссылкам:

Связанный контент