いこいの森

Think globally, Act locally!
 -Globis、IT、経営力を高める-

Tomcat6のインストール(Fedora8) その1

2008-05-14 | プログラミング(Javaとか)

■Tomcat6のインストール(Fedora8)  →その2へ続く。

※この内容はレノボ・ジャパンThinkPad R61e(2007年冬モデル) にFedora8をインストールした環境で動作を確認しています。

------------------------------

1. Tomcatのアーカイブの入手

Java環境については「Javaの環境構築」をみてください。 本家HPからTomcatのアーカイブをダウンロード。

http://tomcat.apache.org/

私はFedoraのコンソールからDLしました。

wget http://www.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.16.tar.gz

2. Apache Commons DaemonTomcatのデーモン化

プロセスの管理を容易にするために、Daemonコンポーネントを利用して、Tomcatをデーモン(自動プロセス)化する。

Commons-DaemonプロジェクトのファイルはインストールしたTomcatの配下にある「/bin」ディレクトリ内に「jsvc.tar.gz」として格納されています。

ファイルを解凍すると、「jsvc-src」というディレクトリが作成されます。その「jsvc-src」のディレクトリへ移動します。

#cd jsvc-src

ディレクトリを移動したらautoconfを利用してconfigureスクリプトを作成します。

#autoconf

configureスクリプトを作成したら、configureスクリプトを実行

#sh configure

configureが完了したら、ビルド。

#make

ビルド後には「jsvc」というファイルが作成される。作成されたjsvcの所有権をtomcatへと変更し、tomcatのインストールされているディレクトリ以下のbinディレクトリへと移動します。

#chown tomcat. jsvc #mv -f jsvc /opt/tomcat6/bin

後は、ビルドに利用したディレクトリとファイルを削除して、ビルドは完了です。

#rm -rf /tmp/jsvc-src/ /tmp/jsvc.tar.gz

これで、Tomcatをデーモン化して動作します!

3. 自動起動させるためのスクリプトを作成

Viエディタを用いて「/etc/rc.d/init.d/」以下にjsvcという名前の起動スクリプトを作成。

#vi /etc/rc.d/init.d/jsvc

スクリプトの中身は以下のとおり。
------------------------------
#!/bin/sh
#
# chkconfig: - 80 20
# description: jsvc

# Source function library.
. /etc/init.d/functions

JAVA_HOME=/usr/local/java/
CATALINA_HOME=/usr/local/tomcat6
TOMCAT_USER=tomcat
TMP_DIR=/tmp
CATALINA_OPTS=
CLASSPATH=
$JAVA_HOME/lib/tools.jar:
$CATALINA_HOME/bin/commons-daemon.jar:
$CATALINA_HOME/bin/bootstrap.jar
PIDFILE=/var/run/tomcat.pid
LOCKFILE=/var/lock/subsys/tomcat
DAEMON=$CATALINA_HOME/bin/jsvc

start(){
    #
    # Start Tomcat
    #

    echo -n "Starting jsvc: "
    $DAEMON
    -pidfile $PIDFILE
    -user $TOMCAT_USER
    -home $JAVA_HOME
    -Dcatalina.home=$CATALINA_HOME
    -Djava.io.tmpdir=$TMP_DIR
    -outfile $CATALINA_HOME/logs/catalina.out
    -errfile '&1'
    $CATALINA_OPTS
    -cp $CLASSPATH
    org.apache.catalina.startup.Bootstrap

    #
    # To get a verbose JVM
    #-verbose
    # To get a debug of jsvc.
    #-debug
    RETVAL=$?
    if [ $RETVAL = 0 ]; then
        echo_success
        touch $LOCKFILE
    else
        echo_failure
    fi
    echo
}

stop(){
    #
    # Stop Tomcat
    #
    echo -n "Shutting down jsvc: "
    $DAEMON
    -stop
    -pidfile $PIDFILE
    org.apache.catalina.startup.Bootstrap
    RETVAL=$?
    if [ $RETVAL = 0 ]; then
        echo_success
        rm -f $PIDFILE $LOCKFILE
    else
        echo_failure
    fi
    echo
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status $DAEMON
        RETVAL=$?
        ;;
    *)
        echo $"Usage: jsvc {start|stop|restart|status}"
        exit 1
        ;;
esac
------------------------------

スクリプトの作成が終わったら、ファイルに実行権限を与えます。

#chmod +x /etc/init.d/jsvc

or

#chmod 755 /etc/init.d/jsvc

スクリプトに実行権限を与えたら、最後にchkconfigを実行して起動時のON/OFF設定を行って終了です。

