Advertencia de PHP: Inicio de PHP: no se puede cargar la biblioteca dinámica '/usr/lib/php/20160303/zmq.so'

Advertencia de PHP: Inicio de PHP: no se puede cargar la biblioteca dinámica '/usr/lib/php/20160303/zmq.so'

Cuando ejecuto php -ven Ubuntu 17.10, aparece un mensaje de error:

$ 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.some da lo siguiente:

$ 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

Si zmq.soestá ubicado en el directorio correcto, ¿por qué sigo recibiendo ese mensaje de error?

Respuesta1

El zmq.soes de la extensión PECL.ZMQ. Como mencionaste, se encuentra allí pero no se carga. Si actualizó su versión de PHP recientemente, esto podría haber causado el problema (esto también podría haber sucedido a través de una actualización de la distribución).

De cualquier manera, creo que lo mejor que puedes hacer es intentar reconstruir la extensión con estos comandos:

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

Encontré esta información en los siguientes enlaces:

información relacionada