Solaris10(x86) + Apache + PHP + MySQLでサイト構築しようと企んでたんだけど。
OpenSSL0.9.8k → 何もせず64ビット版に。
libxml2, libjpeg(jpeg6a), libpng, gd → 問題なく64ビット版に。
MySQL5.1 → 問題なく64ビット版に。
Apache2.2 → 問題なく64ビット版に。
PHP5 →
いえ、問題ありました。
apxsを調べてみると、Perlのスクリプト。(file apxs)
という事で、Solaris10標準のperlを調べてみると、見事に32ビット版。
(ldが吐くエラーはライブラリに対して・・・のはずなんだけど・・・という疑問はあるが、思い当たる部分はperlのみ・・・だから)
Perlも入れ直す必要があるな → 64ビットでコンパイル出来ず。
・・・
見事にハマリです。
妥協としては全て32ビットバイナリとしてコンパイルする事か、
全てパッケージ(32ビット版が、OS標準で含まれているので)でインストールする事。
・・・ちょっとイヤだが。
追記:
上記、かなり勘違い。
ライブラリ検索パスの話とか、各種ライブラリ(xml2, jpeg, png, gd)の話とかが重なっていただけ。
結論としては、zlibを--sharedオプション付きでコンパイルして解決。
せっかくなので手順を記載(備忘録としてメモ)します。
方針として、インストールは
32ビットバイナリ → /usr/local/bin
32ビットライブラリ → /usr/local/lib
64ビットバイナリ → /usr/local/bin
64ビットライブラリ → /usr/local/lib/64
に行うものとします。
前提としてOpenSSLの最新版が
32ビット版 → /usr/local/ssl
64ビット版 → /usr/local/ssl64
にインストールされているものとします。
Solaris10は全体ディストリビューション異常でインストールされ、コマンドサーチパスは
最低限 /usr/local/bin、/usr/bin、/usr/ccs/bin、 /usr/sfw/binが設定されていると仮定。
64ビットのライブラリ検索パスをcrleで設定
# crle -64 -c /var/ld/64/ld.config \
-l /usr/local/httpd/lib:/usr/local/lib/64:/usr/sfw/lib/64:/usr/lib/64:/lib/64
Apache2.2のコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--prefix=/usr/local/httpd64 \
--enable-shared=all \
--enable-module=so \
--enable-dav=yes \
--enable-ssl \
--with-sslport=443 \
--with-ssl=/usr/local/ssl64 \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-proxy \
--enable-proxy-balancer \
--enable-rewrite
$ gmake
# gmake install
zlibをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure --shared \
--prefix=/usr/local \
--libdir=/usr/local/lib/64
$ gmake
# gmake install
libxml2をコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
--with-zlib
$ gmake
# gmake install
libjpeg(jpeg-6b)をコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64
$ gmake
# gmake install
libpngをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
$ gmake
# gmake install
GDをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
$ gmake
# gmake install
PHP-5.2をコンパイル&インストール
$ LDFLAGS="-m64 -O3" \
CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure --libdir=/usr/local/lib/64 \
--with-zlib --with-gd \
--enable-mbregex --enable-mbstring \
--with-mysql=/usr/local/mysql \
--with-xmlrpc \
--with-apxs2=/usr/local/httpd/bin/apxs
$ gmake
# gmake install
コメント