Когда я выполняю 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 находится в правом каталоге, почему я продолжаю получать это сообщение об ошибке?
zmq.so - из расширения PECL ZMQ. Как вы упомянули, он находится там, но это не погрузка. Если вы недавно обновили свою версию 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
Я нашел эту информацию по следующим ссылкам:
https://github.com/mkoppanen/php-zmq/issues/147 https: // eole-io.github.io/sandstone-doc/install-zmq-php-linuxzmq.so - из расширения PECL ZMQ. Как вы упомянули, он находится там, но это не погрузка. Если вы недавно обновили свою версию 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
Я нашел эту информацию по следующим ссылкам:
https://github.com/mkoppanen/php-zmq/issues/147 https: // eole-io.github.io/sandstone-doc/install-zmq-php-linux