借りてる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を選択する。
2.+ボタンでTomcat ServerのLocalを選択
3.Configure...を選択
4.Tomcat HomeにインストールしたTomcatパスを設定
5.実行する
[リソースを更新、リソースとクラスを更新、デブロイし直す、サーバー起動し直す]
の中から選んで実行。
アクセスする
http://localhost:8080/
サンプル
https://github.com/miyamotok0105/rtm_training/tree/master/web1
Tomcat設定画面に入れるようにする
adminで12345678.
<tomcat-users>
<role rolename="manager-gui"/>
<user username="admin" password="12345678" roles="manager-gui"/>
(略)
</tomcat-users>
設定画面
http://localhost:8080/manager/html
ゲッターとセッターを自動設定
参考
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