apache1.3系へmod_rewriteをインストール | 空気? 読めませんよ

apache1.3系へmod_rewriteをインストール

ちょっとだけお仕事系の備忘録


とあるサイトのリリースにあたり
開発環境から本番環境へファイルを適用する上で

本番環境にmod_rewriteモジュールが入っていないことに気付いた
httpd.confでRewriteRuleを設定している手前、コレが無いとマズい
むしろエラーが出ました


そんなワケで
解らないコトだらけのままインストールをしてみる


まず mod_so の確認

# /usr/local/apache/bin/httpd -l


実行結果

Compiled-in modules:
http_core.c
mod_env.c

mod_so.c // これがあればOK


rewrite_moduleのソースファイルを検索

# find / -name "*mod_rewrite.c*"


実行結果

/usr/local/src/install/apache/src/apache_1.3.34/src/modules/standard/mod_rewrite.c


次、apxsを使用してコンパイルとインストールをします

# cd /usr/local/src/install/apache/src/apache_1.3.34/src/modules/standard
# /usr/local/apache/bin/apxs -ic mod_rewrite.c


実行結果

In file included from mod_rewrite.c:50:
mod_rewrite.h:90:18: ndbm.h: No such file or directory



apxs:Break: Command failed with rc=1


エラーが出ちゃいました
「そんなファイルねーよ」ってコトなので
パスが通っていないっぽいです

オプション等を付加して再度実行

/usr/local/apache/bin/apxs -ic -I /usr/include/gdbm -l gdbm mod_rewrite.c


実行結果

gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
cp mod_rewrite.so /usr/local/apache/libexec/mod_rewrite.so
chmod 755 /usr/local/apache/libexec/mod_rewrite.so


今度はうまくいった模様

最後にhttpd.confに下の1行を追加して

LoadModule rewrite_module libexec/mod_rewrite.so


apacheを再起動

/usr/local/apache/bin/apachectl graceful


これでOK

自分はこの手順でできましたが
環境によって多少の差異はあるかと思います

突っ込み・ダメ出しは歓迎です

まぁこんなん誰も読まんわな