2007年5月30日水曜日

Squidでキャッシュしない設定

スズキです。

表記、調べないとすぐに設定できなかったので、
メモ。

-------- squid.conf --------
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

acl HTML url_regex .html
no_cache deny HTML

acl VM url_regex .vm
no_cache deny VM
-------- squid.conf --------

QUERYに関しては、最初から設定済み。
HTMLとVM(Velocity)に関しては新規に設定です。

次は、5分で設定できるね。

--
blog: http://suz-lab.blogspot.com/

初はてブ!

スズキです。

下記記事がはてなブックマークされてました。
http://suz-lab.blogspot.com/2007/05/poundssl.html

初「はてブ」です

ってことで、下記情報を参考に、はてブ数を表示するようにしました。(右上)
http://104tech.blogspot.com/2007/04/blogger_12.html

でも、カウントはまだ1のままです。
いつ、2になるんだろう?

--
blog: http://suz-lab.blogspot.com/

2007年5月29日火曜日

Rubyインストール

スズキです。

suz-env-server環境にて、rubyをインストールしてみました。
下記がビルドスクリプトとなります。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/ruby.sh

なぜrubyかというと、単に、前々からやってみたかったからです。
ただ、apacheのハンドラーでやりたい機能があり、
それがrubyでできたらいいなーとも思っています。
(perlのハンドラーは経験があるので、今回はrubyに挑戦です)

あと、郵便番号情報のメンテナンススクリプトもrubyで書きたいなー
と思っているので、これらもろもろを視野に入れたrubyデビューとなります。

ただ、rubyの開発は、サーバ上で直接書くというものではなく、
eclipseのプロジェクトを作成してWindows上で書くスタイルにしようと思っています。
(eclipseにrubyのプラグインがあるので)

そのeclipse(ruby)プロジェクトをサーバにおいて、プログラムを動かす、
そんな運用を考えています。

次は、rubyのローカル開発環境の整備ですね。

--
blog: http://suz-lab.blogspot.com/

2007年5月28日月曜日

Poundのビルドスクリプトを2.3.2に

スズキです。

Poundが2.3.2になっています。
http://suz-lab.blogspot.com/2007/05/pound322.html

それに伴い、suz-env-serverプロジェクトのPoundビルドスクリプトも、
2.3.2に対応するようにしました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/pound.sh

# svn update
# cd $HOME/bin/build/
# ./pound.sh

にて"$HOME/sbin/pound/2.3.2"にインストールされます。
あとはタイミングを見計らい、そこのstable(シンボリックリンク)を
2.3.2に変更すればOKです。
(Poundの再起動は必要です。)

ちなみに、ビルドスクリプトの変更部分は、
VERSION=2.3.2
の部分となります。
(このあたりも、簡単にdiffして引用できるようにしたいなー)

--
blog: http://suz-lab.blogspot.com/

2007年5月27日日曜日

Googleカレンダー設置しました

スズキです。

本ブログに僕が利用している"Googleカレンダー"を設置してみました。
(右上です)

Googleカレンダーのよいところは、
イベントごとに公開/非公開が設定でき、
非公開のイベントは時間だけ表示されるようになっています。

当面は、パブリックに公開されているイベントは公開、
それ以外(主に仕事)、は非公開で運用してみようと思います。

ブラウザのホームをこのブログにしているので、
自分のスケジュールがブログで確認できると、結構便利です。
また、Googleカレンダーへの入力もちゃんと行うようになりそうです。

--
blog: http://suz-lab.blogspot.com/

2007年5月25日金曜日

Kuina-Dao 1.0.0 リリース

スズキです。

表記のとおりです。(予想通りですね)
http://www.seasar.org/wiki/index.php?SeasarWhatsNew%2F2007-05-24#se81f7e1

気になる変更点は

> - SQLによる問い合わせで結果をMapまたはMapのListで取得できるようにしました.

です。

もしかしたら、Mapでデータを取ってきて、DxoにてDtoに変換すれば、
Entity作らなくてもいいなー、と思っています。

次回のSeasar2案件は、Daoまわりの作り方を結構変更するかも。

--
blog: http://suz-lab.blogspot.com/

