Xserverでlibssl.so.6: cannot open shared object file: No such file or directoryがでる問題
自作のXserver向けツール(になる予定のリポジトリ)をクローンしようとしたところ、以下のエラーが発生。
$ git clone https://github.com/musaprg/xsvr-tools.git Cloning into 'xsvr-tools'... git-remote-https: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
phpを呼ぼうとしても同様のエラーが出ました。修正に苦労したのでメモ。
対処法
Xserverのディストリは非公開ということになってますが、実はCentOSです。
$ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
ただ、root権限が許可されていない(クソ)ので、パッケージマネージャー等を使うことはできません。
エラーを見ると、libssl.so.6
という共有ライブラリのリンクに失敗してるみたいです。
もしやと思って調べてみると
$ ls /lib64 | grep -E "libssl\.so\.([0-9].)$" libssl.so.10
どうやらopensslの更新の影響っぽいですね。
root権限が許可されていない(クソ)ので、無理矢理シンボリックリンクを作成して対象します。
LD_LIBRARY_PATHが通っているディレクトリに移動して、以下のコマンドを実行します。
$ ls /lib64 | grep -E "lib(.*)\.so\.10$" libcrypto.so.10 libgmp.so.10 libssl.so.10 libxtables.so.10
上記の4ファイルに対してシンボリックリンクを作成します。
起動できるかと思いきや
$ php /usr/bin/php7.0: error while loading shared libraries: libldap-2.3.so.0: cannot open shared object file: No such file or directory
はい。もう一つやります。
$ ln -s /lib64/libldap-2.4.so.2 libldap-2.3.so.0 $ php -v PHP 7.0.18 (cli) (built: Apr 18 2017 01:56:54) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
これにて終了です