rewrite module


[root@nvrg ~]# (私の実験用サーバーのある日のホスト名です、気になさらずに!)
/usr/local/src/httpd-2.0.64/modules/mappers
上記ディレクトリ内にApache標準モジュールのソースが保存されています。
その中に移動します。
#cd /usr/local/src/httpd-2.0.64/modules/mappers
[root@nvrg mappers]#
ビルド
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
インストール
# /usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la
Warning! dlname not found in /usr/local/apache2/modules/mod_rewrite.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2/modules/mod_rewrite.so
chmod: cannot access /usr/local/apache2/modules/mod_rewrite.so': そのようなファイルやディレクトリはありません
apxs:Error: Command failed with rc=65536
————————————————————————————–
解决方法:Assuming installing a .so rather than a libtool archive. とあるので
# vi /usr/local/apache2/build/libtool
以下を書き換えます 。
build_libtool_libs=no 53

build_libtool_libs=yes
fast_install=needless 65

fast_install=yes
dlopen_support=unknown 165

dlopen_support=yes
dlopen_self=unknown 168

dlopen_self=yes
dlopen_self_static=unknown 171

dlopen_self_static=yes
host_alias= 68

host_alias=i686-pc-linux-gnu
:wq 保存終了します。
————————————————————————————–
もう一度初めから
[root@nvrg ~]# cd /usr/local/src/httpd-2.0.64/modules/mappers
[root@nvrg mappers]#
ビルド
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
インストール
# /usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la
chmod 755 /usr/local/apache2/modules/mod_rewrite.so
[activating module
rewrite’ in /usr/local/apache2/conf/httpd.conf]
[root@nvrg mappers]#
# vi /usr/local/apache2/conf/httpd.conf
(LoadModule rewrite_module modules/mod_rewrite.so) が232行目あたりにあればOK
:wq 保存終了します。
# /usr/local/apache2/bin/apachectl configtest
Syntax OK
# /usr/local/apache2/bin/apachectl restart   (MEMO 見てね)
(/usr/local/apache2/bin/apachectl graceful)
[root@nvrg mappers]#
インストール後 chmod 755 /usr/local/apache2/modules/mod_rewrite.so と
書いてあり チョイ気になるので実行しておく。(権限が無いみたいだ。)
# chmod 755 /usr/local/apache2/modules/mod_rewrite.so
[root@nvrg mappers]#
—————————————————————————
MEMO
restartは、クライアントと接続中のhttpdプロセスを停止するため、通信が強制的に切断してしまう。
瞬時とはいえ、お客様にご迷惑をお掛けにしてしまいます。それを解決するのが「graceful」で
gracefulはすべてのクライアントとの通信が終了するまで再起動しません。
Webサーバなどを公開していて、httpdサービスの停止が出来ない場合には 良い方法といえます。
時々、「graceful」だと変更が正しく反映されないというケースもあるので、「graceful」がダメだったら、「restart」を実行すると良いと思います。
—————————————————————————-
これでやっと.htaccessが使えるようになった。
http://www.jbxue.com/article/apache/20917.html
http://blog.warmcolor.net/2011/11/12/apache%E5%8D%95%E7%8B%AC%E7%BC%96%E8%AF%91mod_rewrite-error-command-failed-with-rc65536%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/
上の2つのサイトに感謝感激!ありがとうございます。