Linuxの最近のブログ記事

前回の[Linux]FedoraにTomcat6をインストールするの状態では、port8080でしかtomcatにアクセスできないので、80番portでもアクセスできるようにする。


連携に使うModuleは、mod_proxy.soとmod_proxy_ajp.soであるが、デフォルトで入っていたけど、/etc/httpd/modulesに入っているか一応確認。

次に、今回はhttp://www.example.jp/tomcat/にアクセスがあったとき、Tomcatをたたくように設定する。apacheの設定ファイルに以下の行を追加するだけ
# vim /etc/httpd/conf/httpd.conf
<Location /tomcat/>
ProxyPass ajp://localhost:8009/
</Location>
<参考>
Tomcat 6の実力を早速試す - 移行するべき? その時期は?
"安全"のためにTomcatを理解し、構築し、動作させる
再インストールするときのためのメモ

Tomcatの公式ホームページに行ってTomcat6.0.Xをダウンロード

shellでやるなら、
# cd /tmp
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.X.X/bin/apache-tomcat-6.X.X.tar.gz
# tar -xzf apache-tomcat-6.X.X.tar.gz

展開したファイルを、/optに移動
#  mv -f apache-tomcat-6.X.X /opt/tomcat6

ここでtomcat専用ユーザを作成し、/opt/tomcat6 の所有権を与える
# useradd -d /opt/tomcat6 -s /sbin/nologin tomcat
# chown -R tomcat. /opt/tomcat6


tomcat用のユーザが作成出来たら、次にtomcatをデーモン化する。
デーモンのscriptはtomcatの中のbinに入っているjsvc.tar.gzであるので、いったん/tmpに移動し、解凍後makeする。
# mv -f /opt/tomcat6/bin/jsvc.tar.gz /tmp/
# cd /tmp
# tar -xzf jsvc.tar.gz
# cd jsvc-src
# autoconf 
# ./configure
# make
# chown tomcat. jsvc
# mv -f jsvc /opt/tomcat6/bin
# rm -rf /tmp/jsvc-src/ /tmp/jsvc.tar.gz


デーモン化できたら、serviceで起動や停止ができるようにする。
/etc/rc.d/init.d/にjsvcというファイルを作成し、内容を次のようにする。
# vim /etc/rc.d/init.d/jsvc
#!/bin/sh
#
# chkconfig: - 80 20
# description: jsvc

# Source function library.
. /etc/init.d/functions

JAVA_HOME=/usr/java/jdk1.5.0_12
CATALINA_HOME=/opt/tomcat6
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 jsvc: "
    $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 jsvc: "
    $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: jsvc {start|stop|restart|status}"
        exit 1
        ;;
esac
スクリプトを作成したら、実行できるよう権限を付与する。
# chmod +x /etc/init.d/jsvc
最後に、Linux起動時に自動でTomcatが起動するように設定
# chkconfig jsvc on

Fedoraには、yumというパッケージ管理ソフトがついていて、ダウンロードからインストール、アップデートまでコマンド1つでやってくれる。


だが、Fedora 7のyumでjava5まではインストールできるのだが、java6がインストールされない。
なので、rpmを使ってjava6をインストールする方法のメモ


<条件>
Fedora 7にjava6 Update5をrpm&sshを用いてインストールする。


まず、rpmパッケージのダウンロード
http://java.sun.com/javase/ja/6/download.html
に行って、Linux版のrpm版を落とす。


落としたら、WinSCPとかで、鯖にアップ

sshでログインしたら、/tmpとかにファイルを移動し、カレントディレクトリも/tmpへ
# mv 保存したパス/jdk-6-linux-i586-rpm.bin /tmp/jdk-6-linux-i586-rpm.bin
# cd /tmp

次にこのファイルに実行権限を与え、実行
# chmod a+x jdk-6-linux-i586-rpm.bin

# ./j2re-1_4_0_01-linux-i586-rpm.bin
ラインセンスに同意し、y → [enter] → [enter]でファイルをインストールする。

最後に、/etc/profileに次の行を追加し、
export JAVA_HOME=/usr/java/jdk1.6.0_05/
export PATH=$PATH:/usr/java/jdk1.6.0_05//bin

設定を更新
# source /etc/profile

# java -version
を打って、
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

と表示されればOK
サーバーを複数のユーザが使う場合や、用途(サービス)にあわせてアカウントを作り、
それ専用のデータベース以外にはアクセスできないようにしたい場合の設定メモ


ユーザー名:hogeに
専用データベースとして、データベースfooを与える時、

mysql> CREATE DATABASE foo;
mysql> grant select,insert,update.delete on foo.* to hoge@"localhost" indentified by "*********";
mysql> FLUSH PRIVILEGES;

以上


追記

この状態で、WordPressとかMovableTypeを使おうとしたらCREATEが出来ないって言われたんで、CREATEもつけた方がいいかも



<参考>
Snort 用 MySQL データベースの作成
MySQLユーザの追加 - phpspot
本来、サブドメインって表現はふさわしくないかもしれないけど、
http://www.example.co.jp/hoge/foo.html とか
http://bar.example.co.jp/hoge/foo.htmlってあったら、

example.co.jpとかがドメインで、wwwやbarはホスト名って呼ばれてて、
負荷分散や用途別で分けられてある複数台のサーバー機の名前を入れて区別しているんだけど、
1台のPCでも複数のアドレスを使いたい!!ってコトでできたのがVirtualHost


例えば、http://hoge.example.co.jp/にアクセしたときに/home/hoge/public_htmlを表示するには、
apacheの設定ファイルを開き、
# vim /etc/httpd/conf/httpd.conf

最後の方の、
#NameVirtualHost *:80
のコメントアウトを外し、さらにその下に、

  ServerAdmin webmaster@hoge.example.co.jp
  DocumentRoot /home/hoge/public_html
  ServerName hoge.example.co.jp
  ErrorLog logs/hoge.example.co.jp-error_log
  CustomLog logs/hoge.example.co.jp-access_log common
を追加

DocumentRootを/var/www/html以下に設定する場合はいいけど、
/home/ユーザー/~にする場合は、前回書いたSELinuxに対する対処が必要となる。



<参考サイト>
名前ベースのバーチャルホスト設定
バーチャルホストの設定

iKnow

あわせて読みたいブログパーツ
Firefox meter