Help us understand the problem. What is going on with this article?

さくらのVPSを使ってみた

More than 3 years have 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で操作できる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away