LoginSignup
2
1

More than 3 years have passed since last update.

[Ubuntu18/mac][IntelliJ]jdk10でtomcat9を立てる

Last updated at Posted at 2019-03-23

借りてるvpsでtomcat9を立てる。
最近dockerで立ててたブログをapt upgradeで環境をぶっ壊した。
コンテナイメージをバックアップ取っとけばよかったと反省。
Pythonではあまりバックエンドの情報もなく、言語によって得意不得意があると実感中。flask、とかDjangoにしてもやっぱり情報が少ない。

cat /etc/os-release
java --version

Ubuntu:18.04.2 LTS (Bionic Beaver)
openjdk 10.0.2 2018-07-17

jdk入れる

sudo apt update

OpenJDKを入れる

sudo apt install default-jdk

Tomcatユーザーを作る

sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat

tomcatを入れる

wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz -P /tmp

移動

sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat
sudo ln -s /opt/tomcat/apache-tomcat-9.0.17 /opt/tomcat/latest
sudo chown -RH tomcat: /opt/tomcat/latest
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

systemdユニットファイルを作る

sudo emacs /etc/systemd/system/tomcat.service

JAVA_HOMEの場所が違うなら変えてねと。

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl status tomcat
sudo systemctl enable tomcat

ファイヤーウォール

50000を開ける

sudo ufw status
sudo ufw enable 50000
sudo emacs /opt/tomcat/latest/conf/server.xml
    <Connector port="50000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

その他設定

sudo emacs /opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users> 
sudo emacs /opt/tomcat/latest/webapps/manager/META-INF/context.xml
sudo emacs /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1" />
-->
</Context>

ipが下記の時

45.45.45.45

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1|45.45.45.45" />
</Context>
sudo systemctl restart tomcat
http://<your_domain_or_IP_address>:50000

で動く。

maven動かしてみる

ただhello worldがコンソールに出るだけのサンプル。

sudo apt install maven
mvn -version
mvn -B archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app
cd my-app

pom.xmlに下記を追加してコンパイル

  <properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
mvn compile
mvn package

java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

macで設定する

#macでTomcatフォルダ作成
mkdir /Applications/Tomcat
#ソースを落としておく。apache-tomcat-9.0.20をTomcatに入れる。
#binに移動
cd /Applications/Tomcat/apache-tomcat-9.0.20/bin
#パーミッション変更
chmod 755 *.sh

#スタート
./startup.sh
#シャットダウン
./shutdown.sh
#設定ファイルはここ
cd /Applications/Tomcat/apache-tomcat-9.0.20/webapps

IntelliJで動かす

eclispe版はまた今度。
tomcatインストールしたのはいいけど、どうやってIDEから実行するんだよ。ここで結構悩んだ。

1.JavaEEのWeb Applicationを選択する。

スクリーンショット 2019-06-01 17.50.51.png

2.+ボタンでTomcat ServerのLocalを選択
3.Configure...を選択

スクリーンショット 2019-06-02 9.45.32.png

4.Tomcat HomeにインストールしたTomcatパスを設定

スクリーンショット 2019-06-02 9.47.22.png

5.実行する

[リソースを更新、リソースとクラスを更新、デブロイし直す、サーバー起動し直す]
の中から選んで実行。

スクリーンショット 2019-06-02 9.50.09.png

アクセスする
http://localhost:8080/

サンプル
https://github.com/miyamotok0105/rtm_training/tree/master/web1


Tomcat設定画面に入れるようにする

adminで12345678.

conf/tomcat-users.xml
<tomcat-users>
  <role rolename="manager-gui"/>
  <user username="admin" password="12345678" roles="manager-gui"/>
(略)
</tomcat-users>

設定画面
http://localhost:8080/manager/html

ゲッターとセッターを自動設定

スクリーンショット 2019-07-06 10.51.00.png

スクリーンショット 2019-07-06 10.51.08.png

参考

tomcat9
https://linuxize.com/post/how-to-install-tomcat-9-on-ubuntu-18-04/#step-4-create-a-systemd-unit-file

maven
https://linuxize.com/post/how-to-install-apache-maven-on-ubuntu-18-04/
https://mslgt.hatenablog.com/entry/2018/03/27/074522

tomcatとintellij
少し古め
http://librastudio.hatenablog.com/entry/2013/08/23/014706

2
1
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
2
1