2007年5月24日木曜日

S2Hibernate-JPA 1.0.0 リリース

スズキです。

表記のとおりです。
詳しくは下記URLです。
http://www.seasar.org/wiki/index.php?SeasarWhatsNew%2F2007-05-24#e0746576

kuina-daoもそろそろrcとれるのかな?

--
blog: http://suz-lab.blogspot.com/

2007年5月23日水曜日

Seasar2.4.13 リリース

スズキです。

詳しくは下記にて。
http://www.seasar.org/wiki/index.php?SeasarUpdateOperationLog#xbd7bbee

新規案件でSeasar2を使う予定ものがあるので、
早速、2.4.13ベースでEclipseのブランクプロジェクトを構築しようと思います。
(できれば、今日中!)

--
blog: http://suz-lab.blogspot.com/

Poundが2.3.2になってます

スズキです。

poundが2.3.2になってました。

http://www.apsis.ch/pound/

早速アップデートですね。
(何が変わったんだろう?)

--
blog: http://suz-lab.blogspot.com/

HTTPSにするとWindowsのWebDav問題解決

スズキです。

WindowsでもApacheのWebDav普通に使えるようにしないといけないなー、
でも、mod_encoding入れるの面倒だなー、と思いながら、ググってると、
こんな記事見つけました。

http://d.hatena.ne.jp/Tommy1/20070507/1178548295

おおー、httpsなら問題なかったのか!
とびっくりしながら、実験してみると、本当に大丈夫でした。

ちなみにpoundでWebDav通るようにするには、
設定ファイルを、下記のように設定する必要があります。

--------$HOME/etc/pound/<ノード番号>/pound.cfg
ListenHTTP
  Address 0.0.0.0
  Port 80
  xHTTP 4
  ...
End
--------
※MSを無視すれば、xHTTPは2でも大丈夫!?
※さらに上流でSSLラッパーしています。

--
blog: http://suz-lab.blogspot.com/

2007年5月22日火曜日

メールサーバ(POP/IMAP)のクラスタリング

スズキです。

表記を実現させることができるかもしれない、
サーバアプリケーションを見つけました

http://perdition.sourceforge.jp/
POP/IMAPのロードバランサーのようです。

http://www.dbmail.org/
メールストレージがデータベースで、クラスタリングが可能のようです。

クラスタリングをするには、
アプリケーションがクラスタリングをサポートしているのは当然のこと、
クラスターの各ノードに接続を割り振るロードバランサーも必要になります。

ロードバランサーとして、perdition、
クラスタリング可能なPOP/IMAPサーバーとして、dbmailを使えば、
表記が実現できそうです。

久しぶりに興味深い内容です。

--
blog: http://suz-lab.blogspot.com/

2007年5月18日金曜日

del.icio.us(ソーシャルウェブブックマーク)使うようにしました

スズキです。

かなり乗り遅れてますが。
ソーシャルウェブブックマークを使い始めました。
http://del.icio.us/
です。(老舗ですね)

使い勝手はいいと思います。
ブラウザのプラグインで、ブラウザメニューのボタンから、
現在のページをブックマークできるのがいいですね。
(他のサービスとの比較はおこなっていませんが)

今まで、お気に入り登録をほとんどしたことがない、私ですが、
予想外に、このソーシャルウェブブックマークは使っています。

本ブログの右側にも、del.icio.usのブログパーツを表示するようにしました。

うまく、使いこなしたいところです。

--
blog: http://suz-lab.blogspot.com/

zlibの独自インストールとapacheの再ビルド

スズキです。

suz-env-serverを新しいマシン(CentOS4系)に入れようとしたところ、
apacheのインストールで問題発生。
./configure時にzlibがないとのこと。

今までの環境は、zlibがはじめから導入されていて、
今回は導入されてなかったってことですね。

で、suz-env-serverのポリシーにのっとり、
独自にzlibをインストールして、apacheのビルドではそれを用いるようにしました。

下記が、ビルドスクリプトです。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/zlib.sh
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/apache.sh

zlibに関しては、下記ディレクトにに一式インストールされます。
$HOME/sbin/zlib/$VERSION
(例のごとく主導でstableにシンボリックリンクを春必要があります)

