Java と Apache Tomcat のインストール (RHEL)
以下の手順では、xx または xxx を、使用するビルド番号と置き換えてください。
1. データベースとして AzureSQL を使用している場合、 永続化プロバイダとしての Azure SQL Server の使用を参照してください。参照先のセクションの手順を実行してデータベースを設定した後、このセクションに戻ります。
2. データベースとして MSSQL を使用している場合、 永続化プロバイダとしての MSSQL の使用を参照してください。参照先のセクションの手順を実行してデータベースを設定した後、このセクションに戻ります。
3. バージョン要件について、 ThingWorx システムの要件を参照し、 Oracle の Web サイトから Java (JDK) RPM ファイルをダウンロードします。
4. Java インストーラを実行します。
$ sudo rpm -i jdk-8uxxx-linux-x64.rpm
5. ディレクトリを作成して JDK を移動します。
$ sudo mkdir -p /usr/lib/jvm
$ sudo mv /usr/java/jdk1.8.0_xxx/ /usr/lib/jvm/
6. Java alternatives を設定します。
$ sudo alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_xxx/bin/java 1
$ sudo alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/jdk1.8.0_xxx/bin/keytool 1
7. アクセス許可を変更します。
$ sudo chmod a+x /usr/bin/java
$ sudo chmod a+x /usr/bin/keytool
エラーを受信した場合は、次のコマンドを使用します。
$ sudo chmod -f a+x /usr/bin/keytool
8. オーナーを変更します。
$ sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_xxx/
9. マスターリンクを設定します。
$ sudo alternatives --config java
/usr/lib/jvm/jdk1.8.0_xxx/bin/java を含むオプションを選択します。
$ sudo rm /usr/java/latest
$ sudo ln -s /usr/lib/jvm/jdk1.8.0_xxx /usr/java/latest
$ sudo ln -s /usr/lib/jvm/jdk1.8.0_xxx/bin/keytool /usr/bin/keytool
File Exists エラーを受信した場合は、無視して続行します。
$ sudo alternatives --config keytool
10. Java のバージョンを確認します。次の例とはバージョンが異なる場合があります。
$ java -version
java version "1.8.0_xxx"
Java(TM) SE Runtime Environment (build 1.8.0_xxx-bxx)
Java HotSpot(TM) 64-Bit Server VM (build xx.xx-bxx, mixed mode)
11. Tomcat をインストールします。Tomcat インストーラをダウンロードします。このプロセスの手順では、Tomcat 8.5 xx を使用します。xx は使用するバージョンに置き換えてください。
$ wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.xx/bin/apache-tomcat-8.5.xx.tar.gz
* 
最良事例には、リリースごとに署名またはチェックサムを使用して Tomcat ファイルの整合性を検証することが含まれます。詳細については、 Apache のドキュメンテーションを参照してください。
12. コンテンツを抽出します。
$ tar -xf apache-tomcat-8.5.xx.tar.gz
13. Tomcat を /usr/share/tomcat8.5 に移動します。
$ sudo mkdir -p /usr/share/tomcat8.5
$ sudo mv apache-tomcat-8.5.xx /usr/share/tomcat8.5/8.5.xx
14. /etc/environment で環境変数を定義します。
$ export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_xxx
$ export CATALINA_HOME=/usr/share/tomcat8.5/8.5.xx
15. /usr/share/tomcat8.5/8.5.xx にディレクトリを変更します。
$ cd /usr/share/tomcat8.5/8.5.xx
16. ユーザーとグループをシステムに追加します。
$ sudo groupadd -r tomcat8.5
$ sudo useradd -r -d /usr/share/tomcat8.5 -g tomcat8.5 -s /bin/false tomcat8.5
$ sudo chown -R tomcat8.5:tomcat8.5 /usr/share/tomcat8.5
17. bin/lib/webapps/ のオーナーとアクセス許可を変更します。
$ sudo chown -Rh tomcat8.5:tomcat8.5 bin/ lib/ webapps/
$ sudo chmod 775 bin/ lib/ webapps/
18. usr/share/tomcat8.5/8.5xx のオーナーとアクセス許可を変更します。
sudo chown -R tomcat8.5:tomcat8.5 /usr/share/tomcat8.5/8.5.xx
sudo chmod -R 775 /usr/share/tomcat8.5/8.5.xx
19. conf/ のオーナーとアクセス許可を変更します。
$ sudo chown -Rh root:tomcat8.5 conf/
$ sudo chmod -R 640 conf
sudo chown -R tomcat8.5:tomcat8.5 /usr/share/tomcat8.5/8.5.xx
sudo chmod -R 777 /usr/share/tomcat8.5/8.5.xx
実運用システムではアクセス許可と所有権に再アクセスして、オペレーティングシステムレベルでセキュリティを強化する必要があります。
20. logs/temp/work/ のアクセス許可を変更します。
$ sudo chown -R tomcat8.5:adm logs/ temp/ work/
$ sudo chmod 760 logs/ temp/ work/
21. 自己署名証明書を作成します。
$ /usr/lib/jvm/jdk1.8.0_xxx/jre/bin/keytool -genkey -alias tomcat8.5 -keyalg RSA
22. 次の手順に従って、証明書作成プロセスを実行します。
キーストアのパスワードを設定します。
プロンプトに従って、セキュリティ証明書を設定します。
tomcat8.5 のユーザーパスワードには、キーストアのパスワードと同じものを設定します。
$ sudo cp ~/.keystore /usr/share/tomcat8.5/8.5.xx/conf/
$ sudo chown root:tomcat8.5 /usr/share/tomcat8.5/8.5.xx/conf/.keystore
$ sudo chmod 640 /usr/share/tomcat8.5/8.5.xx/conf/.keystore
23. context.xmlManager エレメントをコメント解除して、セッションが再起動をまたいで永続化しないようにします。テキストエディタで /usr/share/tomcat8.5/8.5.xx/conf/context.xml を (ルートとして) 開き、‘<Manager pathname="" />’ の前の ‘<!—‘ と後の ‘-->’ を除去します。
24. ファイルを保存します。
25. tomcat users.xml で Apache Manager のユーザーを定義します。テキストエディタで、/usr/share/tomcat8.5/8.5.xx/conf/tomcat-users.xml を (ルートとして) 開きます。最後の行 (</tomcat-users>) のすぐ上に次の行を追加します。
<user username="<Tomcat username> " password="<Tomcat password> " roles="manager,manager-gui"/>
26. ファイルを保存します。
* 
ここに含まれる役割はテストしやすくするためのものなので、セキュリティが問題になる場合は除去できます。
* 
セキュリティ上の理由から、デフォルトですでに実行されていない場合、以下の手順を実行することによって AJP コネクタを無効にすることが重要です。
27. Tomcat がインストールされている場所で、conf/server.xml を開き、以下の行を見つけます。見つかった場合、コメントアウトしてファイルを保存します。
<Connector port ="8009" protocol="AJP/1.3" redirectPort="8443"/>
* 
Apache Tomcat 9.0 以降では、rejectIllegalHeader 属性はデフォルトで true に設定されています。conf/web.xml ファイルを手動で修正してこの属性を false に設定することは、PTC によって推奨されておらず、サポートもされていません。
28. Tomcat をサービスとして設定して起動します。JSVC がシステムにインストールされていない場合は、最初にこれを構築します。
$ sudo yum install gcc
$ cd /usr/share/tomcat8.5/8.5.xx/bin/
$ sudo tar xvfz commons-daemon-native.tar.gz
$ cd commons-daemon-*-native-src/unix
$ sudo ./configure --with-java=$JAVA_HOME
$ sudo yum install make
$ sudo make
$ sudo cp jsvc ../..
29. Tomcat サービスファイルを作成します。
$ sudo touch /usr/lib/systemd/system/tomcat.service
30. テキストエディタで /usr/lib/systemd/system/tomcat.service を (ルートとして) 開き、次のように貼り付けます。
* 
次の例では、-Xms および -Xmx の値を、使用可能な OS メモリの 75% (たとえば、16GB RAM システムの場合は 12GB) に設定します。詳細については、 「JVM チューニング」を参照してください。
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
PIDFile=/var/run/tomcat.pid
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/usr/lib/jvm/jdk1.8.0_xxx
Environment=CATALINA_HOME=/usr/share/tomcat8.5/8.5.xx
Environment=CATALINA_BASE=/usr/share/tomcat8.5/8.5.xx
Environment=CATALINA_OPTS=

