Comment installer dotCMS sur Ubuntu 16.04

DotCMS est un système de gestion de contenu open-source de niveau entreprise écrit en Java. Il contient presque toutes les fonctionnalités requises pour créer un site Web pour votre entreprise. Il fournit une API RESTful pour s'intégrer à d'autres services tels que le CRM, les applications mobiles et plus encore. Il utilise Elasticsearch pour l'indexation en temps réel du contenu et Redis pour implémenter un cache à plusieurs niveaux.

Conditions préalables

  • Une instance de serveur Vultr Ubuntu 16.04.
  • Un utilisateur sudo .
  • Un nom de domaine pointé vers le serveur.

Pour ce didacticiel, nous utiliserons 192.168.0.1 comme adresse IP publique et cms.example.com comme nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine et de l'adresse IP publique par celui-ci.

Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, installez Java.

Installer Java

Ajoutez le référentiel Ubuntu pour Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Installez Java.

sudo apt -y install oracle-java8-installer

Vous pourrez vérifier la version de Java.

java -version

Vous verrez la sortie suivante.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Définissez le chemin par défaut pour Java en installant le package suivant.

sudo apt -y install oracle-java8-set-default

Vous pouvez vérifier qu'il JAVA_HOMEest défini.

echo $JAVA_HOME

Vous devriez voir ce qui suit.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Si vous ne voyez aucune sortie, vous devrez vous déconnecter du shell actuel et vous reconnecter.

Installer PostgreSQL

Par défaut, dotCMS est configuré pour utiliser le moteur de base de données H2. Le moteur de base de données H2 est un moteur de base de données basé sur des fichiers plats. Il n'est pas recommandé de l'utiliser en production. Dans ce tutoriel, nous utiliserons le serveur PostgreSQL pour stocker la base de données dotCMS.

PostgreSQL est un système de base de données relationnelle objet, connu pour sa stabilité et sa vitesse. Le référentiel Ubuntu par défaut contient une ancienne version de PostgreSQL, alors ajoutez le référentiel PostgreSQL.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Installez le serveur de base de données PostgreSQL.

sudo apt -y install postgresql

Démarrez le serveur PostgreSQL et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Modifiez le mot de passe de l'utilisateur PostgreSQL par défaut.

sudo passwd postgres

Connectez-vous en tant qu'utilisateur PostgreSQL.

sudo su - postgres

Créez un nouvel utilisateur PostgreSQL pour dotCMS.

createuser dotcms 

PostgreSQL fournit le psql shell pour exécuter des requêtes sur le serveur de base de données. Basculez vers le shell PostgreSQL.

psql

Définissez un mot de passe pour l'utilisateur nouvellement créé pour la base de données dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Remplacez le mot DBPassword de passe utilisateur de la base de données par un mot de passe sécurisé.

Créez une nouvelle base de données pour l'installation dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Sortez du psql shell.

\q

Passez à l' sudo utilisateur.

exit

Installer dotCMS

Téléchargez l'archive dotCMS.

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.3.2.tar.gz

Vous pouvez toujours trouver le lien vers la dernière version de l'application sur la page de téléchargement dotCMS .

Créez un nouveau répertoire pour stocker les fichiers dotCMS et extrayez-les dedans.

sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms

Ouvrez le fichier de configuration de la base de données.

cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml

Trouvez le H2 bloc.

<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Mettez en commentaire la H2 section entière en déplaçant le délimiteur --> de commentaires du début de la section à la fin de la section. Il devrait ressembler à ce qui suit.

<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->

Supprimez la mise en commentaire --> de la section PostgreSQL en supprimant le délimiteur de commentaires à la fin de la section et en le plaçant sur l'enveloppe supérieure POSTGRESQL. , Trouver également username= et password= et remplacer les valeurs existantes avec le nom d' utilisateur et mot de passe utilisateur de votre base de données PostgreSQL. Si vous avez utilisé un nom de base de données autre que dotcms, vous devrez modifier le nom de la base de données dans url=. Une fois configuré, le bloc PostgreSQL dans le fichier ressemblera à ceci.

<!-- POSTGRESQL -->
<Resource name="jdbc/dotCMSPool" auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://localhost/dotcms"
      username="dotcms" password="DBPassword" maxTotal="60" maxIdle="10" maxWaitMillis="60000"
      removeAbandonedOnBorrow="true" removeAbandonedOnMaintenance="true" removeAbandonedTimeout="60" logAbandoned="true"
      timeBetweenEvictionRunsMillis="30000" validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Fournissez l'autorisation d'exécution pour tous les fichiers exécutables.

sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh

DotCMS est maintenant installé sur votre serveur. Pour exécuter immédiatement l'application, exécutez ce qui suit.

cd /opt/dotcms
sudo bin/startup.sh

Vous verrez la sortie suivante lorsque le serveur a démarré avec succès.

