即席でTomcat8構築、ManagerでログインできるようにしてApacheと連携する手順です。
Javaインストール・設定
JDKインストール
yum -y install java-1.8.0-openjdk-devel
確認
java -version
パスを通す
echo "export JAVA_HOME=$(readlink -e $(which java)|sed 's:/bin/java::')" > /etc/profile.d/java.sh
echo "PATH=¥$PATH:¥$JAVA_HOME/bin" >> /etc/profile.d/java.sh
source /etc/profile.d/java.sh
tomcatインストール・設定
tomcat取得&配置
# tomcatユーザー作成
useradd -s /sbin/nologin tomcat
# tomcatダウンロード
mkdir -p /usr/local/src/tomcat
cd /usr/local/src/tomcat
curl -OL http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
※http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/をブラウザで検索し、
その時存在するバージョンをダウンロードしないと解凍する時に失敗します。
# tar.gz展開&配置
tar zxvf apache-tomcat-8.5.43.tar.gz
mv apache-tomcat-8.5.43 /opt/
chown -R tomcat. /opt/apache-tomcat-8.5.43
ls -ld /opt/apache-tomcat-8.5.43
# シンボリックリンク
ln -s /opt/apache-tomcat-8.5.43 /opt/tomcat
# パスを通す
echo 'export CATALINA_HOME=/opt/tomcat' > /etc/profile.d/tomcat.sh
source /etc/profile.d/tomcat.sh
初期設定 & 起動
# サービス定義ファイルを作成
vi /etc/systemd/system/tomcat.service
※以下記載
---
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
---
# 権限付与
chmod 755 /etc/systemd/system/tomcat.service
# 起動
systemctl start tomcat
ブラウザで「http://サーバのIP:8080」アクセス
お馴染みのやつが表示されます。
Managerログイン
vi /opt/tomcat/conf/tomcat-users.xml
※以下追記。
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
↑だけだとtomcat8でManagerの画面に接続できないことがある。アクセス許可をする。
vi /opt/tomcat/webapps/manager/META-INF/context.xml
※以下allowの行にパイプでつないで許可したいIPを記載する。
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
初期画面「Manager App」よりBasic認証でusername,password入れて。
ログインできました。
Apache → Tomcat連携設定
※以下Apache側のサーバで作業
# モジュール確認
cat /etc/httpd/conf.modules.d/00-proxy.conf
※以下2行があること
---
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
---
# ajp通信設定
vi /etc/httpd/conf.d/proxy-ajp.conf
※全てのリクエストを Tomcat で処理したい場合
---
ProxyPass / ajp://tomcatサーバのIP:8009/
---
※ sample ディレクトリへのアクセスを Tomcat上のdocsと連携したい場合
---
ProxyPass /docs/ ajp://tomcatサーバのIP:8009/docs/
---
# apache再起動
systemctl restart httpd
※以下Tomcat側のサーバで作業
vi /opt/apache-tomcat-8.5.43/conf/server.xml
※以下コメントアウト
---
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
---