我正在尝试从 Composer 为我的 laravel 项目安装 mongodb 依赖项,并且需要安装 mongodb 驱动程序。我在 ubuntu 14.04 上使用 AMPPS 3.6,默认情况下它具有 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
,我认为这个库阻止了我。
仅供参考:我在 mac OS sierra 上使用 AMPPS 3.6,并且运行没有任何问题。
这是我启用的 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
有没有什么办法解决这一问题?
提前致谢
答案1
我找到了解决这个问题的方法,我将它发布在这里以供其他人使用。
从 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
根目录。
答案2
我做了什么:
- 从 AMPPS 控制中心 -> PHP -> 设置图标(轮子)-> 单击 PHP 扩展图标。
- 弹出一个名为“扩展”的窗口。
- 只需取消勾选并重新勾选所有内容,然后点击“应用”。就这么简单!轻松无忧。
这可能会自动刷新符号链接......
希望这可以帮助。