Apacheで、RewriteEngineを使いたいのですが、モジュールが入っていません。

途中から、mod_rewriteを入れる方法はあるでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:jouno No.1

回答回数280ベストアンサー獲得回数0

ポイント35pt

http://www.atmarkit.co.jp/flinux/rensai/apache2_04/apache04b.htm...

@IT:mod_deflateによるコンテンツの圧縮転送(2/3)

apacheを再コンパイルせずに追加ということであれば、1.3以降ではDSO対応がされているので、リンク先の手続きで可能です。ここではmod_deflateですが、httpd.confの設定の手前までは基本的に同じです。

http://httpd.apache.org/docs/2.0/ja/dso.html

ưŪ��ͭ���֥������� (DSO) ���ݡ��� - Apache HTTP ������

詳細はこちら。

id:minase_n

回答ありがとうございます。

できるだけ再コンパイルせずに追加したいのです。

URLありがとうございます。とても参考になりました。

が、mod_rewrite.cをビルドしようとすると、

>>

mod_rewrite.c:93 から include されたファイル中:

mod_rewrite.h:133:18: ndbm.h: そのようなファイルやディレクトリはありません

>>

のようなエラーが出て、failedしてしまうようです……

2005/11/25 01:49:57
id:nyomonyomo No.2

回答回数17ベストアンサー獲得回数0

ポイント15pt

mod_rewriteをソースからコンパイルする必要があるのですが、こちらのサイトが詳しいです。


もっと単純な方法だと現在使っているapacheと同じバージョンのソースコードを用意して展開します。

展開したディレクトリにmodules/mappersというディレクトリがあるのでそこへ移動

apxs -c mod_rewrite.c

apxs -i -a -n rewrite mod_rewrite.la(こちらは管理者ユーザでないとエラーがでます)

を実行します。


ServerRoot以下のmodulesにmod_rewrite.soがあるのを確認し

httpd.confにLoadModule rewrite_module modules/mod_rewrite.so

が追記されているのを確認したら利用できるようになっているはずです

id:minase_n

回答ありがとうございます。

mod_rewrite.cをビルドしようとすると、ヘッダーがない旨のエラーが出て、ビルドできないんですよね…何か回避策はないものでしょうか。

2005/11/25 19:31:57
id:jouno No.3

回答回数280ベストアンサー獲得回数0

id:minase_n

回答ありがとうございます。

これも試してみたのですが、rpmパッケージ自体のインストールは問題なく終えられましたが、mod_rewrite.cのビルドは、同じエラーにより通らないようです。

2005/11/25 19:33:24
id:nyomonyomo No.4

回答回数17ベストアンサー獲得回数0

ポイント35pt

http://dev.sleepycat.com/downloads/releasehistorybdb.html

Sleepycat Software Developer Zone: Downloads: Berkeley DB Release History

apacheのソースディレクトリ中のsrc/modules/standard以下で

apxs -c mod_rewrite.c

apxs -i -a -n rewrite mod_rewrite.so(こちらは管理者ユーザでないとエラーがでます)

を実行します。


apacheのディレクトリのlibexec以下にmod_rewrite.soがあるのを確認し

httpd.confにLoadModule rewrite_module libexec/mod_rewrite.so

が追記されているのを確認したら利用できるようになっているはずです

(無ければ追記してください。LoadModuleのサンプルが書いてあるあたりが良いでしょう)


ndbm.hというファイルが無いというエラーがでたならリンク先からdb.1.86.tar.gzをダウンロードし展開するとdb.1.86というディレクトリができるのでその中のPORT/include/ndbm.hを/usr/includeあたりにコピーしてから試行してみてください

(最初の回答はapache2の物でしたのでディレクトリ位置などが違います)

id:minase_n

解凍ありがとうございます。

無事、mod_rewrite.soができました。

httpd.conf等を書き換えて、Apacheを起動すると、

Cannot load /usr/local/apache/libexec/mod_rewrite.so into server: /usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetch

のようなエラーが出て、起動できないのですが、何かまだ足りないものがあるのでしょうか……

2005/11/26 18:57:25
id:cyanora No.5

回答回数2ベストアンサー獲得回数0

ポイント35pt

追加すべきパッケージはgdbm-develです。

db1には確か大きなセキュリティホールになりうるバグが存在しているはず(ちょっと昔の記憶なので確かでは無いかもしれません)

なので、他で使っていなければ消された方が良いとおもいます。

あとはこちらのサイトの手順通りです

id:minase_n

回答ありがとうございます。

無事いけました!

ありがとうございました、とても助かりました。

>セキュリティホール

なるほど……消して置くようにいたします。

2005/11/27 21:30:06
  • id:minase_n
    ありがとうございました。

    おかげで、無事起動できました。
    丁寧に、そのつどご回答いただけた皆様に感謝を。

    助かりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません