Posted at

さくらのVPSを使ってみた

More than 1 year has passed since last update.

月額685円でVPSが使えるので、試しに申し込んでみた。

初回支払は2ヶ月分+初期費用で2450円。一回飲みに行くより安い。

スペックは


  • メモリ 512MB

  • ストレージ SSD20GB

  • CPU 仮想1Core

  • ネームサーバ 5ゾーン

  • リージョン 石狩

値段相応という感じではあるけど、そもそもたいして使うわけではないので、これで十分。

申し込みをするとすぐにVPSへのrootパスワードがもらえる。

早速Webサーバを作ってみる。


CentOSのインストール

これはさくらの会員メニューから、サーバ設定>OSインストールで簡単にできる。

CentOSは6とバージョンは少し古いが、サーバ構築は苦手なので、できるだけマニュアルがあるものを選ぶ。


ユーザ設定など


一般ユーザを追加

# useradd hoge

# passwd hoge


一般ユーザにsudo権限を与える

ユーザをwheelグループに所属させる

# usermod -G wheel hoge

wheelグループにsudo権限を与える

# visudo

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL ←この行をアンコメント

一度再起動すると反映されるよう。


SSHの接続を公開鍵認証に変える

クライアント側に公開鍵/秘密鍵のペアがあることを前提にしているので、なければ作ること

サーバ側(接続ユーザでログイン)

$ cd

$ mkdir .ssh
$ vi .ssh/authorized_keys

編集状態にしておいて、クライアント側で

$ cat ~/.ssh/id_rsa.pub

表示される内容をコピペする。

もちろんファイルを転送してもいい。

サーバ側で保存して、ユーザをrootに切り替える

#vi /etc/ssh/sshd_config

・・・略・・・ 

#PermitRootLogin yes
→PermitRootLogin no

・・・略・・・

PasswordAuthentication yes
→PasswordAuthentication no

・・・略・・・

# /etc/rc.d/init.d/sshd reload

リロードすると設定が反映されるので、クライアント側から接続テストをしてみる。


ipteblesの設定

まだ良くわかってないので、この通りに設定した。

開けたポートは


  • 80

  • 443

  • 8080

  • 22


Apache HTTP SERVER のインストール

# yum install httpd

# service httpd start
# chkconfig httpd on // 自動起動もついでに


JDKのインストール

Javaはなんとなく8を入れたかったので、OracleのJavaを使うことにした。

この辺りはずっとrootでの作業。

まずはwgetをインストール

# yum install wget

次にOracleJDK8のrpmファイルをダウンロードする。

ダウンロード時に認証が必要なので、↓↓のやり方でwgetする。

Linuxでjdkをwgetする方法

# cd

# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm ←ダウンロードURL
# yum localinstall jdk-8u91-linux-x64.rpm

ダウンロードURLはここからコピーしてくる。

他のJDKなどが同居している場合は、

# alternatives --config java

で切り替えができる。


Tomcat8のインストール

CentOS/RedHat に Tomcat 7 をインストールする手順

Tomcatを実行する専用ユーザを作成

# useradd -s /sbin/nologin tomcat

Tomcatを入手。

今回は8をインストールすることにした。

# cd

# wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz
# tar -xzvf ~/apache-tomcat-8.0.36.tar.gz
# mkdir /opt/apache-tomcat
# mv ~/apache-tomcat-8.0.36 /opt/apache-tomcat
# chown -R tomcat:tomcat /opt/apache-tomcat

# vi /etc/profile

以下を追記


/etc/profile

・・・略・・・

JRE_HOME=/usr/java/jdk1.8.0_91
CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-8.0.36
export JRE_HOME CATALINA_HOME

起動するには

$ sudo -u tomcat /opt/apache-tomcat/apache-tomcat-8.0.36/bin/startup.sh

ipaddr:8080にアクセスして、Tomcatの初期ページが表示されたらインストール終了

Linux:tomcatの起動スクリプト作成+サービス登録

↑のサイトを参考に、サービスの登録をする


/etc/init.d/tomcat

#!/bin/bash

# Startup script for the Tomcat Servlet Container
#
# chkconfig: 2345 35 65

export LANG=ja_JP.UTF-8

TOMCAT_HOME=/opt/apache-tomcat/apache-tomcat-8.0.36
LOCKFILE=/var/lock/subsys/tomcat

# source function library
. /etc/rc.d/init.d/functions

start(){
if [ ! -f ${LOCKFILE} ]; then
echo "Starting tomcat"
#sudo -u tomcat ${TOMCAT_HOME}/bin/startup.sh
${TOMCAT_HOME}/bin/startup.sh
sleep 1
PID=`ps -ef | grep catalina.home=${TOMCAT_HOME} | grep -v grep | awk '{print $2}'`
echo ${PID} > ${LOCKFILE}

tail -f ${TOMCAT_HOME}/logs/catalina.out | while read LINE
do
PID=`ps -ef | grep -v grep | egrep -e '.*tail.*catalina.out$' | awk '{print $2}'`
if [ 1 -ne `echo $LINE | egrep -e '^.*: Server startup in [0-9]* ms$' | wc -l` ];
then
echo -n "."
else
echo
echo $LINE
kill ${PID}
fi
done
else
echo "tomcat is already running"
fi
}

stop(){
if [ -f ${LOCKFILE} ]; then
echo "Shutting down tomcat"
#sudo -u tomcat ${TOMCAT_HOME}/bin/shutdown.sh
${TOMCAT_HOME}/bin/shutdown.sh
while [ 1 -eq `ps -ef | grep ${TOMCAT_HOME} | grep -v grep | wc -l` ]
do
echo -n "."
sleep 1
done
echo
echo "Shutted down tomcat"
rm -f ${LOCKFILE}
else
echo "tomcat is not running"
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
#${TOMCAT_HOME}/bin/catalina.sh version
if [ -f ${LOCKFILE} ]
then
echo "tomcat(pid:"`cat ${LOCKFILE}`") is running."
else
echo "tomcat is not running."
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac

exit 0


# chmod 755 /etc/init.d/tomcat

# chkconfig --add tomcat

登録できているか確認

# chkconfig --list tomcat

tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

これでservice tomcat XXXで操作できる