047746 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

メモ綴りなり~ぃ ( = ̄+∇ ̄=)v キラッ

メモ綴りなり~ぃ ( = ̄+∇ ̄=)v キラッ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Calendar

Profile

kuwa416

kuwa416

Free Space

設定されていません。
July 22, 2009
XML
カテゴリ:カテゴリ未分類
Apache1.3系に、理由があって「rewrite」をインストールする。


1.モジュールチェック

# ./httpd -l
Compiled-in modules:
http_core.c
mod_env.c
mod_log_config.c
mod_mime.c
mod_negotiation.c
mod_status.c
mod_include.c
mod_autoindex.c
mod_dir.c
mod_cgi.c
mod_asis.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_access.c
mod_auth.c
mod_so.c
mod_setenvif.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec


へーぇ。mod_soはいっているんだぁ。
DSOでインストすんべぇ。

2.ソースコンパイルする

ディレクトリを移動して、モジュールをコンパイルする。
ついでにインストール反映も。


/usr/local/apache/bin/apxs -i -c mod_rewrite.c

あれっ?エラーだぁ。
 :
mod_rewrite.c:51 から include されたファイル中:
mod_rewrite.h:91:18: ndbm.h: そのようなファイルやディレクトリはありません
 :
ndbm.hが無いのねぇ・・・

3.Includeファイルを探して再コンパイル

find / -name ndbm.h -print
/usr/include/gdbm/ndbm.h
/usr/share/man/man0p/ndbm.h.0p.gz

ndbm.hみーっけ。

それでは再コンパイルだぁ!!
で -a もつけてファイルインストール更新も!!

/usr/local/apache/bin/apxs -i -c -a I /usr/include/gdbm mod_rewrite.c
 :
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new
 :
 
4.httpd.confのチェック

ちょっと手抜きでチェック

service httpd configtest
Syntax error on line 27 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/mod_rewrite.so into server: /usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetch

げぇ!!・・・シンタックスエラーだぁ。。。
宣言がされていない!?
ライブラリーリンクか!?

5.コンパイル時にライブラリ取り込み

/usr/local/apache/bin/apxs -i -c -a -I /usr/include/gdbm mod_rewrite.c -lgdbm

ポイントは、最後の方の「-lgdbm」です。

もちろん個別にインストールされていない場合はちゃんと入れるべし。

gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DMOD_SSL=208123 -DUSE_HSREGEX -DEAPI -fpic -DSHARED_MODULE -I/usr/local/apache/include -I/usr/include/gdbm -c mod_rewrite.c
gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
[activating module `rewrite' in /usr/local/apache/conf/httpd.conf]
cp mod_rewrite.so /usr/local/apache/libexec/mod_rewrite.so
chmod 755 /usr/local/apache/libexec/mod_rewrite.so
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new

# service httpd configtest
Syntax OK

今度はうまく行ったみたい。

後は、httpd.confを再調整し、実際に動く所を確認するべし。





お気に入りの記事を「いいね!」で応援しよう

Last updated  July 22, 2009 07:40:11 PM
コメント(0) | コメントを書く



© Rakuten Group, Inc.