がべーじこれくしょん

技術系とかいろいろ

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

これにて終了です

参考

https://www.centos.org/forums/viewtopic.php?t=22243