安装 Java 和 Apache Tomcat (RHEL)
在以下步骤中,将 xx 或 xxx 替换为您正在使用的构建编号。
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 替代项:
$ 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
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.xml 中的 Manager 元素的备注,以防止在重新启动后保留会话。在文本编辑器 (作为根目录) 中打开 /usr/share/tomcat8.5/8.5.xx/conf/context.xml 并移除 ‘<Manager pathname="" />’ 之前的 ‘<!—‘ 和之后的 ‘-->’。
24. 保存文件。
25. 在 tomcat users.xml 中定义 Apache 管理器用户。在文本编辑器 (作为根目录)中打开 /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。PTC 不建议且不支持通过手动修改 conf/web.xml 文件将此属性设置为 false。
|
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 值设置为可用操作系统内存的 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 文件来替换默认错误页面 (默认值为 stacktrace)。将以下内容置于 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. 移除位于 /<path_to_tomcat>/webapps/ 中的所有 Tomcat Web 应用程序。应移除这些应用程序以防止对 Tomcat 进行不必要的访问,特别是在允许用户查看其他用户 cookie 的情况下。
37. PTC 强烈建议在运行 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