user@vultr:/opt/dotcms$ sudo bin/startup.sh
Using DOTCMS_HOME = /opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT
Using DOTSERVER = dotcms
Using CATALINA_PID = /tmp/dotcms.pid
Using JAVA_OPTS =  -Djava.awt.headless=true -Xverify:none -Dfile.encoding=UTF8 -server -XX:+DisableExplicitGC -XX:MaxMetaspaceSize=512m -Xmx1G -XX:+UseG1GC -javaagent:/opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/byte-buddy-agent-1.6.12.jar -Ddotserver=dotcms
Using CATALINA_BASE:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_HOME:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_TMPDIR: /opt/dotcms/dotserver/tomcat-8.0.18/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/dotcms/dotserver/tomcat-8.0.18/bin/bootstrap.jar:/opt/dotcms/dotserver/tomcat-8.0.18/bin/tomcat-juli.jar
Using CATALINA_PID:    /tmp/dotcms.pid
Tomcat started.

La commande ci-dessus démarre le serveur Web Tomcat pour servir l'application sur le port 8080.

Ouvrez votre navigateur préféré et accédez à http://192.168.0.1:8080. Vous verrez que l'application exécute un site Web de démonstration. Si vous ne voyez pas votre site Web, veuillez patienter, car le premier démarrage du serveur dotCMS prend de cinq à dix minutes car il écrit des données dans la base de données PostgreSQL et crée le cache. Vous pouvez également consulter les journaux de démarrage.

tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log

Configurer Systemd

Le serveur dotCMS peut être démarré directement à l'aide du script de démarrage fourni dans le package d'installation. Par souci de commodité, vous devez configurer un fichier d'unité Systemd pour le serveur dotCMS. Cela garantira que le serveur d'applications démarre automatiquement au redémarrage et aux échecs du système.

Arrêtez le serveur dotCMS en cours d'exécution à l'aide du script d'arrêt.

sudo bin/shutdown.sh

Créez un utilisateur non privilégié pour exécuter le serveur dotCMS, pour des raisons de sécurité.

sudo adduser --home /opt/dotcms -gecos "dotCMS User" --disabled-password --disabled-login dotcms

Attribuez la propriété des fichiers à l'utilisateur dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Créez un nouveau service Systemd.

sudo nano /etc/systemd/system/dotcms.service

Remplissez le fichier.

[Unit]
Description=dotCMS service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/dotcms/bin/startup.sh
ExecStop=/opt/dotcms/bin/shutdown.sh
User=dotcms
Group=dotcms
Restart=always

[Install]
WantedBy=multi-user.target

Démarrez l'application et activez-la pour qu'elle démarre automatiquement au démarrage.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Assurez-vous que le service est en cours d'exécution.

sudo systemctl status dotcms

Configurer le proxy inverse

Par défaut, le serveur dotCMS écoute sur le port 8080. Nous allons configurer Nginx comme proxy inverse afin que l'application soit accessible via la norme HTTP et les HTTPS ports. Nous allons également configurer Nginx pour utiliser le SSL généré avec Let's Encrypt.

Installez Nginx.

sudo apt -y install nginx

Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start nginx
sudo systemctl enable nginx

Ajoutez le référentiel Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Installez Certbot, qui est l'application cliente de Let's Encrypt CA.

sudo apt -y install certbot

Remarque: Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.

Générez les certificats SSL.

sudo certbot certonly --webroot -w /var/www/html -d cms.example.com

Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/cms.example.com/. Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.

Ouvrez le fichier de tâche cron.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier.

30 5 * * * /usr/bin/certbot renew --quiet

La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.

Créez un nouveau fichier de blocage de serveur pour le site dotCMS.

sudo nano /etc/nginx/sites-available/dotcms

Remplissez le fichier.

server {
    listen 80;
    server_name cms.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name cms.example.com;

    ssl_certificate           /etc/letsencrypt/live/cms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/cms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/dotcms.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://cms.example.com;
    }
  }

Activez la configuration.

sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms

Redémarrez le serveur Web Nginx pour que les modifications prennent effet.

sudo systemctl restart nginx

L'application dotCMS est maintenant installée sur votre serveur pour une utilisation en production. Accédez au tableau de bord administratif à l'adresse suivante.

https://cms.example.com/dotAdmin

Connectez-vous en utilisant le compte administrateur initial [email protected] et le mot de passe admin. Modifiez le mot de passe par défaut immédiatement après la connexion.

Félicitations, le système de gestion de contenu dotCMS est maintenant installé sur votre serveur. Vous pouvez modifier le site de démonstration ou vous pouvez commencer à créer votre site à partir de zéro.



Comment installer Thelia 2.3 sur CentOS 7

Comment installer Thelia 2.3 sur CentOS 7

Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Vous utilisez un système différent? Fuel CMS est un système de gestion de contenu basé sur CodeIgniter. Son code source est hébergé sur GitHub. Ce guide vous montrera comment

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Vous utilisez un système différent? Alfresco Community Edition est une version open source des services de contenu Alfresco. Il est écrit en Java et utilise PostgreSQL t

Comment installer WonderCMS sur Fedora 29

Comment installer WonderCMS sur Fedora 29

