web-dev-qa-db-ja.com

Ubuntu 14.04でAMPPSを使用して動的ライブラリmongodb.soをロードできない

composerプロジェクトのlaravelからmongodb依存関係をインストールしようとしていますが、mongodbドライバーをインストールする必要があります。デフォルトでmongodb.so拡張子とmongo.soもあるubuntu 14.04でAMPPS 3.6を使用していますが、私の問題は次のコマンドを実行して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 -mでphpモジュールを表示したい場合、モジュールのリストにmongodbの拡張が表示されません。

ご覧のとおり、libssl.so.6に関連するものがあり、このライブラリが私を止めていると思います。

参考:私はAMPPS 3.6をMac OSシエラで使用していますが、問題なく動作しています。

これは私の有効な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コマンドからは、バイナリはシンボリックリンクを見つけた/ usr/lib/x86_64-linux-gnuではなく/ 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ファイル名へのシンボリックリンクを作成します。 /libはルートディレクトリであるため、Sudo権限が必要です。

1

私がしたこと:

  1. AMPPSコントロールセンターから-> PHP->設定アイコン(ホイール)-> PHP拡張アイコンをクリックします。
  2. 「拡張機能」というウィンドウがポップアップします。
  3. すべてのチェックを外して再度チェックし、「適用」をクリックします。それで全部です!手間のかからない。

これはおそらく自動的にシンボリックリンクを更新します...

お役に立てれば。

1
Mihai Miculescu