Amazon EC2にJettyインストール
EC2にインスタンスを新規作成。
今回は、RightImageのCentOS6のi386を選択しました。
Linux触るの久しぶりになるので、多少はしょってますが、
やったことを、多少ウザいですが、逐一書いています。(やりながら書いてます)
ダウンロードしたpemから、PuTTygenで秘密鍵を生成して、rootでログイン。
・ユーザ作成
[root@ec2]# useradd host
・ユーザ確認
[root@ec2]# id -a host [root@ec2]# cat /etc/passwd
・パスワード変更
[root@ec2]# passwd host
sudoしたら、sudo入ってなかった・・・。why・・・
[root@ec2]# rpm -qa | grep sudo [root@ec2]# cat /etc/redhat-release CentOS Linux release 6.0 (Final) [root@ec2]# yum install sudo
root制限は、
http://d.hatena.ne.jp/little_jp/20110122/1295722211
参考になります。ゆくゆくは公開鍵認証にしたいところです。
まずJavaのインストール。32bitでCentOSなので、ここ参考に。
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
[host@ec2]$ wget -O jdk-6u25-linux-i586-rpm.bin http://download.oracle.com/otn/java/jdk/6u25-b06/jdk-6u25-linux-i586-rpm.bin
・パーミッション変更
[host@ec2]$ chmod 744 jdk-6u25-linux-i586-rpm.bin
・実行
[host@ec2]$ ./jdk-6u25-linux-i586-rpm.bin ./jdk-6u25-linux-i586-rpm.bin: line 8: syntax error near unexpected token `newline' ./jdk-6u25-linux-i586-rpm.bin: line 8: `<script type="text/javascript">'
ぐへ。とりあえずファイルサイズ確認。
[host@ec2]$ ls -l -h total 4.0K -rwxr--r-- 1 host host 2.1K Jan 31 19:56 jdk-6u25-linux-i586-rpm.bin
2.1K・・・、少なっ!まず、消す。
[host@ec2]$ rm jdk-6u25-linux-i586-rpm.bin
ダウンロードがうまく出来ていないようなので、ブラウザでダウンロードしてみると、
ダウンロードのURLにAuthParam=**********************が付いてる。
このURLで再度wget
[host@ip-10-146-81-223 ~]$ wget -O jdk-6u25-linux-i586-rpm.bin http://download.oracle.com/otn/java/jdk/6u25-b06/jdk-6u25-linux-i586-rpm.bin?AuthParam=************************ Resolving download.oracle.com... 118.155.230.51, 118.155.230.26 Connecting to download.oracle.com|118.155.230.51|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 80582692 (77M) [application/octet-stream] Saving to: `jdk-6u25-linux-i586-rpm.bin' 100%[======================================================================================================================================================================================>] 80,582,692 11.4M/s in 8.4s 2012-01-31 21:05:38 (9.15 MB/s) - `jdk-6u25-linux-i586-rpm.bin' saved [80582692/80582692]
いい感じ。ファイルサイズも77Mある。
パーミッション変更して、実行。
[host@ec2]$ ./jdk-6u25-linux-i586-rpm.bin ・・・・省略 error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
ほい
[host@ec2]$ sudo ./jdk-6u25-linux-i586-rpm.bin ・・・・省略 Done
おし。rpmを削除。
[host@ec2]$ rm sun-javadb-* [host@ec2]$ rm jdk-6u25-linux-i586*
・Javaのバージョン確認
[host@ec2]$ java -version java version "1.5.0" gij (GNU libgcj) version 4.4.4 20100726 (Red Hat 4.4.4-13) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
どうやらというかやはり、すでに入ってたみたいです。
[host@ec2]$ rpm -qa|grep jdk jdk-1.6.0_25-fcs.i586 [host@ec2]$ rpm -qa|grep jre [host@ec2]$ rpm -qa|grep java java-1.5.0-gcj-1.5.0.0-29.1.el6.i686 gcc-java-4.4.4-13.el6.i686 sun-javadb-common-10.6.2-1.1.i386 sun-javadb-client-10.6.2-1.1.i386 sun-javadb-docs-10.6.2-1.1.i386 java_cup-0.10k-5.el6.i686 sun-javadb-core-10.6.2-1.1.i386 sun-javadb-demo-10.6.2-1.1.i386 sun-javadb-javadoc-10.6.2-1.1.i386
ほぅ・・・。依存関係とかアンインストール面倒な気がします。Javaのバージョンを切り替えよう。
ここがもろに参考になります。
http://ameblo.jp/kurabeat/entry-10607064798.html
まず確認。
[host@ec2]$ alternatives --config java There is 1 program that provides 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
[host@ec2]$ sudo alternatives --install /usr/bin/java java /usr/java/default/bin/java 16025
・バージョンの切替と確認
[host@ec2]$ sudo alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- + 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java * 2 /usr/java/default/bin/java Enter to keep the current selection[+], or type selection number: 2 [host@ec2]$ java -version java version "1.6.0_25" Java(TM) SE Runtime Environment (build 1.6.0_25-b06) Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)
スバラシイ!
やっとJavaインストール完了。JREでもいいんですけどね。
続いてJetty。Jetty/Starting/Downloads - Eclipsepedia
・ダウンロード
[host@ec2]$ wget http://download.eclipse.org/jetty/8.1.0.v20120127/dist/jetty-distribution-8.1.0.v20120127.tar.gz
・解凍、移動
[host@ec2]$ tar xfz jetty-distribution-8.1.0.v20120127.tar.gz [host@ec2]$ cd jetty-distribution-8.1.0.v20120127
・起動
[host@ec2]$ java -jar start.jar
起動OK、ブラウザからアクセスOK。
デーモン化は、後からやろう。
さて、これで起動するが、なぜか今の会社は、8080がポートブロックされているので、
80番で、待つように変更します。
本家(Jetty/Howto/Port80 - Eclipsepedia)にも書いてあるけど、
ここのほうが分かりやすいかな。
fukaoi.org
テスト環境なので、iptablesで設定します。
[host@ec2]$ sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 [host@ec2]$ sudo /etc/init.d/iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [host@ec2]$ sudo /etc/init.d/iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: nat [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ]
ブラウザから80番でアクセスOK。
setuidでの対応のほうが望ましいっぽい。覚えておかねば。
これで、Java,JettyのインストールOK。
最後アプリケーション。
開発環境がWindowsなので、WinSCPでファイル転送します。
完了!動きました!
最後に起動スクリプト。start.jarだとターミナルがあれなので。
ここ参考にさせて頂きました。
http://symfoware.blog68.fc2.com/blog-entry-284.html
[host@ec2]$ sudo vi /etc/init.d/jetty8 #! /bin/sh ### BEGIN INIT INFO # Provides: jetty8 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: jetty8 server # Description: jetty8 server ### END INIT INFO DESC="jetty8 server" NAME=jetty8 JETTY_HOME=/home/host/jetty-distribution-8.1.0.v20120127 DAEMON1="$JETTY_HOME/bin/jetty.sh start" DAEMON2="$JETTY_HOME/bin/jetty.sh stop" SCRIPTNAME=/etc/init.d/$NAME export JAVA_HOME=/usr/java/jdk1.6.0_25 export JETTY_HOME=$JETTY_HOME case "$1" in start) echo -n "Starting Server: $NAME" $DAEMON1 ;; stop) echo -n "Stopping Server: $NAME" $DAEMON2 ;; *) echo "Usage: $SCRIPTNAME {start|stop}" >&2 exit 1 ;; esac
[host@ec2]$ sudo chmod +x /etc/init.d/jetty8 [host@ec2]$ /etc/init.d/jetty8 start [host@ec2]$ /etc/init.d/jetty8 stop