#chkconfig jsvc on

以上で、Tomcatの自動実行の設定が完了。サーバを再起動したときに自動的にTomcatが起動します。

4. TomcatとApacheを連携させるmod_proxy_ajp

最新のApache 2.2系列での連携方法をまとめます。いままでのApache 2.0系列やApache 1.3系列では、Tomcatとの連携にmod_jkと呼ばれるコネクタモジュールを必要としていました。 Apache 2.2系列では、いままでのバージョンとは異なり、Apacheの基本コンポーネントとして連携用の機能を備えているため、モジュールを追加する必要がなくなりました。 んー便利。

5. mod_proxy_ajpを利用するには?

通常、TomcatとApacheの通信は“AJPコネクタ”という機能を利用して実現しています。 Apache 2.2系列では、mod_proxy_ajpと呼ばれるモジュールを利用することで簡単にTomcatとの連携を実現しています。 Apacheの設定ファイル(httpd.confなど)において以下の2つのモジュールを読み込ませることでこの機能を利用できるようになります。

/etc/httpd/confのhttpd.conf コメントになっている場合は#をはずして有効化。

LoadModule proxy_module modules/mod_proxy.so

 

# cd /etc/httpd/conf.d/
# ls
BackupPC.conf  perl.conf       python.conf  webalizer.conf README         php.conf        squid.conf   welcome.conf manual.conf    proxy_ajp.conf  ssl.conf

# vi proxy_ajp.conf

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

初期状態でこれらの設定ファイルは読み込場合は、変更は不要。

それでは、実際に「/tomcat」というディレクトリにアクセスする場合と通常のTomcatのトップページへアクセスする場合と同じ設定を行ってみましょう。

そのためには、エディタを用いてApacheの設定ファイル(proxy_ajp.conf)へ以下の行を追加します。

ProxyPass /tomcat/ ajp://localhost:8009/

ajpの設定は専用のファイル「/etc/httpd/conf.d/proxy_ajp.conf」が存在しているので、このファイルにまとめて書くのがいい。

#vi /etc/httpd/conf.d/proxy_ajp.conf

【注意】 Tomcatが通常利用するポートは8080番ポートですが、AJPコネクタを利用した通信には8009番ポートを利用する。

この設定を行いApacheの再起動を行えば、以下のようなページへのアクセスが可能となります。

http://192.168.1.8/tomcat/

 

→その2へ続く。
ちょっと、お知らせ

Tomcat6のインストール(Fedora8) その2

2008-05-14 | プログラミング(Javaとか)

■Tomcat6のインストール(Fedora8) その2  →その1へ戻る

------------------------------

6. 「Hello World!」を表示する

Tomcatでは、サーブレットをどこに配置すればいいのか?一通り設定が終わったところで、まずは簡単なサーブレットを作成して動作を確認。まずは、Tomcatのドキュメントルートのディレクトリへ移動。

#cd /usr/local/tomcat6/webapps/ROOT/

ドキュメントルート以下には、classファイルやweb.xmlなどの外から直接アクセスさせないデータを格納しているWEB-INFディレクトリが存在しているので、WEB-INFディレクトリへと移動します。

#cd WEB-INF

ディレクトリを移動してファイルを見てみると、サーブレットなどのクラスファイルを保存するためのディレクトリが存在せず、「web.xml」しか存在しないことが分かります。

「HelloWorld!」のコードを作成する前に、クラスファイルを格納するための「classes」ディレクトリを作成します。

#mkdir classes

これでサーブレットを作成する準備が整いました。「classes」ディレクトリ配下に移動します。

#cd classes

7. サンプルファイルの作成

エディタを用いて「HelloWorld.java」を作成します。

#vi HelloWorld.java

ファイルの中身は以下のように記述します。
---------------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request
                     ,HttpServletResponse response)
    throws IOException, ServletException{

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}
---------------

8. サンプルファイルをコンパイル

サーブレットを作成したら、コンパイルを行います。コンパイル時には必ずclasspathの指定を忘れないようにしてください。

#javac -classpath /usr/local/tomcat6/lib/servlet-api.jar HelloWorld.java

これで一通り準備は完了しました。

9. web.xmlにサーブレットを登録

サーブレットを作成しただけでは、ページへアクセスしてもHelloWolrdの実行結果は表示されない。

「web.xml」への登録が必要です。

/opt/tomcat6/webapps/ROOT/WEB-INFの配下にあった「web.xml」をエディタで開きます。

