「Apache2」をRPMからソースコンパイルに変更

「Apache2」をRPMからソースコンパイルに変更

なかなか手が出せなかった部分ではあったが、
ようやく意を決してチャレンジ

もともとサーバーOSは、「Redhat Linux 9」(以下RH9) だったので、
フルインストールして、そのhttpd(apache)を使っていた。

しかし、最近、エラーログを眺めていると、
URLの最後にスラッシュがついていない場合にエラーとなっているものが多い。

まぁ、クライアント側でそういうリクエストをすれば、そうなるのは当たり前だが、
Apache2には、スラッシュを補完してくれる機能があることを知った。

参考URL:
mod_dir - Apache HTTP サーバ


しかし、サポートの終了したRH9のapache2のバージョンは、「2.0.40」で終了している。

ということは、RH9用のApache2のRPMパッケージは、それ以降存在しない。。。

そのスラッシュを補完してくれるという、「Directoryslash」ディレクティブは、
「2.0.51」以降でないと、機能しない。。。(ToT)


このままRPMでの管理をしたかったので、
いろいろググっていたら、以下のようなサイトを見つけた。

参考URL:
Apache 2.0.50 のRPM ファイルを作って入れ替え | alectrope
Apache 2.0.52 に入れ替えついでにいくつか変更 | alectrope

どうやら、ソースコードからRH9のRPMパッケージにリビルドするという方法だ。


見ていたら、やれなくもなさそうで、実際にリビルドまでやってみたが、
なんか不安である(笑)

ということで、意を決して、Apache2をソースからコンパイルの方針へ切り替えることにした。

どうせなので、PHPもPHP4からPHP5にバージョンアップすることにした。


ここで参考にしたURLを紹介しておこう。

Apache 2.0の新機能とその実力
Apache HTTPサーバのインストール
Do You PHP? - Apache2.0.xのインストール
Installation of Apache 2
Linuxメモ - Apache2インストール
Monologue:PHP5のインストール
leaves:PHP5のインストール
神経研メディアセンター: Xserve G5の設定


では、いざインストール。

とりあえず、httpdを止め、もともとのrpmパッケージを消す

# /etc/rc.d/init.d/httpd stop # rpm -e httpd


Apache2のインストールでは、autoconflibtoolの2つが必要だそうなので、
とりあえず、インストール。

入手先 http://www.gnu.org/order/ftp.html

# tar zxvf autoconf-2.59.tar.gz # cd autoconf-2.59 # ./configure # make # su # make install
# tar zxvf libtool-1.5.8.tar.gz # cd libtool-1.5.8 # ./configure # make # su # make install

で、Apache2の最新を入手する。

 ↓

Welcome! - The Apache HTTP Server Project

これを書いている現在の最新は、「2.0.54」なので、それをダウンロード。

続いて、解凍して、コンパイル、インストール

# tar zxvf httpd-2.0.54.tar.gz # cd httpd-2.0.54 # ./configure --enable-mods-shared=most --enable-suexec --enable-module=all --enable ssl=static # make # su # make install

これでApache2のインストールは完了

とりあえず、設定ファイルである「httpd.conf」の編集は後に回すとします。
                (どうせまた開くことになりますから。。(^^;))

自動起動スクリプトとして、以下を/etc/rc.d/init.d/httpdとして追加(上書き?)。

実行権を与えるのを忘れずに。

#!/bin/bash # # Startup script for Apache Web Server # # chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI. # processname: httpd # pidfile: /var/run/httpd.pid # config: /usr/local/apache2/conf/httpd.conf # See how we were called. case "$1" in  start)   /usr/local/apache2/bin/apachectl start   ;;  stop)   /usr/local/apache2/bin/apachectl stop   ;;  status)   /usr/local/apache2/bin/apachectl status   ;;  restart)   /usr/local/apache2/bin/apachectl restart   ;;  graceful)   /usr/local/apache2/bin/apachectl graceful   ;;  *)   echo "Usage: $0 {start|stop|restart|graceful|status}"   exit 1 esac exit 0


次に、PHP5をインストール

日本PHPユーザ会から、最新の「5.0.4」を入手。

# tar zxvf php-5.0.4.tar.gz # cd php-5.0.4 # ./configure --with-apache2=/usr/local/apache2 --with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp --enable-versioning --enable-alender --with-libxml-dir --with-zlib-dir --enable-gettext --enable-mbstring --enable-mbregex --enable-sockets --enable-mbstring-enc-trans --with-pear --enable-maintainer-zts --enable-zend-multibyte --with-gd --enable-gd-native-ttf --with-freetype-dir --with-zlib --with-jpeg-dir --enable-memory-limit --without-mysql # make # make install

途中、「libxml2がない」とmakeの時点でエラーがでてしまったので、
「libxml2」をインストール。

また、同じくmakeの時に、「libiconv.laがみつかりません」とエラー
でてしまったのですが、しっかりとインストールしてある。。。

しょうがいないので、シンボリックリンクでその場をしのぐ。。。(^^;)


PHP5のインストールが完了したら、

# cp /php-5.0.4/php.ini-dist /usr/local/lib/php.ini

として、設定ファイルをコピー

「php.ini」の中を次の部分を変更する。
(文字コード等は、これは環境に合わせてください)

output_buffering = On output_handler = mb_output_handler default_charset = "euc-jp" mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;


続いて、httpd.confに以下を追加する。

LoadModule php5_module modules/libphp5.so   <IfModule mod_php5.c> AddType application/x-httpd-php .php </IfModule>

LoadModule php5_module modules/libphp5.soは、
PHP5をインストールした時点で追加されてると思いますが。。。


では、いざ、Apacheを起動します。

# /usr/local/apache2/bin/apachectl configtest # /usr/local/apache2/bin/apachectl start


うまくいきました?(^^;)


Apacheハンドブック
Apacheハンドブック
posted with amazlet at 05.07.02
Ben Laurie Peter Laurie 大川 佳織 田辺 茂也
オライリージャパン (2003/09)
売り上げランキング: 16,273

Apache Server Bible―HTTPサーバの構築と運用
モハメッド・J. カビール Mohammed J. Kabir 遠藤 美代子 イエローレーベル
IDGコミュニケーションズ (1999/05)
売り上げランキング: 292,806