
Ubuntu 17.10에서 실행하면 php -v
오류 메시지가 나타납니다.
$ 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 확장에서 가져온 것입니다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
다음 링크에서 이 정보를 찾았습니다.