64 ビット システムで PHP をコンパイルするとライブラリ ファイルが見つかりません
最近、64 ビット システムで PHP バージョン 5.4.5 をコンパイルすると、次のエラーが報告されました:
checking for DSA_get_default_method in -lssl... yes checking for X509_free in -lcrypto... yes checking for pkg-config... /usr/bin/pkg-config configure: error: Cannot find OpenSSL's libraries
指定されたコンパイルパラメータ:
./configure \ --prefix=/usr/local/services/php-5.4.5 \ --with-config-file-path=/usr/local/services/php-5.4.5/etc \ --enable-fpm \ --enable-mbstring \ --enable-soap \ --enable-sockets \ --enable-zip \ --with-curl=/usr \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-freetype-dir=/usr \ --with-openssl=/usr
openssl ライブラリ ファイルが見つかりません。openssl-devel をインストールしましたが、これは奇妙です。ネットで検索すると、多くの友人が同じ問題に遭遇していることがわかりました。 --with-openssl が指定されていないとのことです。パスは解決できました。試してみるとコンパイルは成功しましたが、原因がわかりませんでした。後でいくつかの記事を調べたところ、インストールされているシステムが 64 ビットであることがわかりました。 64 ビット ユーザー ライブラリ ファイルはデフォルトで /usr/lib64 にあります。コンパイル時に --with-libdir=lib64 を指定しなかったので、コンパイル スクリプトはデフォルトで lib になりましたが、当然ながら見つかりませんでした。
コンパイルパラメータを次のように変更します:
./configure \ --prefix=/usr/local/services/php-5.4.5 \ --with-config-file-path=/usr/local/services/php-5.4.5/etc \ --enable-fpm \ --enable-mbstring \ --enable-soap \ --enable-sockets \ --enable-zip \ --with-curl=/usr \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-freetype-dir=/usr \ --with-openssl=/usr \ --with-libdir=lib64
問題は解決しました。