:::: MENU ::::

64bitサーバに32bitのApache2.0を入れる方法

Pocket

ごく稀にそんなことをする必要があるのでメモ。
今回はApacheを例にとる。

32bitで動かすのだから古いほうが需要あるだろうということで、Apache2.0系をいれる。
動かすサーバは、CentOS release 6.4 (Final)の64bit版。

基本的には、Apacheでもそうでなくても、
configureのオプションで「CC=”gcc -m32″ CFLAGS=”-march=i686″」を付けて、
makeのオプションで「CC=”gcc -m32″」を付ければよい。

Apacheが32bitなので、それに付随するmod_xxx系も全部32bitで入れなくてはならず、
正直めんどいため32bitサーバで作り直した方が効率的です。

32bit用のライブラリ等を入れる

$ sudo yum install glibc-devel.i686
$ sudo yum install libgcc.i686
$ sudo yum install zlib-devel.i686

openssl0.9.8yをインストール

一応、sslも可の場合を想定

$ wget http://www.openssl.org/source/openssl-0.9.8y.tar.gz
$ tar xvfz openssl-0.9.8y.tar.gz
$ cd openssl-0.9.8y
$ ./config CC="gcc -m32" CFLAGS="-march=i686" --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared
$ make CC="gcc -m32"
$ sudo make install

なんで1.0系じゃないのか?っていうと

これと同じエラーが出てしまい、ソースいじるのもあれなので0.9系の最新版にしました。
ちなみに「OPTIM=-DSTACK=_STACK」オプションはなぜか効かなかった。。。

Apache2.0.64をインストール

$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/httpd-2.0.64.tar.gz
$ tar xvfz httpd-2.0.64.tar.gz
$ cd httpd-2.0.64/srclib/apr
$ ./configure CC="gcc -m32" CFLAGS="-march=i686" --prefix=/usr/local/apr --enable-threads
$ make CC="gcc -m32" 
$ make install
$ sudo make install

$ cd ../apr-util/
$ ./configure CC="gcc -m32" CFLAGS="-march=i686" --prefix=/usr/local/apr  --with-apr=/usr/local/apr
$ make CC="gcc -m32" 
$ sudo make install

$ cd ../../
$ ./configure CC="gcc -m32" CFLAGS="-march=i686" --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-cgi --enable-cgid --enable-cache --enable-mem-cache --enable-proxy --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-ssl --with-ssl=/usr/local/openssl --with-mpm=prefork
$ make CC="gcc -m32" -j3
$ sudo make install
Pocket


So, what do you think ?