apxs2により、まずモジュールの雛形を作成します。
今回はモジュール名をcgiwebapp とします。
cd dev/apache2
apxs2 -g -n cgiwebapp
Creating [DIR] cgiwebapp
Creating [FILE] cgiwebapp/Makefile
Creating [FILE] cgiwebapp/modules.mk
Creating [FILE] cgiwebapp/mod_cgiwebapp.c
Creating [FILE] cgiwebapp/.deps
という具合に雛形が作成されます。このままでもコンパイルは通るので、
Makefileの、top_srcdirを、
top_srcdir=/usr/share/apache2
としておきます。
(make install時のbuildスクリプトのため)
apxsもapxs2にしておきます。
make
sudo make install
とやると、mod_cgiwebapp.so が/usr/lib/apache2/modulesにコピーされます。
/etc/apache2/apache2.confに
LoadModule cgiwebapp_module /usr/lib/apache2/modules/mod_cgiwebapp.so
を追加し、
/etc/apache2/site-avaliable/defaultの<virtualhost>内に、
<location>
SetHandler cgiwebapp
</location>
と書きます。
その後、apache2をリスタートし、
http://colinux/cgiwebapp
とやると、
The sample page from mod_cgiwebapp.c
が表示されて、ひとまず動作確認完了
2007年5月20日日曜日
Writing Apache2 Module in C/C++ その1
Apache2のモジュールを開発します
なぜかというと、以前apache1.3系のモジュールを作ったので、それを
apache2に書きなおしたいというわけです。
そのモジュール自体はかなり機能豊富でしたが、まずは通常のCGI-Webアプリとして
使い物になる程度まで仕上げたいと思います。
メモを残しつつ、多少時間がかかると思いますが完成させたいと思います。
というわけでまずは開発環境。
colinux上に、apache2、apache2-mpm-prefork、apache2-prefork-devをインストールします。threadモデルでやりたいところですが、モジュールをスレッドセーフにかける自信がないので、preforkで開発します。
sudo apt-get install apache2-mpm-prefork
sudo apt-get install apache2
sudo apt-get install apache2-prefork-dev
モジュールのルートディレクトリを作成。今回は
~/dev/apache2/
とします。
mkdir dev/apache2/
続く
なぜかというと、以前apache1.3系のモジュールを作ったので、それを
apache2に書きなおしたいというわけです。
そのモジュール自体はかなり機能豊富でしたが、まずは通常のCGI-Webアプリとして
使い物になる程度まで仕上げたいと思います。
メモを残しつつ、多少時間がかかると思いますが完成させたいと思います。
というわけでまずは開発環境。
colinux上に、apache2、apache2-mpm-prefork、apache2-prefork-devをインストールします。threadモデルでやりたいところですが、モジュールをスレッドセーフにかける自信がないので、preforkで開発します。
sudo apt-get install apache2-mpm-prefork
sudo apt-get install apache2
sudo apt-get install apache2-prefork-dev
モジュールのルートディレクトリを作成。今回は
~/dev/apache2/
とします。
mkdir dev/apache2/
続く
2007年5月19日土曜日
colinuxによる開発環境の構築
仕事とは別に
自分の好き勝手にできる開発環境が欲しかったのでcolinuxをwindows xp上に構築してみました。
実行速度は申し分ないです。
Debianを入れましたが、他のディストリビューションでもインストール可能のようです。
インストール方法などは
・http://aoineko.ciao.jp/text/colinux/colinux.html
・http://www.si-linux.co.jp/wiki/silinux/index.php?CoLinux
を参考にさせていただきました。
付属でダウンロードしたDebianのディスクイメージだと1GBとさすがに少ないので
自分の環境では4GBに変更してあります。
仕事のサーバがDebianなので、Debianの勉強などにはもってこいですね。
クリーンインストールした状態のデータをバックアップしておくと、
ぶっ壊してもいつでも復活できます。このあたりがすばらしい!
自分の好き勝手にできる開発環境が欲しかったのでcolinuxをwindows xp上に構築してみました。
実行速度は申し分ないです。
Debianを入れましたが、他のディストリビューションでもインストール可能のようです。
インストール方法などは
・http://aoineko.ciao.jp/text/colinux/colinux.html
・http://www.si-linux.co.jp/wiki/silinux/index.php?CoLinux
を参考にさせていただきました。
付属でダウンロードしたDebianのディスクイメージだと1GBとさすがに少ないので
自分の環境では4GBに変更してあります。
仕事のサーバがDebianなので、Debianの勉強などにはもってこいですね。
クリーンインストールした状態のデータをバックアップしておくと、
ぶっ壊してもいつでも復活できます。このあたりがすばらしい!
2007年5月17日木曜日
Apache2のmoduleのon/off
DebianでのApache2のmoduleのon/off
パッケージから入れた場合、
/usr/sbin/a2enmod
/usr/sbin/a2dismod
を使用する
mod_rewriteを例にとると
onにする場合:
sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
offにする場合:
sudo a2dismod rewrite
sudo /etc/init.d/apache2 force-reload
ソースから入れた場合、あるいはモジュールだけソースからコンパイルした場合は
例によって、
LoadModule php5_module modules/libphp5.so
のようです。
Debianでモジュールを入れる場合はパッケージでそろえた方が管理が楽でいいですね。
パッケージから入れた場合、
/usr/sbin/a2enmod
/usr/sbin/a2dismod
を使用する
mod_rewriteを例にとると
onにする場合:
sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
offにする場合:
sudo a2dismod rewrite
sudo /etc/init.d/apache2 force-reload
ソースから入れた場合、あるいはモジュールだけソースからコンパイルした場合は
例によって、
LoadModule php5_module modules/libphp5.so
のようです。
Debianでモジュールを入れる場合はパッケージでそろえた方が管理が楽でいいですね。
ApacheのRewriteMap
Apacheのmod_rewriteのRewriteMapについてのメモ
今回は
http://q.hoge.com/ を http://www.hoge.com/sub/123/
にrewriteする。
単純なテキストファイルを用意
/home/qootaro/rewritemap/map.txt
形式はキー<スペース>値
なので
q.hoge.com 123
として保存
rewriteの設定は以下のとおり
RewriteEngine on
RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 9
RewriteMap submap txt:/home/qootaro/rewritemap/map.txt
RewriteCond %{HTTP_HOST} q.hoge.com
RewriteRule /(.*) http://www.hoge.com/sub/${submap:%{HTTP_HOST}}/ [L]
もちろん、これはサブドメイントップ以下のページを全部同じ
URLにrewriteしてしまうので、本来は通常のIDが含まれたURLだけど、特定のIDのページだけサブドメインに割り当てたい というような時に使用できると思います。
(それ以外は実用性ゼロw)
今回は
http://q.hoge.com/ を http://www.hoge.com/sub/123/
にrewriteする。
単純なテキストファイルを用意
/home/qootaro/rewritemap/map.txt
形式はキー<スペース>値
なので
q.hoge.com 123
として保存
rewriteの設定は以下のとおり
RewriteEngine on
RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 9
RewriteMap submap txt:/home/qootaro/rewritemap/map.txt
RewriteCond %{HTTP_HOST} q.hoge.com
RewriteRule /(.*) http://www.hoge.com/sub/${submap:%{HTTP_HOST}}/ [L]
もちろん、これはサブドメイントップ以下のページを全部同じ
URLにrewriteしてしまうので、本来は通常のIDが含まれたURLだけど、特定のIDのページだけサブドメインに割り当てたい というような時に使用できると思います。
(それ以外は実用性ゼロw)
登録:
投稿 (Atom)