apacheに関しては、ビルドスクリプトに下記オプションを追加しています。
--with-z=$HOME/sbin/zlib/stable
--with-ssl=$HOME/sbin/openssl/stable
(ついでにopensslも追加しました)
これで、独自インストールしたzlibを用いたapacheがビルドされます。

既存のapacheセットアップ済みsuz-env-server環境では、
apacheから次のバージョンがリリースされたら、適応されることになります。

--
blog: http://suz-lab.blogspot.com/

Poundでリダイレクト設定

スズキです。

以前、apacheのmod_rewriteでのリダイレクトを紹介しました。
http://suz-lab.blogspot.com/2007/05/modrewrite.html

でも、よく考えたら、poundの方でもできるので、
そちらのやり方の紹介です。(個人的には、poundでやりたい)
(参考リンク集: http://del.icio.us/iretsuzuki/Pound)

要は設定ファイルに下記のように記述します。
--------pound.cfg
Service
  HeadRequire "Host: .*www.xxx.xxx.*"
  Redirect "http://www.yyy.yyy"
END

Service
  URL  "/zzz.*"
  Redirect "https://ssl.yyy.yyy"
END
--------

Redirectは直感的にわかると思いますが、文字通り、リダイレクト先です。
で、HeadRequire、URLはリダイレクトするための条件です。

上の例は、Hostヘッダにwww.xxx.xxxが含まれていたら、
http://www.yyy.yyyにリダイレクトしなさい、です。
バーチャルホストごとの設定で使えると思います。

下の例は、"/zzzで始まるURLの場合(当然、前にhttp://.../があります)
https://ssl.yyy.yyyにリダイレクトしなさい、です。
httpsへのリダイレクトなどに使えると思います。

注意事項としては、たとえば、
http://www.xxx.xxx/zzz/aaa
がリダイレクトすると、実際は、
http://www.yyy.yyy/zzz/aaa
にリダイレクトされます。

つまり、/zzz/aaaが引き継がれます。(下の例でも同様です)

今後はできるだけ、poundで処理するようにします。

--
blog: http://suz-lab.blogspot.com/

2007年5月17日木曜日

MySQLの起動と停止

スズキです。

MySQLの起動&停止スクリプトを作成しました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/rc/mysql-api.sh
--------
#!/bin/sh

SOCKET=$HOME/var/run/mysql/$1.sock
CONF=$HOME/etc/mysql/$1/my.cnf

case "$2" in
  start)
    $HOME/sbin/mysql/stable/bin/mysqld_safe --defaults-file=$CONF &
    ;;
  stop)
    $HOME/sbin/mysql/stable/bin/mysqladmin --socket=$SOCKET -u root shutdown
    ;;
esac
--------
(当然suz-env-server用です)

停止は今まで、面倒で、killとかしてたけど、
これからはmysqladminでやります。

mysql-apiという名前は、ndbクラスター用に、
mysql-ndb
mysql-mgm
もあるからです。(まだ作ってません)

次は、MySQLのオプション調整して、
その辺が、しっくりきたら、MySQLのビルドスクリプトを完成まで
もっていく予定です。

--
blog: http://suz-lab.blogspot.com/

サーバ監視/ネットワーク監視サービス

スズキです。

表記のようなサービスがありました。
WEB(HTTP),FTP,MAIL(SMTP,POP3)などを監視可能のようです。
http://www.cman.jp/network/

早速、登録してみました。
ぼちぼち使っていこうと思います。

無料っていうのがいいですね。

--
blog: http://suz-lab.blogspot.com/

ApacheのVirtualHost復習

スズキです。

久しぶりに、apacheのVirtualHost(名前ベース)の設定をしました。
まあ、下記の書式ですね。

注意しないといけないことは、
リクエストに該当するServerNameがなかったときは、
先頭のVirtualHostが適用されるってことですね。

--------httpd.conf
NameVirtualHost *

<VirtualHost *>
  ServerAdmin webmaster@xxx.xxx
  ServerName www.xxx.xxx
  CustomLog $HOME/var/log/apache/1/access-www_xxx_xxx.log combined
  ErrorLog $HOME/var/log/apache/1/error-suz_www_xxx_xxx.log
