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が自動的に起動するようになるはずです。