りぺんぎんの書きなぐり技術書

基本、ITの技術について書きます

apache tomcatで2つのアプリケーションをのせる手順(すべて)

CentOSで2つのIPaddressで2つのアプリケーションを動かすapache tomcat サーバをたてたので書いておく

※CentOS6.8

 

CentOSのインストールは割愛

(2)ネットワークの設定

①ネットワークマネージャーの停止

//NetworkManagerのサービスを停止

「service NetworkManager stop」

//再起動時に勝手に起動しないように停止

「chkconfig NetworkManager off」

「vi /etc/sysconfig/network-scripts/ifcfg-eth0」

ONBOOT=no
M_CONTROLLED=yes

 

以上の二行を下記のように変更する。

#ONBOOT=no
#NM_CONTROLLED=yes
ONBOOT=yes
NM_CONTROLLED=no

 

[解説]

ONBOOT=yes

は起動時にネットワークを自動で起動するようにする設定

NM_CONTROLLED=no

はネットワークマネージャーを使用しないようにする設定

 

IPアドレスを設定(必要な場合)

#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=IPアドレス1
NETMASK=サブネットマスク
GATEWAY=デフォルトゲートウェイ

リゾルバについて

「vi /etc/resolv.conf」

search DNSサーバのFQDN
nameserver DNSサーバのIPアドレス

 ②selinuxを停止

「vi /etc/selinux/config」

SELINUX= enforcing

を以下に変更

SELINUX=disabled

 その後reboot

(3)yumの設定とアップデート

※プロキシを利用している場合

「vi /etc/yum.conf」

一番下に追加

proxy=プロキシのURL:ポート番号
proxy_username=ユーザ名
proxy_password=パスワード

 「yum update」

(4)作業用のユーザの追加、設定

①ユーザの追加とパスワードの設定

「useradd ユーザ名」

「passwd ユーザ名」

②全権限を作業用ユーザにふる

「usermod -G wheel ユーザ名」

③作業用ユーザでsudoを可能にする

「visudo」

#%wheel ALL=(ALL) ALL

%wheel ALL=(ALL) ALL

④作業用ユーザでsudoを可能にする

「vi /etc/pam.d/su」

#auth required pam_wheel.so use_uid

auth required pam_wheel.so use_uid

 確認して終了

(5)ssh接続の設定

①クライアントがmacOSの場合

ターミナルを開き

ssh-keygen -t rsa」を入力。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): ← 作成される場所。問題なければEnter。
Enter passphrase (empty for no passphrase): ← パスフレーズの入力。
Enter same passphrase again: ← パスフレーズの再入力。

指定した場所に生成される。

LINUX側の設定

②作業用ユーザでログインして.sshフォルダが存在するかチェック

「su ユーザ名」

でログイン。

「cd」

「ls -la」

で.sshフォルダが存在することを確認。

 

もし存在しない場合。

「mkdir .ssh
「chmod 700 .ssh

 

③クライアントサイドで作成した公開鍵(.pubファイル)をサーバ側に移動させたあとコマンドを実行。(scpでもUSBでも可能)

「cp ~.pub /home/ユーザ名/.ssh/authorized_keys」

「chmod 600 /home/ユーザ名/.ssh/authorized_keys」

「service sshd restart」

reboot

これでmacならターミナルから、windowsならTeraTermなどから接続可能になる。

(6)iptablesの設定

①バックアップを取る

 「cp /etc/sysconfig/iptables /etc/sysconfig/iptables.old」

②許可するポート番号を追加する

WEBサーバ

iptables -A INPUT -p tcp --dport 80 -j ACCEPT」

tomcat

iptables -A INPUT -p tcp --dport 8009 -j ACCEPT」

tomcat2

iptables -A INPUT -p tcp --dport 8010 -j ACCEPT 」

保存する

「/sbin/service iptables save」

iptablesの再起動

「service iptables restart」

ポート(80,8009,8010)が許可されているか確認

(7)apache(Webサーバ)のインストール

①「yum install httpd

でインストール。

「インストール済みか最新バージョンです」と表示される場合は変更の必要はない。

②「service httpd start」

で起動を確認。

③「chkconfig httpd on」

で起動時に自動起動する設定に変更する。

④確認

ブラウザを立ち上げ 「サーバのアドレス」 か サーバ本体を操作している場合 「localhost」とURLに入力する。

apacheの画面が表示されたら動作確認終了。

(8)javaのインストール

①インストール

yum remove java-1.6.0-openjdk」

yum remove java-1.7.0-openjdk」

yum install -y  java-1.8.0-openjdk」

元からインストールされているjava 1.6,1.7をアンインストールし1.8をインストールする。正常にインストールできれば完了。

②確認

java -version」

 

(9)tomcatのインストール

tomcatを別ポートで2つ起動させることで2つのアプリケーション動作を実現する

wgetのインストール

yum -y install wget

でインストール。

「インストール済みか最新バージョンです」と表示される場合は変更の必要はない。

 

tomcat専用ユーザの追加

「useradd -s /sbin/nologin tomcat8」

③WEBからtomcatを入手

wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz

④解凍

