|
カテゴリ:カテゴリ未分類
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) | コメントを書く |