WordPressのパーマリンクを変えてみたらapacheにモジュールが必要になったので忘備録
前提条件はapache2.2.3でmod_soが組み込まれていること。
apacheのバージョンは違っても大丈夫かもしれないがmod_soは必須。
まず、適当にapacheのインストール先にでも作業フォルダを作成して
続いてapacheのファイル群からmod_rewriteのソースを探す。
必要なのはcソースファイルとhヘッダファイルなのでこれらを作業フォルダにコピー
# mkdir /usr/local/apache2/mod_rewite_temp
# cd /usr/local/apache2/mod_rewite_temp/
# cp /usr/local/src/apache/httpd-2.2.3/modules/mappers/mod_rewrite.c ./
# cp /usr/local/src/apache/httpd-2.2.3/modules/mappers/mod_rewrite.h ./
それから、apacheのモジュールをビルドするためのコマンドapxsに通します。
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
普通はこのままapxs -iでインストールすればいいようなのですが
私の環境ではsoファイルが生成されなかったためにそのままインストールすると
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: getting attributes of `/usr/local/apache2/modules/mod_rewrite.so’: そのようなファイルやディレクトリはありません
apxs:Error: Command failed with rc=65536
といった感じのファイルが見つからないエラーが発生します。
というわけで手動でsoファイルを作ってあげて、しかるべき位置にコピーします。
# gcc -shared -o mod_rewrite.so mod_rewrite.s
# cp mod_rewrite.so /usr/local/apache2/modules/
これで準備完了なのでapxsコマンドでインストールをかけます。
# /usr/local/apache2/bin/apsx -ian rewrite mod_rewrite.la
これでapacheにrewriteモジュールを組み込めました。
apsxコマンドでインストールするときに-aを指定してあるのでhttpd.confにも
情報が追記されています。
# vi /usr/local/apache2/conf/httpd.conf
で、ごにょごにょっと設定をいじって
# service httpd restart
でapacheを再起動かけれればOKですね