BlogもどきのWeblog

備忘録と日々の呟きとメモとCGIの実験場とされる何か。
プロフィール

GLANSHE
絵描き担当らしい

Total: 14009
Today: 27
Yesterday: 119
最新の記事

コンテンツ

最新のコメント

最新のトラックバック

カテゴリー

リンク

ニコ動MyListLink

やらかした
アパートの契約書一切を間違えて捨てていたらしい。
もう死にたい。


time stamp:2009/04/30 20:19:34
トラックバック(0)|コメント(1)
コメントを書く
この記事のトラックバックURL:

モンスターハンター@PSP
狩ってみた。

当たり前だが初めてキーボードでやった時ほどの違和感はなかった。
一番の問題は○ボタンで納刀出来ない事と、移動しながら視点変えられない事か。
Lボタンの視点リセットの処理が遅い事にも多少の違和感があるかも。

次回韋駄天に影響出ると嫌だけどどうしたもんかなー
と言うか種目発表まだですか。

Wiiも欲しいけど頑張るとしても来月かな(・ω・`)


time stamp:2009/04/28 20:11:44
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

最近ゲーセンに通っています
主に目的はドラムマニアとDDR。
高校時代に実家の近くのゲーセンに通ってそれなりに出来るようになったものの、大学時代に近所にゲーセンがなかったので6年ものブランクがあったのを取り戻そうと思ったのが発端。ついでに運動不足の解消+体力作り。

ドラムマニアに関しては、やっと昔を思い出せてきた感じ。でも譜面知らないやつはほとんど出来ない。
JET WORLDのADVANCEDが昔は叩けたはずなのに手と足の運び方をまったく覚えてない。そして数回やっても見えない。
動体視力が悪いのか運び方の基本が出来てないのか手と足の連動が下手糞なのが問題なのか。見えても叩き方がわかんないとかなんかもう一からやり直した方がいいのかなぁとかも思う。
ただ、それなりにテンポの取りかたはよくなってきたと思う。
ただし、RIGHT ON TIMEのEXTREMEはぼろぼろこぼすけど。
つか左手がうごかねー。

DDRは前と同じくらい見えてきたっぽい?でも体力が全然足りないらしい。
Across the Nightmareの踊を速度x2でやったら何も見えなくて衝撃だった。
x1に戻したらほぼ踏めた件(笑
まぁ、激とか鬼はやってないのもあるけど全然踏めないんじゃないかなぁ。
てかIf You Where Here何処いったんすか。
大好きだったのにー。
旧作買おうにもアパートの3階で跳ねる訳にもいかずどうしたものか。


time stamp:2009/04/26 12:06:36
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

ubuntuにproftpdを入れたメモ
適当にインストール
# aptitude install proftpd

そのままだと起動しなかったり遅かったり色々するので設定変更
# vi /etc/proftpd/proftpd.conf

DefaultAddress example.co.jp
UseReverseDNS off
を追加

UseIPv6 on

UseIPv6 off

DefaultRoot ~
を書いておくとホームディレクトリが存在しないユーザは自動的にログインできなくなるっぽいので書いておく。
それ以外のユーザのログイン設定を以下に書く。

DefaultRoot ~ !adm
とか書いてあるサイトがあるけど、admグループでログインするとルートまで
全部見えちゃうので、

DefaultRoot /home adm
を追加するとadmグループでもhomeより上には行けない模様。

更にユーザがログイン出来るディレクトリを設定
Default ~/public_html

ここまでの設定では、ユーザアカウント持っててホームディレクトリ持ってるユーザならログインできてしまうようなので、更に以下でログインできるユーザを制限する。
<Limit Login>
Order allow,deny
AllowUser user1,user2,user3
Deny all
</Limit>
のようにカンマで区切ってログイン出来るユーザを指定。


DefaultAddressを追加しなくてもhostnameを変更すれば通るので、お好きな方をどうぞ。
# hostname example.co.jp

あと/var/log/proftpd/proftpd.log辺りのパーミッションがおかしいとか言われたような気がする。
適当に
# chown proftpd /var/log/proftpd/proftpd.log
でエラー消えたけどこれはsyslogに変えるべきなのか?

設定ファイルとかのエラーチェック
# /etc/init.d/proftpd check-config

proftpdを起動
# /etc/init.d/proftpd start

のような感じ。

参考文献
FTPサーバ(ProFTPD)の構築
Proftpdの設定
ftpサーバを立てる(設定)


time stamp:2009/04/21 23:01:50
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

postfix+courierで仮想メールボックス
・postfixで仮想メールボックスを使う設定を追加。
/etc/postfix/main.cfを編集
# vi /etc/postfix/main.cf

以下を追加。
#仮想ドメインの指定
virtual_mailbox_domains = example.co.jp
#仮想メールボックスの指定
virtual_mailbox_base = /home/vmail
#仮想メールボックスのユーザ指定ファイル
virtual_mailbox_maps = hash:/etc/postfix/virtual_user
#仮想メールボックスを使うユーザIDを適当に指定
virtual_gid_maps = static:5000
virtual_uid_maps = static:5000

#mydestinationから実ドメインを削除
mydestination = example.co.jp, localhost.$mydomain, localhost

mydestination = localhost.$mydomain, localhost


・仮想メールボックスのユーザを追加
さっき指定した仮想メールボックスのユーザ指定ファイルの
/etc/postfix/virtual_userを書く。
# vi /etc/postfix/virtual_user

virtual_mail_user@example.co.jp virtual_mail_user/Maildir/

みたいに書く。これで
/home/vmail/virtual_mail_user/Maildir
がvirtual_mail_userのメールボックスになる。
その後、
# postmap /etc/postfix/virtual_user

で、hash形式のデータベースに変換する。
以下、仮想メールアドレスのメールアカウントを[virtual_mail_user]とおく。


・SMTP_AUTH認証用データベースの更新
# saslpasswd2 -c -u example.co.jp [virtual_mail_user]
パスワードを入力する。


・courierの認証用データベースの更新
# userdb [virtual_mail_user] set home=/vmail/[virtual_mail_user] mail=/home/vmail/[virtual_mail_user]/Maildir uid=5000 gid=5000
# userdbpw -hmac-md5 | userdb [virtual_mail_user] set hmac-md5pw

authdaemonが使えるようにする
# makeuserdb


・関連するものを全部再起動
# /etc/init.d/postfix restart
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart
# /etc/init.d/saslauthd restart

後は適当に仮想メールアドレス宛にメールでも送ればMaildir作ってくれて、メールが配送されるのでpopやらimapやらで拾えます。

参考文献
Postfixをインストールする
starrybells blog - "Postfix" の記事一覧


time stamp:2009/04/21 01:48:29
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

ubuntuにcourier-imapとpop入れたメモ
昨日の記事があまりにも適当で駄目すぎたので書き直しました。

とりあえずパッケージからインストール
# aptitude install courier-imap
# aptitude install courier-pop

couorier-authdaemonも要るんだけど勝手に入ったような入ってないような。
# aptitude search authdaemon で確認してインストールされてるか確認。

・IMAPサーバの設定
/etc/courier/imapdを編集
# cp imapd imapd.bak
# vi imapd

CRAM-MD5で認証を通す為に次の行を修正…やばい原文忘れた。
IMAP_CAPABILITY='...

IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"


##NAME: IMAP_CAPABILITY:1 と
##NAME: IMAP_CAPABILITY:2
があるんだけど何これ

両方あっても動いてる(・ω・`)なんでだ。情報募集中。
ちなみに2の方
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFER ENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"

