macOS Venturaで「Tomcat 9」を動かす方法を説明します。
Tomcatは現在、「Tomcat 11(アルファ版)」まで出ているようですが、手元の環境で動かしたいソフトウェアを動かすのに必要十分なバージョンということでとりあえず「Tomcat 9」を選択しました。
Javaの準備
JavaはOracle Java 8を使用します(こちらの手順に従いインストールします)。
JAVA_HOMEとPATHを適切に設定し、javaが正しく実行できるようにします。
zshを使用している場合、.zshrcに以下を追加します。
export JAVA_HOME=$(/usr/libexec/java_home -v1.8.0_341)
export PATH="$JAVA_HOME/bin:$PATH"
macOS VenturaでTomcat 9を動かす
Tomcatの公式サイトからapache-tomcat-9.x.x.tar.gz
をダウンロードし、/opt/home
に展開します。
binディレクトリの中に存在するスクリプトで操作確認します。
sudo ./startup.sh
ブラウザで http://localhost:8080 にアクセスできれば成功です。以下のコマンド実行して停止しておきましょう。
./shutdown.sh
Tomcat 9の自動起動設定
Tomcat 9を自動起動したい場合、まずbinディレクトリの下にtomcat-launchd.shを作成します。chmod 755で実行可能にしておきましょう。JAVA_HOME等必要な環境変数を設定しておく必要があります。
#!/bin/sh
#
# Wrapper for running tomcat under launchd
# Required because launchd needs a non-daemonizing process
function shutdown()
{
$CATALINA_HOME/bin/shutdown.sh
/bin/rm $CATALINA_PID
}
function wait_for_death()
{
while /bin/kill -0 $1 2> /dev/null ; do
sleep 2
done
}
export LANG=ja_JP.UTF-8
export GITBUCKET_HOME=/opt/home/gitbucket
export JAVA_HOME=$(/usr/libexec/java_home -v1.8.0_341)
export CATALINA_HOME=/opt/home/tomcat
export CATALINA_PID=$CATALINA_HOME/logs/tomcat.pid
export JENKINS_HOME=/opt/home/jenkins
$CATALINA_HOME/bin/startup.sh
trap shutdown QUIT ABRT KILL ALRM TERM TSTP
sleep 2
wait_for_death `cat $CATALINA_PID`
/Library/LaunchDaemons/org.apache.tomcat.plistを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.apache.tomcat</string>
<key>Disabled</key>
<false/>
<key>OnDemand</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/opt/home/tomcat/bin/tomcat-launchd.sh</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>CATALINA_HOME</key>
<string>/opt/home/tomcat</string>
<key>JAVA_OPTS</key>
<string>-Djava.awt.headless=true</string>
</dict>
<key>StandardErrorPath</key>
<string>/opt/home/tomcat/logs/tomcat-launchd.stderr</string>
<key>StandardOutPath</key>
<string>/opt/home/tomcat/logs/tomcat-launchd.stdout</string>
<key>UserName</key>
<string>sora</string>
</dict>
</plist>
自動起動できるようにします。
sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist
これで再起動してもTomcatが自動的に起動するようになるはずです。