#vi /opt/tomcat6/webapps/ROOT/WEB-INF/web.xml

ファイル内部に書かれている<web-apps>と</web-apps>のタグの間へ次の行を追加します。
---------------
<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
---------------

これで初めてサーブレットとしてURLから呼び出すことができるようになります。 http://192.168.1.8/tomcat/HelloWorld

こんな感じです。

→その1へ戻る

参考) @IT Tomcatを理解し、構築し、動作させる


デジタルフルハイビジョン液晶テレビ(東芝 REGZA)

2008-05-11 | デジタル家電レビュー

我が家もやっと地デジが導入されました。

東芝37V型 地上・BS・110度CSチューナー内蔵 フルハイビジョン液晶テレビ REGZA 37Z3500ってやつです。

6月に後継機種がでましたね。

かなり底値だと思います。大体量販店で16万円ぐらいでした。

すでに、この機種は在庫を売りさばくモードになっているようです。品薄になる可能性は高いですね。

これは、買いですね!

【感想】
「映像がきれい、きれい過ぎてDVD画質が荒く見える
ブルーレイーって矢沢が宣伝してる意味がわかった。

【チョイスのポイント】
①機能ばっちり低価格
REGZAはCMとか打ってない分、価格が比較的低価格。 機能面はぴか一
フルHD、画質もイケテル(さすが半導体メーカ)
 ※アクオス、ビエラももちろん候補でしたが、機能面では劣る部分あり。

②TV単体で録画できる!
REGZAは外付けHDDをつなぐと、それだけでレコーダーなる。(画期的)
まだブルーレイのレコーダーは高くて手が出ないから助かるわ。

「○○リンク」とかいってレコーダをセットで買わせるプロモーションが流行り。
TVのシェアに合わせてレコーダーのシェアもあがっているようですね。
とくにビエラとか。
だから積極的に外付けHDDをつけて録画できますって機能は間違っても出さないよね。

レコーダーが売れなくなるし。

③ダブルチューナー

2画面同時視聴できる。つまりドラマ見ながら小画面でスポーツ観戦!

④番組表

番組表もリモコン一つで見やすい。番組表の文字の濃淡がしっかりしているからGood!

しかも、小番組表でTVを見ながら番組表も見れます。これ便利。


⑤ネット対応
ネット対応で、インターネットにつないだ瞬間、 「ひかりTV」「アクトビラ」とかも特別な機器がなくても、映画とかの映像コンテンツも楽しめる。

すごい時代だ。

※ひかりTV
http://www.hikaritv.net/


英語の「耳」を訓練する

2008-05-03 | 英語力を高める-TOEIC400点から↑

私のような英語の「負組み」が英語をいかに訓練していくか、、、

いろいろ試してみました、、、、NHKラジオ、DSでのリスニング、雑誌などなど。

まず感じることは「毎日10分でもいいから、英語を聞いて英語で理解する」

ってことだと感じます。

まとめて20分、聞く時間が取れると効果的かも。

私は通勤電車で40分時間が取れるので

 【前半】20分聞いて→【後半】20分は寝ちゃいます。

聞き始めてから5分ぐらいで、脳が【日本語】→【英語】の語順での理解に切り替わる感覚を憶えます。

(この感覚は、ほんと不思議。脳ってすごいかも)

一時はTOEICが400点台で、中国語とか勉強したほうがマシじゃないの??

なんて思いましたが。

 

いま、継続できているのがアルクのヒアリングマラソン。

①TOEIC 400点代→ヒアリングマラソン・ベーシック kikuzo!

 私はここからはじめました。

 始めた当初は「難しいじゃん!」と感じてました。(いま思うと、できないって恐ろしい。。。)

 この教材の後半ぐらいから、違い(進歩?)に気がつくかも。

②TOEIC 500点台→ヒアリングマラソン・中級

 いま、ココを走り続けています。ほぼ、毎日短時間ですが、教材の指示とおりに訓練してます。

<ポイント>このヒアリングマラソンの「3ラウンド・システム」ってのが予想以上に効果的。

はじめは、ほんとかよーって思ってました。

①②をやりながらTOIEC向けの教材を勉強しただけで、とりあえず600点を超えることができました。350点をリスニングで稼いでいる感じ。

そう、リーディングがまだまだ、対策の余地あり。

(が、実践力を考えると730を超えたいですね、、、とーーーい

実践で使えるようにする為には、リスニングだけではだめなので、、、

「しゃべる方」も訓練しないとね。(この辺はまた、日を改めて備忘録を作ります。)

スモールトークを鍛えなきゃね