ソースからApacheをコンパイルし、それを静的にリンクしていますmod_ssl
。システムにインストールされているものとは異なるバージョンのOpenSSLを使用したいと思います。パッケージで引き続き使用されるインストールされている他のソフトウェアで使用されるコアシステムのSSLバージョンを変更しないため、システムの残りの部分(CentOSなど)に影響を与えないようにこれを実行したいと思います。マネージャー。
どうすれば正しくできますか?
Apacheをコンパイルしようとしましたが、うまく--with-ssl
コンパイルされていますが、実行しようとすると見つかりませんでした。
./httpd: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
私はApacheを起動したときに設定できると思いましたが、うまくいきましたが、LD_LIBRARY_PATH
それが適切なアプローチであるかどうかはわかりませんでした。この問題を解決するために推奨される方法は何ですか?代替ライブラリ検索パスにディレクトリを追加するより良い方法はありますか?
ベストアンサー1
まず、あなたは必要なバージョンを入手してくださいOpenSSLそして、システムのバージョンを妨げない場所にインストールしてください/opt
。たとえば、次のようになります。
$ ./config \
--prefix=/opt/openssl-VERSION \
--openssldir=/opt/openssl-VERSION
$ make
$ sudo make install
次に最新情報を入手してください。Apache 2.4.x、APRおよびAPR-Util図書館。 3つのパッケージをすべて同じソースツリーに展開する必要があり、後者の2つのパッケージはApacheが期待する場所に配置する必要があります。たとえば、
$ tar zxvf httpd-VERSION.tar.gz
$ cd httpd-VERSION/srclib/
$ tar zxvf ../../apr-VERSION.tar.gz
$ ln -s apr-VERSION/ apr
$ tar zxvf ../../apr-util-VERSION.tar.gz
$ ln -s apr-util-VERSION/ apr-util
次に、Apacheを設定してインストールします。このmod_ssl
モジュールは静的にコンパイルされ、他のすべてのモジュールは次のように動的にコンパイルされます。
$ ./configure \
--prefix=/opt/httpd \
--with-included-apr \
--enable-ssl \
--with-ssl=/opt/openssl-VERSION \
--enable-ssl-staticlib-deps \
--enable-mods-static=ssl
$ make
$ sudo make install