root以外のユーザを追加する
useradd user21 でユーザ「user21」を追加
passwd user21 で、user21のパスワードを設定する
New password: に、パスワードを入力
新ユーザでログインしてみる
sudoの設定
usermod -G wheel user21 で、user21にsudoを設定する
CentOS6.9は、visudoで設定を書き換える必要があるが、CentOS7は必要が無いみたい
user21でログインし、sudo shutdown -h now でシャットダウンしてみる。できれば問題なし
システムのアップデート
yum -y update でアップデート実行
Java8のインストール
yum -y install java-1.8.0-openjdk-devel でインストール
Complete! と出力されればOK
インストール先は、/usr/share
apacheのインストール
yum -y install httpd
Complete と出力されればOK
systemctl start httpd
systemctl enable httpd
tomcat8のインストール
useradd -s /sbin/nologin tomcat で「tomcat」という名前のTOM専用ユーザを作る
cd ~ でホームに移動
curl -OL http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz で、tomcatのファイルをダウンロードする
※※※※※※※※ tomcatのバージョン番号は結構頻繁に変わっているみたいなので、tarファイルの解凍に失敗した時などはリンク先を確認しよう ※※※※※※※
tar zxfv apache-tomcat-8.5.28.tar.gz で解凍する
mkdir /opt/tomcat8 でディレクトリを作る
mv ~/apache-tomcat-8.5.28 /opt/tomcat8 でファイル移動する
chown -R tomcat:tomcat /opt/tomcat8 「/opt/tomcat8」以下のファイル等を、ユーザ名「tomcat」、グループ名「tomcat」で所有者を設定する
/etc/profile に以下の3行を追加する。※JAVA_HOME=は、JDKのパスにしないと駄目らしい。JREのパスだと、CentOS7ではMAVENで不具合がおきるから
JAVA_HOME=/usr/lib/jvm/java-1.8.0
CATALINA_HOME=/usr/local/opt/tomcat8/apache-tomcat-8.5.28
export JAVA_HOME CATALINA_HOME
source /etc/profile で、環境変数の設定を有効にする
echo $JAVA_HOME でJAVA_HOMEを確認。/usr/lib/jvm/java-1.8.0 になっていればいいかな
vi /etc/systemd/system/tomcat.service で、/etc/systemd/system/にtomcat.serviceというファイルを新規作成する。内容は以下
[Unit]
Description=Apache Tomcat 8
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat8/apache-tomcat-8.5.28/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/tomcat8/apache-tomcat-8.5.28/bin/startup.sh
ExecStop=/opt/tomcat8/apache-tomcat-8.5.28/bin/shutdown.sh
ExecReStart=/opt/tomcat8/apache-tomcat-8.5.28/bin/shutdown.sh;/opt/tomcat8/apache-tomcat-8.5.28/bin/startup.sh
[Install]
WantedBy=multi-user.target
以下の2つのコマンドで、tomcatのサービスを有効にする
chmod 755 /etc/systemd/system/tomcat.service
systemctl enable tomcat
systemctl start tomcat で、tomcatを起動する
※systemctl stop tomcatで停止、systemctl restart tomcatで再起動になる
systemctl stop firewalld でfirewalldを無効にする
VPSのIP+:8080 をURLに入れて、ブラウザでTOMのtopページに入ってみる
表示されれば成功
MriaDBのjdbcコネクタのインストール
MAVENが必要になるので、最初にインストールを実行する
http://maven.apache.org/download.cgi で、MAVENのダウンロードリンク先を確認
cd ~/ で、ルートに戻ったほうが作業がやりやすい
curl -OL http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz でダウンロードする
※今回の例はmaven-3.5.2
tar zxvf apache-maven-3.5.2-bin.tar.gz で解凍する
mv apache-maven-3.5.2 /opt/maven で、/opt/mavenにファイルを移動する。ディレクトリは任意のところでいい
vi /etc/profile.d/maven.sh で、/etc/profile.dにmaven.shというファイルを新規作成。内容は以下にする
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH
source /etc/profile.d/maven.sh で変更を反映
mvn --version でMAVENのバージョンを確認する。MAVENの情報が表示されればOK
git clone https://github.com/MariaDB/mariadb-connector-j.git で、GITを使用してMariaDBのJDBCを入手。
ソースをダウンロードしてMAVENでビルドする方法らしい
現在のディレクトリに、mariadb-connector-jというディレクトリが作成される
cd mariadb-connector-j/ でmariadb-connector-jに移動する
mvn -Dmaven.test.skip=true package で、ビルド開始。結構時間がかかる。BUILD SUCCESSと表示されればOK
/target/ に、mariadb-java-client-*.*.*.jarというファイルが作成される。これがJDBCドライバ。
mariadb-java-client-*.*.*.jarを、/opt/tomcat8/apache-tomcat-8.5.28/libにコピーする
MriaDBのjdbcコネクタのインストール
MAVENが必要になるので、最初にインストールを実行する
http://maven.apache.org/download.cgi で、MAVENのダウンロードリンク先を確認
cd ~/ で、ルートに戻ったほうが作業がやりやすい
curl -OL http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz でダウンロードする
※今回の例はmaven-3.5.2
tar zxvf apache-maven-3.5.2-bin.tar.gz で解凍する
mv apache-maven-3.5.2 /opt/maven で、/opt/mavenにファイルを移動する。ディレクトリは任意のところでいい
vi /etc/profile.d/maven.sh で、/etc/profile.dにmaven.shというファイルを新規作成。内容は以下にする
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH
source /etc/profile.d/maven.sh で変更を反映
mvn --version でMAVENのバージョンを確認する。MAVENの情報が表示されればOK
git clone https://github.com/MariaDB/mariadb-connector-j.git で、GITを使用してMariaDBのJDBCを入手。
ソースをダウンロードしてMAVENでビルドする方法らしい
現在のディレクトリに、mariadb-connector-jというディレクトリが作成される
cd mariadb-connector-j/ でmariadb-connector-jに移動する
mvn -Dmaven.test.skip=true package で、ビルド開始。結構時間がかかる。BUILD SUCCESSと表示されればOK
/target/ に、mariadb-java-client-*.*.*.jarというファイルが作成される。これがJDBCドライバ。
mariadb-java-client-*.*.*.jarを、/opt/tomcat8/apache-tomcat-8.5.28/libにコピーする
TOMとapacheの連携
grep AJP /opt/tomcat8/apache-tomcat-8.5.28/conf/server.xml のコマンドで、server.xmlの内容を検索
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" ></Connector> の記述があればOK(最初からあるはず)
httpd -M |grep proxy のコマンドで検索
proxy_moduleと、proxy_ajp_module が確認できればいいと思う(最初からあるはず)
/etc/httpd/modules のディレクトリに、mod_proxy.soとmod_proxy_ajp.soがあることを確認
vi /etc/httpd/conf.d/proxy-ajp.conf のコマンドで、/etc/httpd/conf.d/に"proxy-ajp.conf" という名前でファイルを作成。内容は以下のようにする
<Location /TEST01>
ProxyPass ajp://localhost:8009/TEST01
Order allow,deny
Allow from all
</Location>
<Location /TEST02>
ProxyPass ajp://localhost:8009/TEST02
Order allow,deny
Allow from all
</Location>
※ TEST01、TEST02はアプリケーション名。同じように追加すれば、ほかのアプリもできる
/opt/tomcat8/apache-tomcat-8.5.28/conf にある、server.xmlの以下の部分をコメントアウトする
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" ></Connector>
systemctl restart tomcat でTOMを再起動
systemctl restart httpd でapacheを再起動 ※tomを再起動して、apacheを再起動する順番が必須らしい
これで、:8080をURLに入れなくてもOKになるはず
javaでDB接続する
MariaDB Javaコネクターのインストールをしてあることが前提
/opt/tomcat8/apache-tomcat-8.5.28/conf/server.xml の内容は以下のような感じ
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" ></Resource>
<Resource auth="Container" defaultAutoCommit="false" driverClassName="org.mariadb.jdbc.Driver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
initialSize="1" maxIdle="1" maxWaitMillis="-1" name="jdbc/globalDBConnect" password="blueAxe21"
type="javax.sql.DataSource" url="jdbc:mariadb://localhost:3306/DB01?characterEncoding=utf8mb4" username="user21"></Resource>
</GlobalNamingResources>
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"></Realm>
<Realm className="org.apache.catalina.realm.DataSourceRealm" dataSourceName="jdbc/globalDBConnect"
roleNameCol="roleName" userCredCol="passWord" userNameCol="userCode" userRoleTable="role_manage" userTable="user_manage"></Realm>
</Realm>
firewalldの設定
yum -y install iptables-services で、iptablesを使えるようにする(CentOS7はfirewalldが本来なので、デフォルトでは使えない
systemctl stop iptables で、iptablesをストップ
systemctl mask iptables ※これを実行すると、OS起動時にもiptablesが起動しないようになる
systemctl list-unit-files | grep iptables で、iptables.service masked と表示されればOK
systemctl start firewalld
systemctl enable firewalld
でfirewalldを起動
systemctl status firewalld でfirewalldの状態を確認
以下のコマンドで、各ポートを許可する ※WEBサーバー用途なら、SSH・HTTP・HTTPDだけでいい
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=smtp --permanent
firewall-cmd --add-service=smtps --permanent
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=pop3s --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=imaps --permanent
firewall-cmd --reload で、設定を反映するため再起動する
firewall-cmd --list-service で、設定を確認する
firewall-cmd --list-port で、一応開けているポート番号が見える
javaアプリのデプロイと、tomcat,apacheの再起動
/opt/tomcat8/apache-tomcat-8.5.24/webapps/ に、javaアプリのwarファイルをコピーする(今回の例ではTEST01、TEST02)
※以下は、tomcat・apacheをインストール・設定してからの作業になる
systemctl restart tomcat で、tomcatを再起動
systemctl restart httpd で、apacheを再起動
systemctl start firewalld で、firewalldの設定を有効にする
※これで、TEST01やTEST02のアプリが接続できるようになっているはず