Vous utilisez un système différent? WonderCMS est un CMS open source, rapide et petit fichier plat écrit en PHP. Le code source de WonderCMS est hébergé sur Github. Ce guide sera

Comment installer Redaxscript 3.2 CMS sur un Ubuntu 16.04 LAMP VPS

Comment installer Redaxscript 3.2 CMS sur un Ubuntu 16.04 LAMP VPS

Vous utilisez un système différent? Redaxscript 3.2 CMS est un système de gestion de contenu (CMS) moderne et ultra léger, gratuit et open source avec rocket-fas

Comment installer Neos CMS sur Debian 9

Comment installer Neos CMS sur Debian 9

Vous utilisez un système différent? Neos est une plate-forme dapplication de contenu avec un CMS et un cadre dapplication en son cœur. Ce guide vous montrera comment installer

Comment installer CMS octobre 1.0 sur un VPS Fedora 26 LAMP

Comment installer CMS octobre 1.0 sur un VPS Fedora 26 LAMP

Vous utilisez un système différent? Octobre 1.0 CMS est un système de gestion de contenu (CMS) simple et fiable, gratuit et open source basé sur le framework Laravel

Comment installer Subrion 4.1 CMS sur un VPS LAMP Ubuntu 16.04

Comment installer Subrion 4.1 CMS sur un VPS LAMP Ubuntu 16.04

Vous utilisez un système différent? Subrion 4.1 CMS est un système de gestion de contenu (CMS) open source puissant et flexible qui apporte un contenu intuitif et clair

Comment installer ImpressPages CMS 5.0 sur un VPS Ubuntu 16.04 LAMP

Comment installer ImpressPages CMS 5.0 sur un VPS Ubuntu 16.04 LAMP

Vous utilisez un système différent? ImpressPages CMS 5.0 est un système de gestion de contenu (CMS) simple et efficace, gratuit et open source, convivial et basé sur MVC

Comment installer BoltWire CMS sur CentOS 7

Comment installer BoltWire CMS sur CentOS 7

Vous utilisez un système différent? Introduction BoltWire est un système de gestion de contenu gratuit et léger écrit en PHP. Comparé à la plupart des autres gestionnaires de contenu

Installation de Fuel CMS sur CentOS 7

Installation de Fuel CMS sur CentOS 7

Vous utilisez un système différent? Fuel CMS est un système de gestion de contenu basé sur CodeIgniter. Son code source est hébergé sur GitHub. Ce guide vous montrera comment

Installation de Bolt CMS sur CentOS 7

Installation de Bolt CMS sur CentOS 7

Bolt est un CMS open source écrit en PHP. Le code source de Bolts est hébergé sur GitHub. Ce guide vous montrera comment installer Bolt CMS sur un nouveau CentOS 7 Vult

Comment installer Redaxscript 3.2 CMS sur un Fedora 26 LAMP VPS

Comment installer Redaxscript 3.2 CMS sur un Fedora 26 LAMP VPS

Vous utilisez un système différent? Redaxscript 3.2 CMS est un système de gestion de contenu (CMS) moderne et ultra léger, gratuit et open source avec rocket-fas

Comment installer Raneto sur Ubuntu 17.10

Comment installer Raneto sur Ubuntu 17.10

Raneto est une base de connaissances gratuite et open-source, construite sur Node.js qui est facile à configurer et à utiliser, ainsi que facile à administrer. Catégories et pages ar

Comment installer Couch CMS 2.0 sur un VPS CentOS 7 LAMP

Comment installer Couch CMS 2.0 sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? Couch CMS est un système de gestion de contenu (CMS) simple et flexible, gratuit et open source qui permet aux concepteurs de sites Web de

Installer Fork CMS sur FreeBSD 12

Installer Fork CMS sur FreeBSD 12

Vous utilisez un système différent? Fork est un CMS open source écrit en PHP. Le code source de Forks est hébergé sur GitHub. Ce guide vous montrera comment installer Fork CM

Comment installer ImpressPages CMS 5.0 sur un Fedora 26 LAMP VPS

Comment installer ImpressPages CMS 5.0 sur un Fedora 26 LAMP VPS

Vous utilisez un système différent? ImpressPages CMS 5.0 est un système de gestion de contenu (CMS) simple et efficace, gratuit et open source, convivial et basé sur MVC

Comment installer Pagekit 1.0 CMS sur un Fedora 26 LAMP VPS

Comment installer Pagekit 1.0 CMS sur un Fedora 26 LAMP VPS

Vous utilisez un système différent? Pagekit 1.0 CMS est un système de gestion de contenu (CMS) beau, modulaire, extensible et léger, gratuit et open source avec

Comment installer le CMS Backdrop sur un VPS FBS FreeBSD 11

Comment installer le CMS Backdrop sur un VPS FBS FreeBSD 11

Vous utilisez un système différent? Backdrop CMS 1.8.0 est un système de gestion de contenu (CMS) simple et flexible, adapté aux mobiles, gratuit et open source qui nous permet

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.