「tar -xzvf apache-tomcat-8.0.36.tar.gz」

⑤移動させる

「cp -r apache-tomcat-8.0.36/ /usr/share/tomcat8.0.36」

「mv apache-tomcat-8.0.36/ /usr/share/tomcat8.0.36.8010」

⑥所有ユーザの変更と権限の変更

「chown -R tomcat8:tomcat8 /usr/share/tomcat8.0.36」

「chmod +x /usr/share/tomcat8.0.36/bin/*.sh」

「chown -R tomcat8:tomcat8 /usr/share/tomcat8.0.36.8010」

「chmod +x /usr/share/tomcat8.0.36.8010/bin/*.sh」

※起動等(今起動させる必要はない)

/usr/share/tomcat8.0.36/bin/ startup.sh

/usr/share/tomcat8.0.36/bin/ shutdown.sh

/usr/share/tomcat8.0.36.8010/bin/ startup.sh

/usr/share/tomcat8.0.36.8010/bin/ shutdown.sh

(10)mysqlのインストールと設定

①「yum remove mysql*」

で既存のmysqlをすべて削除する。

②「rm -rf /var/lib/mysql

でファイルが残っている場合は削除する。すでにない場合は不要。

③「yum -y install mysql-server」

でインストールする。

文字コードを設定する。

「vi /etc/my.cnf 」

symbolic-links=0 の記述のすぐ下に以下を追記する。

default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

 

⑤サービスのスタート

「service mysqld start」

⑥起動時に自動起動するように設定

「chkconfig mysqld on」

⑦初期化設定

MySQLの初期設定

mysql_secure_installation」

-----start-----

Enter current password for root (enter for none):   ←エンターキーを押下

Set root password? [Y/n]  ← Y

New password: パスワード

Re-enter new password: パスワード

Remove anonymous users? [Y/n]  y

Disallow root login remotely? [Y/n]  y

Remove test database and access to it? [Y/n]  y

Reload privilege tables now? [Y/n]  y

-----end-----

(12)apache tomcat 連携

①「vi /usr/share/tomcat8.0.36/conf/server.xml

 

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

の部分をコメント化する

<Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

ココの部分

</Host>

ココの部分に以下を追記

<Context path="/" docBase="/usr/share/tomcat8.0.36/webapps/a/" debug="0">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/AccessLog" />

        </Context> 

 

②「vi /usr/share/tomcat8.0.36.8010/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Server port="8005" shutdown="SHUTDOWN"> 

 

の部分を <!-- --> でコメント化する。

コメント化した <Server port="8005" shutdown="SHUTDOWN">

のすぐ下の部分に以下を追記する。

<Server port="8006" shutdown="SHUTDOWN"> 

 

コメント化した <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

のすぐ下の部分に以下を追記する。

<Connector port="8010" protocol="AJP/1.3" redirectPort="8444" /> 

 

さらに

        

<Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

ココの部分

</Host>

 

ココの部分に以下を追記

<Context path="/" docBase="/usr/share/tomcat8.0.36.8010/webapps/b/" debug="0">


<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/AccessLog" />

        </Context>

 

③バーチャルホストを使用しIPアドレスを二つ使うためIPアドレスを追加する。

「vi /etc/sysconfig/network-scripts/ifcfg-eth0」

 

#BOOTPROTO=dhcp

BOOTPROTO=static

IPADDR=IPアドレス1

IPADDR1=IPアドレス2(※バーチャルホストのためのサブIPアドレス)

PREFIX1=サブネットマスクの切れ目(/24ならば24) ※バーチャルホスト

NETMASK=サブネットマスク

GATEWAY=デフォルトゲートウェイ

 

AJPモジュールを使いapacheからtomcatへ転送する。

「vi /etc/httpd/conf/httpd.conf」

 

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

 

上の記述がコメント化されていないかを確認。コメント化されているならば解除。

最後列に追加

IPアドレスによってアクセスされるtomcatを変更

<VirtualHost IPアドレス2:80>

ErrorLog logs/a-error_log

CustomLog logs/a_log env=common

<Location / >

        ProxyPass ajp:// localhost:8009/

</Location>

</VirtualHost>

<VirtualHost IPアドレス1:80>

ErrorLog logs/b-error_log

CustomLog logs/b_log env=common

<Location / >

        ProxyPass ajp:// localhost:8010/

</Location>

</VirtualHost> 

 

⑤サーバのタイムアウトの設定時間を変更する

「vi /etc/httpd/conf/httpd.conf」

Timeout 60 →Timeout 1800に変更

 

 

⑥プロジェクトのwelcomeページを設定する。ディレクトリアクセス時に表示するページ

「vi /usr/share/tomcat8.0.36/conf/web.xml

<welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list> 

 

と書かれている部分を以下の通りに変更する。

<welcome-file-list>

        <welcome-file>html/login.jsp</welcome-file>

        <welcome-file>html/index.jsp</welcome-file>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list> 

 

⑦設定の適用

「service network restart」

「service httpd restart」

「/usr/share/tomcat8.0.36/bin/ startup.sh」

「/usr/share/tomcat8.0.36.8010/bin/ startup.sh」