CentOS 5.1にTomcat 6をインストール その2
昨日に引き続き、Tomcatの設定を行います。
@ITの記事を参考に、Tomcatをdaemonで動かすように設定します。
http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_01/safetomcat_01_2.html#03
Apache Commons Daemonをビルドする
tomcatをインストールしたディレクトリのbin以下に
jsvc.tar.gzというファイルがあるので、
移動してビルドします。
# mv /opt/tomcat/bin/jsvc.tar.gz ./ # tar -zxf jsvc.tar.gz # cd jsvc-src/ # autoconf # ./configure # make
作成されたjsvcというファイルの所有者をtomcatの
実行アカウントに変更し、
tomcatのディレクトリに放り込みます。
# chown tomcat. jsvc # mv jsvc /opt/tomcat/bin
さらに、自動起動させるためのスクリプトを作成します。
これも、前出の@ITの記事のものをそのまま使用しました。
ファイル名はjsvcだとわかりにくいので「tomcat」にしました。
#!/bin/sh # # chkconfig: - 80 20 # description: Tomcat 6.0.16 # # Tomcat起動・停止用スクリプト # . /etc/init.d/functions JAVA_HOME=/usr/java/jdk1.5.0_15 CATALINA_HOME=/opt/tomcat 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 Tomcat: " $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 Tomcat: " $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: tomcat {start|stop|restart|status}" exit 1 ;; esac
シェルに実行権限を与えて、 /etc/init.d 以下に放り込んだら
chkconfigでboot時にtomcatを起動するように設定します。
# chmod +x tomcat # mv tomcat /etc/init.d # chkconfig tomcat on
作成したシェルを実行してTomcatを起動します。
# /etc/init.d/tomcat start
http://localhost:8080/ にアクセスしてTomcatのスタート画面が
表示されれば、Tomcatの構築は完了です。
CentOS 5.1にTomcat 6をインストール その1
タイトルのままです。
RedHat Enterprise Linux 5.1にApache + Tomcatインストールしないといけないのですが、
予習のためVMware上のCentOS 5.1にインストールしてみます。
JDKのインストール
Sunのダウンロードサイトから必要なファイルを取ってきます。今回は1.5.0_15を使用しました。
[root@localhost tmp]# chmod +x jdk-1_5_0_15-linux-i586-rpm.bin [root@localhost tmp]# ./jdk-1_5_0_15-linux-i586-rpm.bin Sun Microsystems, Inc. Binary Code License Agreement for the JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0 SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE .... 〜〜中略〜〜 Do you agree to the above license terms? [yes or no] yes ← "yes" と入力 Unpacking... Checksumming... 0 0 Extracting... UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu). inflating: jdk-1_5_0_15-linux-i586.rpm 準備中... ########################################### [100%] 1:jdk ########################################### [100%] Done. [root@localhost tmp]#
/usr/java/jdk1.5.0_15 以下にインストールされているはずなので、パスを通します。
/etc/profileの末尾に、以下の行を追加します。
export JAVA_HOME=/usr/java/jdk1.5.0_15 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
Tomcat 6のインストール
http://tomcat.apache.org/ からバイナリファイルをダウンロードし、適当なところに置きます。
今回は http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_01/safetomcat_01_1.html を参考に、
/opt/tomcat にインストールしました。
[root@localhost tmp]# tar -zxf apache-tomcat-6.0.16.tar.gz [root@localhost tmp]# mv -f apache-tomcat-6.0.16 /opt/tomcat
Tomcatを動かすユーザtomcatを作成し、/opt/tomcat にアクセスできるよう所有権を設定します。
[root@localhost tmp]# useradd -d /opt/tomcat -s /sbin/nologin tomcat useradd: warning: the home directory already exists. Not copying any file from skel directory into it. [root@localhost tmp]# chown -R tomcat. /opt/tomcat
何か警告が出ましたが、気にしない。
変数の値が整数かどうかを調べる
変数に入っている値が整数かどうかをチェックしたい、というシチュエーションはよくあると思います。
JavaScriptの isNaN ですね。
result=`test ${hoge} -eq 0 2> /dev/null` if[ ${result} -le 1 ]; then echo "整数" else echo "整数じゃない" fi
文字列の比較で -eq を使用するとエラーになると、resultにはエラーコード(2以上)が返ってきます。
整数であれば、0 か 1 が返ってくるので、それを利用して整数かどうかチェックできます。
2008/05/15 追記
・・・
すみません。これ、間違ってますね。
実際は以下のようにする必要があります。
test ${hoge} -eq 0 2> /dev/ull result=$? if [ ${result} -le 1 ]; then echo "整数" else echo "整数じゃない" fi
直前のコマンドのエラーコードが $? に入っているので、その内容を確認する必要があります。
shでtoLowerCase
シェルでJavaScriptでいうところの toLowerCase() を行う方法。
#!/bin/sh # toLowerCase.sh for org_data in $@; do result=`echo ${org_data} | tr 'A-Z' 'a-z'` echo ${result} done
toUpperCase() なら「tr 'a-z' 'A-Z'」。
CDOを使用してGmail経由でメールを送信する
JavaScriptを使用してOSを判別する方法について
- ブラウザ上で判別
document.write(navigator.userAgent);
僕の環境では以下のように表示されました。
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)
Windows NT 5.2 だと Windows Server 2003、Windows NT 5.1 だと Windows XPらしいです。
OS の判別 <- 詳細はこちらを参照。
様々なOSの判断方法が記載されてます。
- WMIで判別
ログオンスクリプトとかでOSを判別する場合は、WMIが便利そうです。
var wmi = GetObject("winmgmts:\\\\.\\root\\cimv2"); var items = wmi.ExecQuery("Select * from Win32_OperatingSystem"); var e = new Enumerator(items); for(; !e.atEnd(); e.moveNext()){ var item = e.item(); WScript.Echo(item.Caption); // <--(1) if(item.Caption.toLowerCase().indexOf("vista") >= 0){ WScript.Echo("vistaです"); }else{ WScript.Echo("vistaじゃないです"); } }
末尾に「_」がついていたら削除する
しょうもないスクリプトですが、せっかく書いたので・・・
与えられた文字列の末尾に「_」がついている場合、その「_」を削除した文字列を返します。
#! /bin/sh # rmUB.sh # 末尾に「_」がついていたら削除する foo="hello_" ch=`echo ${foo} | cut -c ${#foo}` if [ ${ch} = '_' ]; then pos=`expr ${#foo} - 1` bar=`echo ${foo} | cut -c 1-${pos}` echo $bar fi
文字列比較では -eq を使うとエラーになるんですね。