・POPサーバの設定
/etc/courier/pop3dを編集
# cp pop3d pop3d.bak
#vi pop3d

CRAM-MD5とCRAM-SHA1で認証できるようにする
POP3AUTH=...(原文忘れた
POP3AUTH="CRAM-MD5 CRAM-SHA1"

・認証用デーモンの設定
/etc/courier/authdaemonrcを編集
# cp authdaemonrc authdaemon.bak
# vi authdaemonrc

IMAP用のパスワードを別途用意するので次を変更
authmodulelist="authpam"

authmodulelist="authuserdb"


・ユーザ認証用DBを生成する。
次のコマンドでuserdbを作る。
# pw2userdb | grep ^[username] > /etc/courier/userdb
# chmod 0600 /etc/courier/userdb

認証用パスワードを設定する。
# userdbpw -hmac-md5 | userdb [username] set hmac-md5pw
パスワード入力を求められるので2回入力。

courier-authdaemonが作ったuserdbを使えるようにする。
# makeuserdb
userdbと同じディレクトリに
userdb.dat
userdb.lock
userdbshadow.dat
ができる。

courier-imap とcourier-pop courier-authdaemon の再起動
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart
# /etc/init.d/courier-authdaemon restart

そんな感じ。

参考文献
CourierでIMAPサーバ
自宅メール環境の構築
courier-imapのパスワードについて
Applied Mathematics 8/授業資料09
おれさまメモ


time stamp:2009/04/20 23:31:26
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

courier-imap入れたメモ
内容がアレなため書き直しました

とりあえずパッケージからインストール
# aptitude install courier-imap

/etc/courier/imapを編集
# cp imapd imapd.bak
# vi imapd

CRAM-MD5で認証を通す為に次の行を修正…やばい原文忘れた。
IMAP_CAPABILITY='...

IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"

何か
##NAME: IMAP_CAPABILITY:1 と
##NAME: IMAP_CAPABILITY:2
があるんだけど何これ

両方あっても動いてる(・ω・`)何でだ。情報募集中。
ちなみに2の方
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFER ENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"


/etc/courier/authdaemonrcを編集
# cp authdaemonrc authdaemon.bak
# vi authdaemonrc

IMAP用のパスワードを別途用意するので次を変更
authmodulelist="authpam"

authmodulelist="authuserdb"

ユーザ認証用DBを生成する。
*[2009/04/20 22:16:40]追記
# pw2userdb | grep ^[username] > /etc/courier/userdb
# chmod 0600 /etc/courier/userdb

# userdbpw -hmac-md5 | userdb [username] set imap-hmac-md5pw
パスワード入力を求められるので2回入力。

courier-imap?authdaemon?どっち?が作ったデータベースを触れるようにする。
# makeuserdb

courier-imapとcourier-authdaemonの再起動
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-authdaemon restart

そんな感じ。


参考文献
CourierでIMAPサーバ
自宅メール環境の構築
courier-imapのパスワードについて


time stamp:2009/04/19 20:53:58
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

けいおん!
TBSアニメーション・けいおん! 公式ホームページ

どっかで見たキャラデザだなぁと思って調べたら、堀口悠紀子と言う方だった。
知らないんですけど…

次に調べたもの。

堀口悠紀子さんて誰ー?

そーか!どっかで見たと思ったらツァラトゥストラの階段の挿絵の人か!
あの絵柄は印象に残ってたからなぁ。

あのラノベは無駄にゲーム性を追及してるからなかなか面白いんだよなぁ。
扉の外シリーズは、巻を重ねるごとに評価が落ちまくっていったけど。
あれは完全に1話完結の物語に蛇足を付け過ぎてたよなぁ。

物語内のゲームシステムは一見かなり面白そうなんだけど、これを実現しようとすると、ゲームの目的が娯楽とはかけ離れているため、ぱっと見で何をするゲームなのかわからなくなってしまうんだよなぁ。
多分、何か別のゲームのサブシステム的な動かし方をすると非常に面白い物になると思う。


time stamp:2009/04/19 02:36:54
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

ubuntuにpostfixを入れたメモ
わざわざsudoするのが面倒なのでrootになっておく。
$ sudo su -

ただ、ubuntuの管理的によろしくないと思うのでお勧めはしない。
で、とりあえずパッケージから入れる。
# aptitude install postfix

途中でホスト名聞かれるので答える。例えばexample.co.jpとか。
インストールされると/etc/postfix/に設定ファイルが出来る。
とりあえずバックアップをコピーして編集。
# cd /etc/postfix/
# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
# vi /etc/postfix/main.cf

色々追加したり修正したりする。

inet_interfaces = all
mydomain = example.co.jp
myhostname = example.co.jp
myorigin = $mydomain
mydistination = example.co.jp localhost.$mydomain localhost
relay_domains = $mydistination
mynetworks = 192.168.0.0/24 127.0.0.0/8


smtp_authを使う為の設定が以下

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname

#認証を通したものだけ許可。それ以外を拒否
smtpd_recipient_restrictions = permit_sasl_authenticated,reject

#匿名での接続を拒否。PLAINでの認証も拒否
smtpd_sasl_security_options = noanonymous, noplaintext

以上main.cf

ubuntuはchrootして上手く動いてくれないらしいのでmaster.cfも修正。
# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vi /etc/postfix/master.cf

# ================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================================

#chrootをnに
smtp inet n - - - - smtpd

smtp inet n - n - - smtpd

#submission portでも使えるようにコメントアウトを取る。
#submission inet n - n - - smtpd

submission inet n - n - - smtpd

# -o smtpd_tls_security_level=encrypt

#コメントアウト取る。
# -o smtpd_sasl_auth_enable=yes

-o smtpd_sasl_auth_enable=yes

# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING

以上 mastter.cf

文法のチェック
# postfix check

/etc/postfix/sasl/smtpd.confを新規作成する。
# vi /etc/postfix/sasl/smtpd.conf

次の設定を書き込む

pwcheck_method: auxprop

んでpostfixを再起動
# /etc/init.d/postfix restart

smtp_authする為にsasl2-binを入れる
# aptitude install sasl2-bin

LINUXのユーザパスワードを使う事も出来るけど多少セキュアにするためにパスワードデータベースを作る。
# saslpasswd2 -c -u example.co.jp smtp_user

同じコマンドをユーザ分実行
次のコマンドで追加したユーザデータが見れる。
# sasldblistusers2

次のコマンドでユーザデータの削除
# saslpasswd2 -d -u example.co.jp smtp_user

出来たデータベースは
/etc/sasldb2

にある。中身は次のコマンドで見えてしまう。
# strings /etc/sasldb2

これをpostfixが使えるようにする。この辺の設定に自信がない。
# chown postfix /etc/sasldb2
# chgrp postfix /etc/sasldb2
# chmod 0600 /etc/sasldb2

saslauthdをLinux起動時に起動するようにする?
# vi /etc/default/saslauthd

START=no

START=yes

とりあえず終了?様々な場所で長時間詰まったせいでよく覚えていない。
saslauthd起動。
# /etc/init.d/saslauthd restart

今回はとりあえず動いてる状態で、あんまり設定に自信がないのでここ以外のサイトを参考にした方がよいかもです。
postfixの挙動がよくわかっていません。

参考文献
Debian でメールサーバ
Postfix で SMTP-AUTH を実現
Postfix 設定パラメータ
メールサーバの設定 - postfix & dovecot
mail.logのエラー情報とか
Ubuntu Sever Edition を使ったサーバ構築のメモ
Ubuntu/postfix@ローカル


time stamp:2009/04/19 02:02:15
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

今日の駄目な瞬間
ポケットから washed USBメモリ が出てきた。




挿したら中身無事だったけど。


time stamp:2009/04/16 18:45:25
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

php5を入れたメモ
$sudo aptitude install php5

php.iniファイルを適当に編集

apacheのhttpd.confに
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
を追加。

更にhttpd.confでapacheにphpのモジュールを読み込ませる
apache2をソースから入れたせいでlibphp5.soが変な場所にあったので、その場所を指定してやる。
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

apacheの再起動
$ /usr/local/apache2/bin/apachectrl restart

phpは明示的に起動させるわけではない。

phpの動作確認はサーバのルートにindex.phpでも作って
<?php phpinfo(); ?>
と書いて、アクセスして動けばOK

参考文献
Debian PHP5のインストールと設定
apache2でphp5設定


time stamp:2009/04/16 10:11:59
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

apache2の設定で詰まり中
全てのディレクトリでcgiの実行を許可してるつもりなのに、何故か403エラーが返って来る。
<
ServerRoot '/usr/local/apache2'

DocumentRoot '/home/www'

<Directory />
  Options ExecCGI FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all
</Directory>

<Directory '/home/www'>
  Options FollowSymLinks
  AllowOverride None
  order allow,deny
  Allow from all
</Directory>

ScriptAliasなどの/cgi-bin/関連の設定は全てコメントアウト

<IfModule mime_module>内に
AddHandler cgi-script .cgi .pl
はある。

cgi自体のパーミッションは755にしたし、隣にあるhtmlファイルはちゃんと読んでる。
一体何が悪いのかなぁ

*[ 2009/04/16 07:07:04 ] 追記
<Directory />
  Options ExecCGI FollowSymLinks

<Directory />
  Options FollowSymLinks


<Directory '/home/www'>
  Options FollowSymLinks

<Directory '/home/www'>
  Options ExecCGI FollowSymLinks


で直りました。
助言をくれたn氏ありがとうございます。


time stamp:2009/04/16 00:49:43
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

iptablesのメモ書き
iptablesのシェルスクリプトのメモ。

#!/bin/sh

any='0.0.0.0/0'

iptables -F
iptables -X
iptables -Z

#Policy setting
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Loopback Accept
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Local Area Network
iptables -A INPUT -i ! ppp0 -s $any -j ACCEPT
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#FTP
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 21 -j ACCEPT

#SSH
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 22 -j ACCEPT

#DNS
iptables -A INPUT -i ppp0 -s $any -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -s $any -p udp --sport 53 -j ACCEPT

#HTTP,HTTPS
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 443 -j ACCEPT

#NTP
iptables -A INPUT -i ppp0 -p udp -s $any --dport 123 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --sport 123 -m state --state ESTABLISHED,RELATED -j ACCEP
T

#TOMCAT
iptables -A INPUT -i ppp0 -s $any -p tcp --dport 8080 -j ACCEPT

#ICMP
iptables -A INPUT -i ppp0 -s $any -p icmp -j ACCEPT

#IPMASQUERADE
iptables -A FORWARD -o ppp0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

#何かの穴開け
iptables -A PREROUTING -t nat -p tcp --dport xxxxx -j DNAT --to 192.168.1.yyy:xxxxx
iptables -A FORWARD -o eth1 -s $any -p tcp -d 192.168.1.yyy --dport xxxxx -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

参考文献
俺でも解るIPTABLES
iptables を使った IP Masquerade の設定例
Ubuntu/iptables(firewall)


time stamp:2009/04/14 00:43:19
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

mysqlの基本的なこと
・使うデータベースを選択する。

mysql>use test_data_base;

・データベース内のテーブルの一覧を見る。

mysql>show tables;

・テーブルを作る。

mysql>create table test_table( id int(4),value varchar(20) );
引数に関しては、
カラム名 型(上限バイト数)
が一つのカラム。NOT NULLやAUTO_INCREMENTをスペースで区切って設定できたりもする。

・テーブルのカラムの情報を見る。

mysql>show columns flom test_table;

・レコード(データ)をテーブルに入れる。

mysql>insert into test_table(id, value) value(1, 'test_data');

・テーブルに入っているデータを見る。

mysql>select * from test_table;
*をカラム名にすることで、各カラムのデータを見れる。

・idで降順ソート(descを追加で昇順ソート)

mysql>select * from test_table order by id [desc];

・表示する件数の指定(0から10まで取得)

mysql>select * from test_table limit 0,10;

参考文献
MySQLクイック・リファレンス
MySQLメモ - その他


time stamp:2009/04/13 14:42:38
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

ネット復活@おうち
ようやくネットが開通しました。
これでやっと本来の生活スタイルに戻れます。



主に悪い方向へ。



夕方から今までずっと走り回ってたので今日は凄まじく疲れました。
もう眠いですがLinuxとかもうちょっとがむばります…。


time stamp:2009/04/12 23:50:11
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

Tomcat5.5でJavaでJDBCでMySQL
Tomcat5.5環境でJavaでJDBCのAPIを使ってMySQL5.0に接続する設定を書いた時のメモ
開発環境はeclipseでJ2SDK1.4.2くらい。
他に何かあった気がしたけど忘れた。

TomcatサーバでJava言語を使ってMySQLのDBを使うには、まずJDBCドライバをインストールする。
jarを置く場所は「%CATALINA_HOME%\common\lib」

eclipseで開発してるので、プロジェクトのWEB-INF/libに入れてビルドパスに追加する。

とりあえずMySQLで適当なテーブルを作成。
作成したのは
Tomcat5 サーブレット/JSP コンテナ
で解説されてたのを参考にして適当に

テスト用ユーザ:javatest
パスワード:javadude
データベース:javatest
テーブル:testdata

を作成した。
次にserver.xmlの設定…はしないで、コンテクスト.xmlを書く。
server.xmlは弄らなくても大丈夫です。

コンテクスト.xmlとは、指定したパスにリクエストを投げるための設定ファイルで、.htaccessに似てる?
%CATALINA_HOME%\conf\[engine name]\[host name]に作成する。
デフォルトではengine nameがCatalina、host nameがlocalhostとなっている
例えば、
http://localhost/test/
とかにリクエストが着たら、ROOTの下にあるtestディレクトリじゃなくて、まったく別のディレクトリに処理を投げるための設定がこれ。
書くのは、主にContextタグとResourceタグで、Contextタグは対象のパスとディレクトリを指定するためのタグで、例えばこんな風に書く。

<Context path="/test" reloadable="true"
  docBase="C:\eqlipse\workspace\test"
  workDir="C:\eqlipse\workspace\test\work" />

これで、http://localhost/test/にリクエストが来た場合、C:\eqlipse\workspace\testにリクエストを投げる。
このときのxmlのファイル名は、パス名と同じ「test.xml」にする。

次にResourceタグはこのように書く。

<Resource
  name="jdbc/test"
  type="javax.sql.DataSource"
  auth="Container"
  username="javauser"
  password="javadude"
  driverClassName="org.gjt.mm.mysql.Driver"
  url="jdbc:mysql://localhost:3306/javatest?characterEncoding=SJIS"
  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
 />

それぞれのパラメータの簡単な説明と言うかわかった事。

name:リソースの名前。適当でOK。web.xmlにも書くので覚えておくこと。
type:よくわからないけどリソースのタイプ。javax.sql.DataSourceを指定。これはデータソース形式を使う場合のタイプ。
auth:知らない。Containerを指定。
username:MySQLのユーザ名を指定。さっき作成したユーザ名を指定する。
password:さっき作成したユーザのパスワードを指定。
driverClassName:JDBCドライバのクラス名?MySQLを使う場合はorg.gjt.mm.mysql.Driverを指定。
url:MySQLのURLを指定。今回はlocalhostで動いてるMySQLに接続するので、ホスト名はlocalhost。MySQLに接続するポートの初期設定が3306なので、ポート番号を指定。これはしなくてもいいかも(未確認)。それから/で区切って、さっき作ったDB名を指定する。
?以降は文字コードの設定。これがないとUTF-8でデータのやり取りされるっぽい?(未確認)
factory:よくわからないけどfactoryに該当するクラス名を指定。注意しなきゃいけないのが、context.xmlでJDBCでMySQLみたいな単語で検索すると、
org.apache.tomcat.dbcp.BasicDataSourceFactory
って書いてある事が多い。
Tomcat5.5を使っている場合、これが
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
となるのでここでハマりまくる人が多いらしい。

ここまでReSourceタグの説明
ちなみに、Tomcat5.5ではReSourceParamsタグが使えないらしいので(未確認)全部ReSourceに書くこと。

次にweb.xmlを書く。
置く場所はC:\eqlipse\workspace\test\WEB-INF
こんな風に書く。
<web-app>
 <description>MySQL Test App</description>
 <resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/test</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
</web-app>

キーポイントはres-ref-nameタグにさっきReSourceで指定した名前を書くこと。
typeもauthも同じ?なのかな(未確認)

設定するファイルは以上。

サンプルプログラムはこんな感じ。ちなみにJSP。

01 <%@page contentType="text/html; charset=shift_jis" %>
02 <%@page import="java.util.*"%>
03 <%@page import="java.io.*"%>
04
05 <%@page import="java.sql.*, java.sql.Date"%>
06 <%@page import="javax.sql.*"%>
07 <%@page import="javax.naming.*"%>
08
09 <html>
10 <head><title>db_tesst.jsp</title></head>
11 <body>
12 <ul>
13 <%
14 Context context=new InitialContext();
15
16 DataSource dataSource = null;
17
18 dataSource=(DataSource)context.lookup("java:comp/env/jdbc/test");
19
20 Connection conn=null;
21 conn=dataSource.getConnection();
22 PreparedStatement statement=conn.prepareStatement("select foo from testdata");
23 ResultSet result=statement.executeQuery();
24
25 while(result.next()){
26   out.println("<li>"+result.getString(1)+"</li>");
27 }
28
29 if(conn!=null) conn.close();
30
31 out.println("</ul>\nend db session");
32
33 %>
34
35 </body>
36 </html>

ここまで。
例外処理とかまったく投げてないので実行時は注意すること。

05行目でわざわざjava.sql.Dateをインポートしてるのは、java.io.Dateとクラスがかぶってしまうための処理。
18行目の引数は、java:comp:env/までが固定。それ以降はReSourceで指定したリソースの名前。
23行目でsql文をデータベースに投げている。

と言う話でした。
きっとどっか抜けてるけどまぁいいや。

後は言わなくてもわかって下さい。
某氏が言ってたようにホントに自鯖に立てるWebサーバソフトがTomcatになりそうな予感。
と言うかubuntu server入れたらTomcat勝手に入ったし\(^o^)/

参考URL
オブジェクト指向とデザインパターンブログ
tomcat - pukiwiki(「ネイティブなコネクションを取得」の節)


time stamp:2009/04/10 15:06:23
トラックバック(0)|コメント(0)
コメントを書く
この記事のトラックバックURL:

風邪引いた
生活のリズムを変えたら一瞬でした。

多分直接の原因は一昨日の夜ゲーセン行ってDDRやって汗だくのままラーメン屋でラーメン食べておうち帰ってベッドで横になって気が付いたら朝になってたって事だろうなぁ。

もう少ししっかりしないとだなぁ。


time stamp:2009/04/08 16:22:46
トラックバック(0)|コメント(2)
コメントを書く
この記事のトラックバックURL:

オブジェクト指向のお勉強
疑りぶかいあなたのためのオブジェクト指向再入門

ここを読んだらやっとピンときた。


time stamp:2009/04/02 11:25:30
トラックバック(0)|コメント(2)
コメントを書く
この記事のトラックバックURL:

本日の物欲日記
急にテレビが欲しくなった
ポチっと



今日は3月最後の日だから明日の朝は遅刻しないように早く起きなければ.
流石に初日から遅刻とかありえないし(笑


time stamp:2009/04/01 14:47:12
トラックバック(0)|コメント(2)
コメントを書く
この記事のトラックバックURL:
何かしら