Installation et configuration > Installation de ThingWorx > Installation RHEL > H2/Azure SQL > Installation de Java et d'Apache Tomcat (RHEL)
Installation de Java et d'Apache Tomcat (RHEL)
Dans les étapes ci-dessous, remplacez xx ou xxx par le numéro de build que vous utilisez.
1. Si vous utilisez AzureSQL pour votre base de données, consultez la rubrique Utilisation d'Azure SQL Server en tant que fournisseur de persistance. Suivez les étapes de cette rubrique pour configurer la base de données et revenez à cette rubrique.
2. Si vous utilisez MS SQL pour votre base de données, consultez la rubrique Utilisation de MS SQL en tant que fournisseur de persistance. Suivez les étapes de cette rubrique pour configurer la base de données et revenez à cette rubrique.
3. Consultez la rubrique Configuration requise pour ThingWorx pour plus d'informations sur la version requise, puis téléchargez le fichier RPM Java (JDK) à partir du site Web d'Oracle.
4. Exécutez le programme d'installation de Java :
$ sudo rpm -i jdk-8uxxx-linux-x64.rpm
5. Créez le répertoire, puis déplacez le JDK :
$ sudo mkdir -p /usr/lib/jvm
$ sudo mv /usr/java/jdk1.8.0_xxx/ /usr/lib/jvm/
6. Définissez les alternatives 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. Modifiez les permissions d'accès :
$ sudo chmod a+x /usr/bin/java
$ sudo chmod a+x /usr/bin/keytool
Si vous recevez une erreur, utilisez la commande suivante :
$ sudo chmod -f a+x /usr/bin/keytool
8. Modifiez le propriétaire :
$ sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_xxx/
9. Configurez les liens maîtres :
$ sudo alternatives --config java
Sélectionnez l'option qui contient /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
Si vous recevez une File Exists erreur, ignorez et continuez.
$ sudo alternatives --config keytool
10. Vérifiez la version de Java. La version dont vous disposez peut différer de celle utilisée dans l'exemple ci-dessous :
$ 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. Installez Tomcat. Téléchargez le programme d'installation de Tomcat. Ce processus utilise Tomcat 8.5.xx, où xx correspond à la version que vous utilisez.
$ wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.xx/bin/apache-tomcat-8.5.xx.tar.gz
* 
Il est recommandé de vérifier l'intégrité du fichier Tomcat en utilisant la signature ou la somme de contrôle de chaque version. Reportez-vous à la documentation d'Apache pour en savoir plus.
12. Extrayez le contenu :
$ tar -xf apache-tomcat-8.5.xx.tar.gz
13. Déplacez Tomcat dans /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. Définissez les variables d'environnement dans /etc/environment :
$ export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_xxx
$ export CATALINA_HOME=/usr/share/tomcat8.5/8.5.xx
15. Accédez au répertoire /usr/share/tomcat8.5/8.5.xx :
$ cd /usr/share/tomcat8.5/8.5.xx
16. Ajoutez les utilisateur et groupe au système :
$ 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. Modifiez le propriétaire de bin/, lib/ et webapps/, ainsi que les permissions d'accès associées :
$ sudo chown -Rh tomcat8.5:tomcat8.5 bin/ lib/ webapps/
$ sudo chmod 775 bin/ lib/ webapps/
18. Modifiez le propriétaire de usr/share/tomcat8.5/8.5xx ainsi que les permissions d'accès associées :
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. Modifiez le propriétaire de conf/ ainsi que les permissions d'accès associées :
$ 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
Pour un système de production, il convient de revoir les permissions et la propriété afin d'augmenter la sécurité au niveau du système d'exploitation.
20. Modifiez les permissions d'accès associées à logs/, temp/ et work/ :
$ sudo chown -R tomcat8.5:adm logs/ temp/ work/
$ sudo chmod 760 logs/ temp/ work/
21. Créez un certificat autosigné :
$ /usr/lib/jvm/jdk1.8.0_xxx/jre/bin/keytool -genkey -alias tomcat8.5 -keyalg RSA
22. Suivez les instructions fournies pour mener à bien le processus de création du certificat.
Définissez le mot de passe du KeyStore.
Suivez les instructions fournies pour configurer votre certificat de sécurité.
Définissez le mot de passe de l'utilisateur tomcat8.5 à l'identique du mot de passe du KeyStore.
$ 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. Décommentez l'élément Manager dans le fichier context.xml pour désactiver la persistance des sessions entre les redémarrages. Ouvrez /usr/share/tomcat8.5/8.5.xx/conf/context.xml dans un éditeur de texte (en root) et supprimez les caractères ‘<!—‘ avant ‘<Manager pathname="" />’ et les caractères ‘-->’ après.
24. Enregistrez le fichier.
25. Définissez un utilisateur Apache Manager dans tomcat-users.xml. Ouvrez /usr/share/tomcat8.5/8.5.xx/conf/tomcat-users.xml dans un éditeur de texte (en root). Juste au-dessus de la dernière ligne (</tomcat-users>), ajoutez la ligne suivante :
<user username="<Tomcat username> " password="<Tomcat password> " roles="manager,manager-gui"/>
26. Enregistrez le fichier.
* 
Les rôles inclus sont destinés à faciliter les tests et peuvent être supprimés en cas de nécessité pour la sécurité.
* 
Pour des raisons de sécurité, il est essentiel de désactiver le connecteur AJP, s'il ne l'est pas par défaut, en effectuant l'étape suivante.
27. A l'emplacement de l'installation de Tomcat, ouvrez conf/server.xml et recherchez la ligne suivante. Si vous la trouvez, transformez-la en commentaire et enregistrez le fichier :
<Connector port ="8009" protocol="AJP/1.3" redirectPort="8443"/>
* 
Dans les versions Apache Tomcat 9.0 et ultérieures, l'attribut rejectIllegalHeader est défini sur true par défaut. La modification manuelle du fichier conf/Web. xml pour définir cet attribut sur false n'est pas recommandée et n'est pas prise en charge par PTC.
28. Configurez Tomcat en tant que service à lancer au démarrage. Commencez par installer JSVC s'il n'est pas déjà installé sur votre système :
$ 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. Créez le fichier de service Tomcat :
$ sudo touch /usr/lib/systemd/system/tomcat.service
30. Ouvrez /usr/lib/systemd/system/tomcat.service dans un éditeur de texte (en root) et collez ce qui suit dans ce fichier :
* 
Dans l'exemple ci-dessous, définissez les valeurs de -Xms et -Xmx sur 75 % de la mémoire du système d'exploitation disponible (par ex., 12 Go pour un système doté de 16 Go de RAM). Pour plus d'informations, consultez la rubrique Réglage de la 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. Si vous installez ThingWorx Platform pour la première fois, il convient d'ajouter l'option Java -Duser.timezone=UTC au bloc ExecStart ci-dessus, immédiatement après la ligne commençant par -Djava.library.path. Le fuseau horaire UTC ne reconnaît pas l'heure d'été/d'hiver. La configuration de cette option empêche l'écrasement des données lors des basculements à l'heure d'été/d'hiver.
* 
Les clients existants ne doivent pas mettre à jour ce paramètre à ce stade.
32. Créez un nouveau fichier dans le répertoire Tomcat usr/share/tomcat8.5/8.5.xx/bin et nommez-le setenv.sh :
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/share/tomcat8.5/8.5.xx/webapps/Thingworx/WEB-INF/extensions"
.
33. Configurez Tomcat pour qu'il se lance au démarrage du système :
$ sudo systemctl enable tomcat.service
Cela permettra à l'utilisateur de contrôler le service Tomcat au moyen des commandes suivantes :
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
sudo systemctl status tomcat
34. A l'emplacement de l'installation de Tomcat, ouvrez CATALINA_HOME/conf/web.xml. Remplacez la page d'erreur par défaut (le paramètre par défaut est la trace de pile) en ajoutant les éléments suivants dans le fichier web.xml. Placez-les éléments dans le tag web-app (après le tag welcome-file-list). Une application Web correctement configurée remplacera cette configuration par défaut dans CATALINA_HOME/webapps/APP_NAME/WEB-INF/web.xml afin de ne générer aucun problème.
<error-page><exception-type>java.lang.Throwable</exception-type><location>/error.jsp</location></error-page>
35. A l'emplacement de l'installation de Tomcat, ouvrez CATALINA_HOME/conf/server.xml. Ajoutez ce qui suit entre les tags <Host> </Host> :
<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
36. Supprimez toutes les applications Web Tomcat situées dans /<chemin_de_tomcat>/webapps/. La suppression de ces applications empêche tout accès inutile à Tomcat, notamment dans le contexte autorisant les utilisateurs à afficher les cookies d'autres utilisateurs.
37. PTC recommande vivement l'utilisation de TLS lors de l'exécution de ThingWorx. Pour obtenir des instructions détaillées sur la configuration de TLS, reportez-vous à cet article de support technique.
38. Si votre application nécessite une suite de chiffrement spécifique, reportez-vous à la documentation suivante pour plus d'informations sur la configuration :
Configuration des paramètres de limites utilisateur (Ulimit)
L'exécution des processus des serveurs d'applications Tomcat en "root" compromet la sécurité globale du système et va à l'encontre des bonnes pratiques sectorielles. PTC vous recommande par conséquent de modifier le fichier /etc/security/limits.d/80-nofiles.conf pour y inclure des paramètres spécifiques pour l'utilisateur via lequel les serveurs d'applications sont censés s'exécuter.
Exemple de fichier de configuration
Voici un exemple de modification de la configuration par défaut du système d'exploitation Redhat 7.1 stockée dans /etc/security/limits.d/80-nofiles.conf. Dans cet exemple, thingworx est le nom de l'utilisateur pour le serveur d'applications.

thingworx soft nofile 30720
thingworx hard nofile 30720
Pour valider cette modification, déconnectez-vous, puis reconnectez-vous à votre système.
Installation de ThingWorx/PostgreSQL
1. H2 : reportez-vous à la rubrique Installation de ThingWorx.
2. PostgreSQL : reportez-vous à la rubrique Installation et configuration de PostgreSQL.