</VirtualHost>

<VirtualHost *>
  ServerAdmin webmaster@yyy.yyy
  ServerName www.yyy.yyy
  CustomLog $HOME/var/log/apache/1/access-www_yyy_yyy.log combined
  ErrorLog $HOME/var/log/apache/1/error-www_yyy_yyy.log
</VirtualHost>
--------

--
blog: http://suz-lab.blogspot.com/

Mavenでビルドするときの文字コード指定

スズキです。

表記のやり方です。
pom.xmlのmaven-compiler-pluginのconfigurationに
encodingの設定をする形になります。

--------pom.xml
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <encoding>MS932</encoding>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>
--------

まあ、メモとして。

--
blog: http://suz-lab.blogspot.com/

Javaでクレジットカード番号検証

スズキです。

表記Javaのライブラリを作成し、"Google Code"にて公開しました。

プロジェクト名は"suz-s2-validator"です。
seasar2を用いた検証フレームワーク的な意味合いでつけていますが、
現状は、seasar2は使っていません。
http://suz-lab.googlecode.com/svn/trunk/suz-s2-validator/

最初の検証クラスとして、クレジットカード番号を検証するものを
作成しました。

下記情報を参考にしています。
http://search.cpan.org/src/IVAN/Business-CreditCard-0.30/CreditCard.pm
http://svn.apache.org/viewvc/jakarta/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/CreditCardValidator.java?view=markup
(http://del.icio.us/iretsuzuki/Creditcard)

対応しているカードタイプは、
VISA、MASTERCARD、AMEX、DISCOVER、DINERS、JCB
の5つです。
http://suz-lab.googlecode.com/svn/trunk/suz-s2-validator/src/main/java/jp/co/iret/suz/s2/validator/type/CreditcardType.java

使い方は、
CreditcardUtil.isValid("カード番号", カードタイプ<上記の列挙型>)
です。
検証の成功(true)/失敗(false)は戻り値(boolean)で示しています。
http://suz-lab.googlecode.com/svn/trunk/suz-s2-validator/src/main/java/jp/co/iret/suz/s2/validator/util/CreditcardUtil.java

テストコードはこちらです。
http://suz-lab.googlecode.com/svn/trunk/suz-s2-validator/src/test/java/jp/co/iret/suz/s2/validator/util/CreditcardUtilTest.java

最後に注意点ですが、
CreditCard.pmのロジックで
$Countryにたいしてチェックがあるもの(US/CA/CHなど)は実装していません。
(当面、使う対象は日本なので)

--
blog: http://suz-lab.blogspot.com/

2007年5月16日水曜日

Tomcat6.0.13リリース

スズキです。

表記のようにtomcat-6.0.13がリリースしました。
http://tomcat.apache.org/tomcat-6.0-doc/changelog.html
http://mail-archives.apache.org/mod_mbox/www-announce/200705.mbox/%3c4649CA7B.2090505@apache.org%3e

これに伴い、suz-env-serverのtomcatビルドスクリプトも6.0.13対応にしました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/tomcat.sh

変更点ですが、まずは、バージョン指定を6.0.13に。
VERSION=6.0.13

また、tomcat-nativeのバージョンが1.1.10になっていたので、
tomcat-versionを指定するシェル変数を用意して、スクリプトは
その変数を使うように修正しました。(今までは1.1.8決めうち)
NATIVE_VERSION=1.1.10

"svn update"してtomcat.sh実行すると、

$HOME/sbin/tomcat/6.0.13
$HOME/sbin/tomcat-native/1.1.10

に該当するものがインストールされます。

最後にそれぞれ、stableのシンボリックリンクを
インストールしたものに張りなおせば、アップデート終了です。

--
blog: http://suz-lab.blogspot.com/

ConversionRuleはどこに?

スズキです。

DxoのアノテーションにConversionRuleというものがあります。
パッケージは"org.seasar.extension.dxo.annotationです。
http://s2container.seasar.org/ja/s2-tiger/apidocs/org/seasar/extension/dxo/annotation/ConversionRule.html

このアノテーションを用いたソースをmavenでコンパイルするためには、
pom.xmlに該当するjarのdependency登録をする必要があります。

で、パッケージみて、s2-extension-2.4.12.jarを登録して、コンパイルしてみると、
やっぱり、ConversionRuleが解決しませんエラー。

調べてみると、やはりs2-extension-2.4.12.jarにはなく、
どこにあるかというと、s2-tiger-2.4.12.jarにありました。
(まあ、知ってるか知ってないかですね)

ということで、下記を追加してコンパイル成功!

--------pom.xml
<dependency>
  <groupId>org.seasar.container</groupId>
  <artifactId>s2-tiger</artifactId>
  <version>2.4.12</version>
  <type>jar</type>
</dependency>
--------

でも、WEB-INF/libの中身と、
pom.xmlのdependencyの記述をあわせるのは面倒だなー。

mavenのcompilerプラグインの設定で、WEB-INF/libのjarをクラスパスとして
コンパイルできないか、調べてみたけど、できないっぽいね。

antでやるしかないか...がんばろう。

--
blog: http://suz-lab.blogspot.com/

mod_rewriteでサーバの引越し対策

スズキです。

サーバの引越しをするとき、
先に、DNSの設定だけ新マシンに書き換え、
リリースまでは、新マシンのapacheが旧マシンにリダイレクトする形をとらせ、
リリース時に、新マシンのリダイレクト設定を解除する、
こんな運用をしばしば行うと思います。

そのときに活躍する、apache(mod_rewrite)の設定です。
(新マシンのapacheの設定です)

--------httpd.conf
RewriteEngine on
RewriteRule ^/(.*)$ http://<引越し元>/$1 [R,L]
--------
R: リダイレクト(他にプロキシーのPとかもある)
L: ここで書き換え処理を中止

詳しくは下記ページにて。
http://www.net-newbie.com/trans/mod_rewrite.html

--
blog: http://suz-lab.blogspot.com/

2007年5月13日日曜日

Seasar2のconvention.diconに複数のルートパッケージを追加

スズキです。

Seasar2でjarファイルにあるDAO(別パッケージ)をDI/AOPしようとしたときに、
今までは、JarComponentAutoRegisterをapp.diconに書くことによって
実現していました。

近頃、SmartDeployを覚えて、同様のことを試すと、
例外が発生してしまいます。(どのような例外かは忘れてしまいました)

で、途方にくれていたら、ふと、
ルートパッケージを定義しているconvention.diconの、
実際にルートパッケージを追加するメソッドは
addRootPackageName
だったなー。
"add"!?、
"set"じゃないんだ!
ということで、下記を試してみたら、見事にjarのほうのパッケージも
ルートパッケージとして認識して、SmartDeployを通して、
DAOもDI/AOPされるようになりました。

--------convention.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC
    "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components>
  <component
      class="org.seasar.framework.convention.impl.NamingConventionImpl">
    <initMethod name="addRootPackageName">
      <arg>"jp.co.iret.suz.user"</arg>
    </initMethod>
    <initMethod name="addRootPackageName">
      <arg>"jp.co.iret.suz.common"</arg>
    </initMethod>
  </component>
</components>
--------

パッケージねたはもう一つあります。

--
blog: http://suz-lab.blogspot.com/

久しぶりのOracle&データベース作成

スズキです。

仕事で、久しぶりにOracleさわりました。
やったことは、データベースの作成です。

一応、Oracle9iのPlatinumホルダーですが、
すっかり、忘れていていました。

DBCAを使えば、簡単なのになー、と思いながら、
linux上のOracleに対する、リモート環境(ssh)からの作業だったので、
そういうわけには、行きません。(さすがに、Xいじる元気はありませんでした)

下記は参考にしたサイトです。
http://www.adp-gmbh.ch/ora/admin/creatingdbmanually.html

まずは、パラメータファイルの作成です。
(SIDはorclです)

--------initorcl.ora
db_name=orcl
db_files = 80
db_file_multiblock_read_count = 8
db_block_size=8192
shared_pool_size = 100000000
log_checkpoint_interval = 10000
processes = 50
parallel_max_servers = 5
log_buffer = 32768
max_dump_file_size = 10240
global_names = TRUE
control_files = (<oradataのパス>/orcl/control01.ctl,
<oradataのパス>/orcl/control02.ctl)
undo_management=AUTO
undo_retention=3600
undo_tablespace=undo
compatible = 10.2.0
----

まだ、とりあえず動く、という程度のものです。

次にsqlplusによるOracleへの接続です。

// データベースが立ち上がってないので、 "/nolog"をつけます。
# sqlplus /nolog

// とりあえず、"sysdba"権限で接続
SQL> connect / as sysdba

// データベースがまだ作成されてないので"nomount"をつけて起動
SQL> startup nomount

// ちなみに停止は下記です
SQL> shutdown

そしてデータベースの作成です。
まずは下記SQLを実行します。

--------
create database orcl
logfile
  group 1 ('<oradataのパス>/orcl/redo1.log') size 10M,
  group 2 ('<oradataのパス>/orcl/redo2.log') size 10M,
  group 3 ('<oradataのパス>/orcl/redo3.log') size 10M
character set utf8
national character set utf8
datafile '<oradataのパス>/oradata/orcl/system.dbf'
  size 50M
  autoextend on
  next 10M maxsize unlimited
  extent management local
sysaux
  datafile '<oradataのパス>/oradata/orcl/sysaux.dbf'
  size 10M
  autoextend on
  next 10M
  maxsize unlimited
undo tablespace undo
  datafile '<oradataのパス>/oradata/orcl/undo.dbf'
  size 10M
default temporary tablespace temp
  tempfile '<oradataのパス>/oradata/orcl/temp.dbf'
  size 10M;
--------

次に下記SQLファイルを実行します。

SQL> @?/rdbms/admin/catalog.sql

これで、とりあえず、データベースが作成されます。

最後は適宜、ユーザーの作成&権限の付与&DBに接続実験です。

// ユーザーの作成
SQL> create user <ユーザー名> identified by <パスワード>;

// 権限の付与
SQL> GRANT connect, resource TO <ユーザー名>;

// 接続実験
SQL> sqlplus <ユーザー名>/<パスワード>@<ホスト/IP>:<ポート>/<SID>

本気でOracleやりたくなってきた。

--
blog: http://suz-lab.blogspot.com/

2007年5月12日土曜日

Poundを2.3.1にアップグレード

スズキです。

表記のように、poundのビルドスクリプトを2.3のものから、
2.3.1のものにアップグレードしました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/pound.sh

とは行っても、上記スクリプトの
VERSION=2.3

VERSION=2.3.1
にしただけです。

# cd $HOME/bin
# svn update
# cd build
# ./pound.sh

を実行することで、

$HOME/sbin/pound/2.3.1
以下に、poundがインストールされます。

最後に、シンボリックリンク
$HOME/sbin/pound/stable
を2.3から2.3.1に切り替えれば、
$HOME/bin/rc/pound.sh
スクリプトでpound(2.3.1)の起動/停止ができます。

--
blog: http://suz-lab.blogspot.com/

2007年5月11日金曜日

PoundでSSLラッパー

スズキです。

poundでsslのラッパーを行う方法です。
今まではsquidで同様のことをしていましたが、
今回から、poundを利用するようにしました。

前提として、鍵/証明書/中間証明書は下記のように準備してある。
key-org.pem: 鍵
cert.pem: 証明書
inca.pem: 中間証明書

まずは、poundで利用するpemファイルの作成です。

// パスワードを埋め込んで、pound起動時にパスワードが聞かれないようにします。
# openssl rsa -in key-org.pem -out key.pem
Enter pass phrase for key-org.pem:
writing RSA key

// 証明書に鍵情報を追記します。
# cat key.pem >> cert.pem

// 証明書に中間証明書を追記します。
# cat inca.pem >> cert.pem

このcert.pemを
$HOME/etc/pound/1
などにおきます。
(suz-env-server環境を前提にしています)

次は、poundの設定ファイルの調整です。

----$HOME/etc/pound/1/pound.cfg
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "$HOME/etc/pound/1/cert.pem"
Service
BackEnd
Address 127.0.0.1
Port 8011
End
BackEnd
Address 127.0.0.1
Port 8012
End
End
End
----

※$HOMEは適宜自分の環境のpathに書き換えてください。

最後に、poundを再起動し、https://...にアクセスできれば完了です。

# cd $HOME/bin/rc
# ./pound 1 stop
# ./pound 1 start

--
blog: http://suz-lab.blogspot.com/

2007年5月7日月曜日

TRACKBACK受け付けるようになりました。

スズキです。

Blogger(本ブログ)ではtrackbackできないなー、と思いきや、
他のサービスを活用して、trackbackを実現する方法が紹介されてました。
http://www.kuribo.info/2006/09/blogger-beta-haloscan.html

早速、本ブログも導入してみました。
http://www.haloscan.com/

ウィザードどおりに、設定すれば、
簡単に、trackbackを受け付けることができるようになりました。
エントリーの最後に、trackbackリンクができてると思います。

ただ、コメントまで、haloscan管理になってしまいました。

とりあえず、これで様子見ですね。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

2007年5月6日日曜日

Java-DBまわりのフレームワーク

スズキです。

近頃、いろいろ場当たり的に案件こなして、
表記の知識がたまったので、ここで一つ、
今後、深く掘り下げていく、方向性(自分用)を決めておきます。

フレームワークは下記で。

○Seasar2
http://s2container.seasar.org/ja/

○Kuina-Dao
http://kuina.seasar.org/ja/

○S2Hibernate
http://s2hibernate.seasar.org/ja/

○Hibernate Core
http://www.hibernate.org/344.html

○Hibernate Validator
http://www.hibernate.org/412.html

要はKuina-DaoでDBアクセスしますってことですね。
で、バックエンドはHibernate使ってますってことです。

せっかくHibernateを使うんだからってことで、
Hibernate Validatorも積極的に使っていこうと思っています。

※Hibernate Searchにかんしては、日本語テキスト検索関係を
luceneにしようか、sennaにしようか、まだ決めかねているので、
保留中です。
http://lucene.apache.org/
http://qwik.jp/senna/FrontPageJ.html

[フレームワークを使う上での方針]
-基本的にSQLを書く
-Entityオブジェクトはeclipseのdaliで生成
-クライアントからもらったデータに関しては、Hibernate Validatorを適用

[現状の問題点]
-複合キー、外部キーが張られた状況でdaliにて作成されるEntityの扱い

サーバ関係が落ち着いたら、次はJava-DB系を集中的にやります。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

tomcat.sh 完成

スズキです。

suz-env-server環境でのtomcat環境作成スクリプトtomcat.shが完成しました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/tomcat.sh

上記スクリプトを実行すると、下記のようなtomcat環境が構築されます。

$HOME/sbin/tomcat/$VERSION : tomcatの実行環境
$HOME/etc/tomcat/<ノード番号> : tomcatの設定ファイル
$HOME/var/log/tomcat/<ノード番号> : tomcatの出力ログ
$HOME/var/run/tomcat : tomcat実行時に使う一時フォルダ
$HOME/var/webapps/tomcat/<ノード番号> : tomcatにデプロイするWebアプリ(war)

※初期インストール時にはノード番号は1系と2系の二つ構築します。
※実行の際には$VERSIONを手動でstableにシンボリックリンクする必要があります。
※Javaの実行環境が$HOME/sbin/java/stableからたどれる必要があります。


Tomcatの実行に関しては下記スクリプトにて行います。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/rc/tomcat.sh

# cd $HOME/bin/rc
# ./tomcat.sh <ノード番号> start : 起動
# ./tomcat.sh <ノード番号> stop : 停止

また、初期設定では、dailyで$HOME/var/log/tomcat/<ノード番号>を
ログローテートするようにしています。その際、tomcatの再起動もしています。
ですので、
$HOME/etc/logrotate/<ノード番号>/logrotate.d/daily/tomcat.conf
が存在し、そこに上記の内容が記述されています。
http://suz-lab.blogspot.com/2007/05/catalinaoutlogrotate.html

最後に、この環境はクラスター前提で構築されてますが、
このあたりは、次回に紹介します

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

2007年5月4日金曜日

Tomcatでアクセスログの出力

スズキです。

表記の方法です。

詳細は下記に書いてありますが、
http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html
簡単に言うと、server.xmlに<Host></Host>の中に
下記を追記するだけです。

--------
<Valve className="org.apache.catalina.valves.AccessLogValve"
  directory="$HOME/var/log/tomcat/1"
  prefix="localhost-access"
  suffix=".log"
  pattern="combined"
  rotatable="false"
  resolveHosts="false"/>
--------

※$HOMEは例のごとく、実際のパスを指定してください。
※おそらく、上記の記述はコメントになっています。

$HOME/var/log/tomcat/1/localhost-access.log
として、アクセスログが出力されます。

ここでは、あえて、rotatableはfalseにし、
実際のローテーションはlogrotateに任せることを前提としています。

今は、tomcatの設定まわりの復習って感じですね。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

Google Docs のテストです。

2007年5月3日木曜日

catalina.outのlogrotate

スズキです。

下記はtomcatのログ(catalina.out)をlogrotateコマンドで、
ログローテートするための設定です。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/tomcat.sh
--------
$HOME/var/log/tomcat/1/*log {
  copytruncate
  weekly
  rotate 30
  compress
  size 1k
  missingok
}
--------

ポイントはcopytruncateですね。
これは、対象のログをアーカイブ用にコピーして、
元のログを空にする設定です。

※$HOMEは適宜、実際のPATHに書き換えてください
※このサンプルではcatalina.outは
$HOME/var/log/tomcat/1/catalina-out.log
として出力しています。

次は、設定ファイルの調整かな。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

tomcat起動スクリプトの更新とAPRの利用

スズキです

suz-env-serverで、tomcatの起動スクリプトを更新しました。
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/rc/tomcat.sh

使い方は、$HOME/bin/rc以下で

起動: ./tomcat.sh <ノード番号> start
停止: ./tomcat.sh <ノード番号> start

となります。

変更のポイントは

-起動/停止にjsvcを利用

-出力ログのパスを$HOME/var/log/tomcat/<ノード番号>/に移動

-JVM起動時にserverオプションを付与

-起動時に
"-Djava.library.path=$HOME/sbin/tomcat-native/stable/lib"
とすることでaprのnativeライブラリを利用するように調整
http://tomcat.apache.org/tomcat-6.0-doc/apr.html

ですので、上記、起動スクリプトを使う場合には、
$HOME/sbin/tomcat/stable/binの下の

jsvc.tar.gz
tomcat-native.tar.gz

を展開してビルド&インストールする必要があります。
(下記スクリプトでtomcatをインストールしていることが前提になっています)
http://suz-lab.googlecode.com/svn/trunk/suz-env-server/build/tomcat.sh

aprのnativeライブラリ利用に成功すると、
catalina.outで最初に出力される次のログが
--------
May 1, 2007 6:09:06 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The Apache Tomcat Native library which allows optimal performance
in production environments was not found on the java.library.path:
/home/suz/sbin/java/stable/jre/lib/i386/client:/home/suz/sbin/java/stable/jre/lib/i386:
/usr/java/packages/lib/i386:/lib:/usr/lib
--------
から
--------
May 3, 2007 5:11:26 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded Apache Tomcat Native library 1.1.8.
--------
にかわります。

tomcatまわりは、あと下記の調整ができればおわりです。
-ログの出力とログローテーション
-設定ファイルの調整
-apacheとの連携(クラスタリング)

GW中にできればいいなー。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/

2007年5月1日火曜日

Ajax体験講座

スズキです。

表記、5/6(日)、デジハリ秋葉原校にて開催します。
http://dhw.weblogs.jp/_akihabara/2007/04/ajaxajax318_3d66.html

実際にAjaxマスター講座での制作物を紹介したり、
中間課題の優秀作品のデモを見せたりする予定です。

以上、宣伝でした。

--
blog: http://suz-lab.blogspot.com/
code: http://code.google.com/p/suz-lab/
group: http://groups.google.com/group/suz-lab/