【Serposcope】「VPS MySQL chkconfig サーバ再起動」でお困りの方へ

検索順位チェックツールでおなじみ GRC ですが、 実質有料だったり Windows 環境しかなかったりとエンジニアには少々不便だったりします。そこで Serposcope という 無料のツールが人気なのですが、Javaの扱いに慣れていないとカオスだったりします。

やりたいことは…。

  • Serposcope を さくらのVPSにインストール
  • データベースをMySQLにする
  • サーバを起動すると自動実行する

Serposcope を さくらのVPSにインストール

これはググれば結構出てくるので大したことないかもです。/root/に入れる前提で。

java -version

# もし1.8.0以下であれば古いのを消す
yum remove java-1.6.0-openjdk
yum remove java-1.7.0-openjdk
yum install java-1.8.0-openjdk.x86_64

cd /root/
mkdir serposcope
cd serposcope
wget https://serposcope.serphacker.com/download/2.6.0/serposcope-2.6.0.jar

vi /etc/sysconfig/iptables
# 環境によりますが自分は以下をApacheなど許可してる場所付近に追記したらOKだった
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7134 -j ACCEPT
service iptables restart
java -jar /root/serposcope/serposcope-2.6.0.jar
(http://***.***.***.***/:7134 にアクセス。画面が表示されたら exit)

データベースをMySQLにする

参考:http://qiita.com/ma7ma7pipipi/items/23dbdf733ba35d5d32c1

事前にMySQLでserposcope専用のデータベース(空)を作成。必要ならユーザーも。

vim /root/serposcope/serposcope.conf
serposcope.db.url=jdbc:mysql://localhost/(データベース名)?user=(Mysqlユーザー名)&password=(MySQLパスワード)&allowMultiQueries=true
java -Dserposcope.conf=/root/serposcope/serposcope.conf -jar /root/serposcope/serposcope-2.6.0.jar
(http://***.***.***.***/:7134 にアクセス。画面が表示されたら exit)

サーバを起動すると自動実行する

このままだと、サーバを再起動したときに自動実行されないのでうっかり忘れそうです。そのままだと chkconfig も使えません。ということで service に登録する。

以下のコードを 「/etc/rc.d/init.d/」 に「serposcope」のような名前で保存

※ パーミッションは755などにする。stop と restart はいい方法浮かばず。

#!/bin/bash
#
# serposcope
#
# chkconfig: 2345 70 30
# description: serposcope
# processname: serposcope
#
. /etc/rc.d/init.d/functions

case "$1" in
    start)
        echo -n "serposcope: "
        nohup java -Dserposcope.conf=/root/serposcope/serposcope.conf -jar /root/serposcope/serposcope-2.6.0.jar &
        ;;
    stop)
        echo -n "ps x してから PIDを拾って kill ****(PID) して下さい。"
        ;;
    restart)
        echo -n "ps x してから PIDを拾って kill ****(PID) して下さい。"
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac
exit 0

その後、ターミナルに戻り、以下を実行。

cd /etc/init.d
chmod 755 serposcope
chkconfig serposcope on
service serposcope start
(http://***.***.***.***/:7134 にアクセス。画面が表示されたら exit)

ssh から切断されても、serposcope がちゃんと表示されていれば大丈夫そうです。