:::: MENU ::::

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

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

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

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 系じゃないのか?っていうと

  • openssl-1.0.0 + mod_ssl-2.8.31 - kaz_29@はてな

    これと同じエラーが出てしまい、ソースいじるのもあれなので 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