3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

インフラって難しそう…と避け続けためちゃよわプログラマが、克服のために頑張ってサーバを構築してみた。WebAPサーバ編

Last updated at Posted at 2019-01-25

はじめに

サーバとかネットワークとか、ちんぷんかんぷんなまま…いつかやらなきゃ*n、とは思いつつ。
仕事中はインフラの担当者にお願いすることが多く、触る機会をずっと避けていました。

「でもそれじゃぁいかん><!」
ということで、黒い画面アレルギーの初心者が調べながら環境構築した備忘録です。
設定漏れや間違いなどをもし見つけた方は、ぜひご教示ください…。

Apache連携なしで、簡易的なWebAPサーバを構築してみました。

構築イメージ

img.JPG

この記事では、WebAPサーバの構築を書き留めます。
img_web.jpg

環境

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サーバの構築をまとめます。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?