CentOS7.2+tomcat8.5で初期ページの表示まで


環境を構築する前に前提としてWindows環境での話。

  • Vagrant
  • VirtualBox
  • Cygwin

がインストールされていること、とします。
下記コマンドは全てcygwinのターミナルで作業します

自分のローカル環境にVirtualBox+Vagrantで仮想環境を構築し
tomcatの初期ページを表示するまでの手順を書いておきます。

Vagrant側の準備

CentOS7.2のBoxファイルを入手

https://www.vagrantbox.es/
CentOS 7.2 x64 (Minimal, Puppet 4.2.3, Guest Additions 4.3.30)を選びます。

Boxファイルの追加例

$ vagrant box add CentOS7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

ローカル環境に作業用ディレクトリ(フォルダ)作成

ローカル環境で開発を進めて

例)ユーザ直下にWorkディレクトリを作成

$ mkdir -p /cygdrive/c/Users/user/Work/

pathとしてはこんな/cygdrive/c/Users/user/Work/
ここで様々なプロジェクトを今後開発していくとしましょう。
そして今回は、tomcatディレクトリを作ります。

$ cd /cygdrive/c/Users/user/Work/
$ mkdir tomcat

tomcatディレクトリに移動しておく。

$ cd /tomcat/
$ pwd
/cygdrive/c/Users/user/Work/tomcat

Vagrantの初期化とVagrantfileの確認

さっき追加したCentOS7.2(Boxファイル)を確認

$ vagrant box list
CentOS7.2         (virtualbox, 0)

Boxファイルは追加していくことで使える環境を増やしていけます。
では使う環境を選んで初期化しましょう。今回はCentOS7.2です。

$ vagrant init CentOS7.2

初期化するとVagrantfileが出来上がります。
そこで今回は中身を以下のように修正しましょう。後ほどブラウザで確認できるように。

$ vi Vagrantfile

25行目あたりを以下のように

Vagrantfile
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 8080, host: 8080

保存は「Esc」キーを押してから「:wq」保存して、ファイルを閉じます。
(viのキーバインド)

ようやく起動

vagrantで仮想環境を立ち上げます。

$ vagrant up

CenOS7.2にログイン

$ vagrant ssh
Last login: Fri May 18 03:05:16 2018 from 10.0.2.2
[vagrant@localhost ~]$

ここから先は仮想環境(CenOS7.2)内での作業。

unzipをインストール

ファイル解凍のために必要。

[vagrant@localhost ~]$ sudo yum -y install unzip

javaをインストール

いま必要ないけど今後使うので。

[vagrant@localhost ~]$ sudo yum -y install java-1.8.0-openjdk

インストール確認

[vagrant@localhost ~]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

tomcatのインストールと設定

tomcat用のユーザ追加

[vagrant@localhost ~]$ sudo useradd -s /sbin/nologin tomcat

tomcatのダウンロード

[vagrant@localhost ~]$ wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.zip

zipを解凍しておきます。

[vagrant@localhost ~]$ unzip apache-tomcat-8.5.31.zip

tomcatの設置

[vagrant@localhost ~]$ sudo mv apache-tomcat-8.5.31 /usr/local/tomcat
[vagrant@localhost ~]$ sudo chown -R tomcat:tomcat /usr/local/tomcat

tomcat用のsystemd unitファイルを作成

[vagrant@localhost ~]$ sudoedit /etc/systemd/system/tomcat.service

中身は以下のように

tomcat.service
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReStart=/usr/local/tomcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

保存は「Esc」キーを押してから「:wq」保存して、ファイルを閉じます。
(viのキーバインド)

serviceファイルの権限変更

[vagrant@localhost ~]$ sudo chmod 755 /etc/systemd/system/tomcat.service

自動起動を有効にしておく

[vagrant@localhost ~]$ sudo systemctl enable tomcat

tomcat起動のために必要なファイルの権限変更

これ必要でした。

[vagrant@localhost ~]$ sudo chmod 775 /usr/local/tomcat/bin/startup.sh
[vagrant@localhost ~]$ sudo chmod 775 /usr/local/tomcat/bin/catalina.sh

tomcatの起動

ようやくtomcatを起動します。

[vagrant@localhost ~]$ sudo systemctl start tomcat

ブラウザで確認

http://localhost:8080/

アクセスできない場合

firewallを停止させてみる。

[vagrant@localhost ~]$ sudo systemctl stop firewalld

参考

CentOS7にTomcat8をインストールして自動起動設定
https://qiita.com/nyao/items/8ad51a56638e646b2ec1