はじめに
サーバとかネットワークとか、ちんぷんかんぷんなまま…いつかやらなきゃ*n、とは思いつつ。
仕事中はインフラの担当者にお願いすることが多く、触る機会をずっと避けていました。
「でもそれじゃぁいかん><!」
ということで、黒い画面アレルギーの初心者が調べながら環境構築した備忘録です。
設定漏れや間違いなどをもし見つけた方は、ぜひご教示ください…。
Apache連携なしで、簡易的なWebAPサーバを構築してみました。
構築イメージ
環境
AWSのEC2で構築しました。
OS:Red Hat Enterprise Linux 7
今回はセキュリティゾーンに8080を設定しています。
必要な場合は、適宜設定を行います。
これから準備するもの…
・Tomcat
・JDK
・JDBCドライバ
※バージョンは2019年1月時点のものです。適切なものを使います。
環境構築
その前に
環境構築ではパスを知る必要があります。
私は以下のコマンドでインストールしたパスを探しながら構築を進めました。
(本文の中では、詳細パスは記載せず [インストールしたパス] で統一します。)
$ find / -name "調べたいファイル名" -ls
調べたいファイル名はワイルドカード(*)を使用することで、あいまい検索ができる。
例)find / -name "tomcat*" -ls
また、root権限が必要なコマンドもありましたが、その際はsudoで実行しました。
(今回は記載は省きます。)
JDK
インストール
$ yum -y install java-1.8.0-openjdk-devel
確認
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
$ javac -version
javac 1.8.0_191
Tomcat
・インストール用のURLを見つける
Tomcat公式サイト
インストール
$ wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
※ wget not foundの場合はwgetコマンドをインストールする
$ yum -y install wget
tar.gzの展開と配置
$ tar -xzvf インストールしたパス/apache-tomcat-8.5.37.tar.gz
$ mkdir /opt/apache-tomcat-8.5.37
$ mv インストールしたパス/apache-tomcat-8.5.37 /opt/apache-tomcat-8.5.37
設定ファイル作成
tomcat.serviceを新規作成し、開く
$ vi /etc/systemd/system/tomcat.service
以下を記載する
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
権限を付与する
$ chmod 755 /etc/systemd/system/tomcat.service
Tomcatを起動する
$ systemctl start tomcat
おまけ:自動起動の設定
$ systemctl enable tomcat
おまけ:Tomcat管理画面
tomcat-users.xmlを修正
$ vi インストールしたパス/tomcat-users.xml
tomcat-users.xmlを開いたら権限を追記する
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="xxxxxxxx" password="yyyyyyyy" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
context.xmlを修正
$ vi インストールしたパス/manager/META-INF/context.xml
以下をコメントアウトする
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
↓
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
Tomcat再起動
$ systemctl restart tomcat
アクセスして確認
http://パブリックIP:8080/manager/html
Tomcatの猫の画面が表示されればOK
※ BASIC認証には、tomcat-users.xmlで設定したユーザとパスワードを入力する
アクセスできなければファイアウォールの設定をする
ファイアウォール
ポート8080を追加する
$ firewall-cmd --add-port=8080/tcp --zone=public --permanent
※ firewalld not foundの場合はfirewalldコマンドをインストールする
$ yum -y install firewalld
再起動する
$ systemctl restart firewalld
自動起動の設定
$ systemctl enable firewalld
確認する
$ firewall-cmd --list-all
ports: 8080/tcp ← 追加されていればOK
JDBCドライバ
今回は、JavaアプリケーションからDBサーバ内のPostgreSQLに接続するため、JDBCドライバをインストールする。
インストール
$ yum install -y postgresql-jdbc
コピー
インストールしたTomcatのlibフォルダ配下にコピーする
$ cp /インストールしたパス/postgresql-jdbc.jar /インストールしたパス/apach-tomcat-8.5.37/lib
おわり
これで簡易的なWebAPサーバを構築することができました。
次はDBサーバの構築をまとめます。