ExecStart=/usr/share/tomcat8.5/8.5.xx/bin/jsvc \
-Dcatalina.home=${CATALINA_HOME} \
-Dcatalina.base=${CATALINA_BASE} \
-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dserver -XX:+UseNUMA \
-XX:+UseG1GC -Dfile.encoding=UTF-8 \
-Djava.library.path=${CATALINA_BASE}/webapps/Thingworx/WEB-INF/extensions \
-Xms=<75% of available OS memory> \
-Xmx=<75% of available OS memory> \
-cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
-user tomcat8.5 \
-java-home ${JAVA_HOME} \
-pidfile /var/run/tomcat.pid \
-errfile ${CATALINA_HOME}/logs/catalina.out \
-outfile ${CATALINA_HOME}/logs/catalina.out \
$CATALINA_OPTS \
org.apache.catalina.startup.Bootstrap
[Install]
WantedBy=multi-user.target
31. ThingWorx Platform を初めてインストールしている場合、Java オプション -Duser.timezone=UTC を上記の ExecStart ブロック内の -Djava.library.path で始まる行のすぐ後ろに追加する必要があります。UTC タイムゾーンはサマータイムを認識しません。このオプションを設定することで、サマータイムへの切り替え時にデータが上書きされるのを防止できます。
* 
既存の顧客がこの時点でこの設定を更新してはなりません。
32. Tomcat の usr/share/tomcat8.5/8.5.xx/bin ファイルに、setenv.sh という名前の新規ファイルを作成します。
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/share/tomcat8.5/8.5.xx/webapps/Thingworx/WEB-INF/extensions"
33. システムの起動時に実行されるように Tomcat を設定します。
$ sudo systemctl enable tomcat.service
これにより、ユーザーが次のコマンドを使用して Tomcat サービスを制御できるようになります。
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
sudo systemctl status tomcat
34. Tomcat がインストールされている場所で、CATALINA_HOME/conf/web.xml を開きます。以下を web.xml ファイルに追加することで、デフォルトのエラーページ (デフォルトはスタックトレース) を置き換えます。web-app タグ内 (welcome-file-list タグの後ろ) に以下を配置します。適切に設定された Web アプリケーションは CATALINA_HOME/webapps/APP_NAME/WEB-INF/web.xml 内でこのデフォルトをオーバーライドするので、問題は発生しません。
<error-page><exception-type>java.lang.Throwable</exception-type><location>/error.jsp</location></error-page>
35. Tomcat がインストールされている場所で、CATALINA_HOME/conf/server.xml を開きます。以下を <Host> </Host> タグ内に追加します。
<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
36. /<Tomcat へのパス>/webapps/ にあるすべての Tomcat Web アプリケーションを除去します。これらのアプリケーションを除去することで、ユーザーにほかのユーザーの cookie の閲覧を許可する場合は特に、Tomcat への不必要なアクセスを防止できます。
37. ThingWorx を実行する際には TLS を使用することを強くお勧めします。TLS の設定方法については、この テクニカルサポートのアーティクルを参照してください。
38. お使いのアプリケーションが特定の暗号化スイートを必要とする場合、設定情報については以下のドキュメンテーションを参照してください。
Ulimit 設定の設定
Tomcat アプリケーションサーバープロセスを "ルート" ユーザーとして実行すると、システム全体のセキュリティが侵害され、業界標準の最良事例に違反することになります。これを避けるために、PTC では、アプリケーションサーバーを実行するユーザーに固有の設定を含めるように、/etc/security/limits.d/80-nofiles.conf ファイルを修正することを推奨します。
コンフィギュレーションファイルの例
次のコンフィギュレーションは、/etc/security/limits.d/80-nofiles.conf にあるデフォルトの Redhat 7.1 OS コンフィギュレーションに必要な変更を加えた例を示しています。次の例では、thingworx はアプリケーションサーバーのユーザー名です。

thingworx soft nofile 30720
thingworx hard nofile 30720
この変更をコミットするには、ログアウトして再度システムにログインします。
ThingWorx または PostgreSQL のインストール
1. H2: ThingWorx のインストールに進みます。
2. PostgreSQL: PostgreSQL のインストールと設定に進みます。