Невозможно загрузить динамическую библиотеку mongodb.so с помощью AMPPS в Ubuntu 14.04
Я пытаюсь установить зависимость mongodb от composer для моего проекта laravel, и для этого требуется установить драйвер mongodb. Я использую AMPPS 3.6 в Ubuntu 14.04, который по умолчанию имеет расширение mongodb.so, а также mongo.so, но моя проблема заключается в том, что я получаю версию своего php, запустив: php -v
Я получаю эту ошибку:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/ampps/php-7.0/lib/extensions/ext/mongodb.so' - libssl.so.6: cannot open shared object file: No such file or directory in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/ampps/php-7.0/lib/extensions/ext/mongodb.so' - libssl.so.6: cannot open shared object file: No such file or directory in Unknown on line 0
когда я хочу увидеть модули php: php -m
Я не вижу расширения mongodb в списке модулей.
Как вы можете видеть, что-то связано с libssl.so.6
и я думаю, что эта библиотека меня останавливает.
К вашему сведению: я использую AMPPS 3.6 на Mac OS Sierra, и он работает без проблем.
Это список моих расширений php:
extension=bz2.so
extension=curl.so
extension=gettext.so
extension=intl.so
extension=imap.so
extension=ldap.so
extension=mbstring.so
extension=exif.so ; Must be after mbstring as it depends on it
extension=mysqli.so
extension=pdo.so
extension=pdo_mysql.so
extension=pdo_sqlite.so
extension=shmop.so
extension=soap.so
extension=sockets.so
extension=sqlite3.so
extension=tidy.so
extension=xsl.so
extension=gd.so
extension=zlib.so
extension=xmlrpc.so
extension=wddx.so
extension=tokenizer.so
extension=sysvshm.so
extension=sysvsem.so
extension=pcntl.so
extension=openssl.so
extension=mongodb.so
extension=mcrypt.so
extension=iconv.so
extension=ftp.so
extension=dba.so
extension=ctype.so
extension=calendar.so
extension=bcmath.so
Есть ли способ это исправить?
заранее спасибо
2 ответа
Я нашел решение этой проблемы, я публикую его здесь, чтобы другие люди могли его использовать.
Из команды ldd выглядит, что бинарный файл ищет в /lib/x86_64-linux-gnu, а не в /usr/lib/x86_64-linux-gnu, где вы нашли символическую ссылку.
Попробуйте запустить их и посмотреть, если вы по-прежнему получаете ту же ошибку:
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.6
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.6
ln -s
создает символическую ссылку из libssl.so.1.0.0
двоичный в libssl.so.6
имя файла в /lib/x86_64-linux-gnu
каталог. sudo
разрешения необходимы как /lib
является корневым каталогом
Что я сделал:
- Из Центра управления AMPPS -> PHP -> значок настроек (колесо) -> щелкните значок расширения PHP.
- Появится окно "Расширения".
- Просто снимите флажок и перепроверьте все и нажмите "Применить". Это все! Без проблем.
Это, вероятно, автоматически обновляет символические ссылки...
Надеюсь это поможет.