Come installare dotCMS su CentOS 7

dotCMS è un sistema di gestione dei contenuti di livello enterprise open source scritto in Java. Contiene quasi tutte le funzionalità necessarie per creare un sito Web per la tua azienda. Fornisce un'API RESTful per l'integrazione con altri servizi come CRM, applicazioni mobili e altro. Utilizza Elasticsearch per l'indicizzazione in tempo reale dei contenuti e Redis per l'implementazione della cache multilivello.

Questo articolo è stato scritto per dotCMS 4.2.2, tuttavia le istruzioni fornite potrebbero funzionare anche per le versioni più recenti.

Prerequisiti

  • Un'istanza del server Vultr CentOS 7.
  • Un utente sudo .
  • Un nome di dominio puntato verso il server.

Per questo tutorial, utilizzeremo 192.168.0.1come indirizzo IP pubblico e cms.example.comcome nome di dominio puntato verso l'istanza Vultr. Assicurati di sostituire tutte le occorrenze del nome di dominio e dell'indirizzo IP pubblico di esempio con quello effettivo.

Aggiorna il tuo sistema di base usando la guida Come aggiornare CentOS 7 . Dopo aver aggiornato il sistema, procedere con l'installazione di Java.

Installa Java

OpenJDK può essere facilmente installato poiché il pacchetto è disponibile nel repository YUM predefinito.

sudo yum -y install java-1.8.0-openjdk-devel

Se Java è installato correttamente, sarai in grado di verificarne la versione.

java -version

Otterrai un risultato simile.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Prima di poter procedere oltre, dovremo impostare le variabili di ambiente JAVA_HOMEe JRE_HOME. Trova il percorso assoluto dell'eseguibile Java sul tuo sistema.

readlink -f $(which java)

Vedrai un risultato simile.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java

Ora, imposta le variabili di ambiente JAVA_HOMEe in JRE_HOMEbase al percorso della directory Java.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Esegui il bash_profilefile.

source ~/.bash_profile

Ora puoi eseguire il echo $JAVA_HOMEcomando per assicurarti che la variabile di ambiente sia impostata.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Installa PostgreSQL

Per impostazione predefinita, dotCMS è configurato per utilizzare il motore di database H2. Il motore di database H2 è un motore di database basato su file flat. Non è raccomandato l'uso in produzione. In questo tutorial, useremo il server PostgreSQL per archiviare il database dotCMS.

PostgreSQL è un sistema di database relazionale ad oggetti e noto per la sua stabilità e velocità. Aggiungi il repository dell'ultima versione di PostgreSQL nel sistema.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Installa il server di database PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Inizializza il database.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Avviare il server PostgreSQL e abilitarlo ad avviarsi automaticamente all'avvio.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

Cambia la password per l'utente PostgreSQL predefinito.

sudo passwd postgres

Accedi come l'utente PostgreSQL predefinito.

sudo su - postgres

Crea un nuovo utente PostgreSQL per dotCMS.

createuser dotcms 

PostgreSQL fornisce la psqlshell per eseguire query sul server di database. Passa alla shell PostgreSQL.

psql

Impostare una password per l'utente appena creato per il database dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Sostituire la password dell'utente del database DBPasswordcon una password sicura. Creare un nuovo database per l'installazione dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Esci dalla psqlshell.

\q

Passa sudoall'utente.

exit

Installa dotCMS

Scarica l'archivio dotCMS.

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

Puoi sempre trovare il link all'ultima versione dell'applicazione nella pagina di download di dotCMS .

Creare una nuova directory per archiviare i file dotCMS ed estrarli in essa.

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

Apri il file di configurazione del database.

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

Trova il H2blocco.

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

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

Commenta l'intera H2sezione sostituendo il delimitatore di commento -->dall'inizio della sezione alla fine della sezione. Dovrebbe apparire come segue.

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

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

Decommenta la sezione PostgreSQL rimuovendo il delimitatore dei commenti -->dalla fine della sezione e posizionandolo nella parte superiore POSTGRESQL. Inoltre, trova username=e password=sostituisci i valori esistenti con il nome utente e la password dell'utente del database PostgreSQL. Se hai utilizzato un nome di database diverso da dotcms, dovrai cambiare il nome del database in url=. Una volta configurato, il blocco PostgreSQL nel file dovrebbe essere simile al seguente.

<!-- 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" />

Fornire l'autorizzazione all'esecuzione per tutti i file eseguibili.

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

dotCMS è ora installato sul tuo server. Per eseguire immediatamente l'applicazione, eseguire quanto segue.

cd /opt/dotcms
sudo bin/startup.sh

Verrà visualizzato il seguente output quando il server è stato avviato correttamente.

[user@vultr 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:        /
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.

Il comando precedente avvierà il server Web Tomcat per servire l'applicazione sulla porta 8080. Per verificare se il sito Web dotCMS funziona, consentire la porta richiesta 8080attraverso il firewall di sistema.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Apri il tuo browser preferito e cerca http://192.168.0.1:8080. Dovresti vedere che l'applicazione sta eseguendo un sito Web demo. Se non vedi il tuo sito web, attendi che il primo avvio del server dotCMS impieghi un paio di minuti mentre scrive i dati nel database PostgreSQL e costruisce la cache. Puoi anche controllare i log di avvio.

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

Configurare il servizio Systemd

Il server dotCMS può essere avviato direttamente utilizzando lo script di avvio fornito nel pacchetto di installazione. Per comodità, è necessario impostare un file di unità Systemd per il server dotCMS. Ciò assicurerà che il server delle applicazioni venga avviato automaticamente al riavvio del sistema e agli errori.

Arrestare il server dotCMS in esecuzione utilizzando lo script di arresto.

sudo bin/shutdown.sh

Creare un utente senza privilegi per eseguire il server dotCMS, per motivi di sicurezza.

sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms

Fornire la proprietà dei file all'utente dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Crea un nuovo servizio Systemd.

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

Popolare il file.

[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

Avviare l'applicazione e abilitarne l'avvio automatico all'avvio.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Assicurarsi che il servizio sia in esecuzione.

sudo systemctl status dotcms

Configurare il proxy inverso

Per impostazione predefinita, il server dotCMS è in ascolto sulla porta 8080. Configureremo Nginx come proxy inverso in modo che sia possibile accedere all'applicazione tramite standard HTTPe HTTPSporte. Configureremo anche Nginx per utilizzare SSL generato con Let's Encrypt SSL gratuito.

Installa il web server Nginx.

sudo yum -y install nginx

Avviare il server Web e abilitare l'avvio automatico all'avvio.

sudo systemctl start nginx
sudo systemctl enable nginx

Installa Certbot, che è un'applicazione client per Let's Encrypt CA.

sudo yum -y install certbot

Prima di poter richiedere i certificati, è necessario consentire le porte 80e / 443o standard HTTPe HTTPSservizi attraverso il firewall. Inoltre, rimuovere la porta 8080dall'elenco delle eccezioni del firewall in quanto non è più necessario.

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

Nota: per ottenere certificati da Let's Encrypt CA, il dominio per il quale devono essere generati i certificati deve essere puntato verso il server. In caso contrario, apportare le modifiche necessarie ai record DNS del dominio e attendere la propagazione del DNS prima di effettuare nuovamente la richiesta di certificato. Certbot controlla l'autorità di dominio prima di fornire i certificati.

Genera i certificati SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com

È probabile che i certificati generati siano archiviati in /etc/letsencrypt/live/cms.example.com/. Let's Encrypt certificati scadranno tra 90 giorni, quindi si consiglia di impostare il rinnovo automatico dei certificati utilizzando i processi Cron.

Apri il file di lavoro cron.

sudo crontab -e

Aggiungi la seguente riga alla fine del file.

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

Il precedente cron job verrà eseguito ogni giorno alle 5:30. Se il certificato è in scadenza, verrà automaticamente rinnovato.

Creare un nuovo file di blocco del server per il sito dotCMS.

sudo nano /etc/nginx/conf.d/cms.example.com.conf

Popolare il file.

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;
    }
  }

Riavviare il server Web Nginx in modo che le modifiche abbiano effetto.

sudo systemctl restart nginx

L'applicazione dotCMS è ora installata sul server per l'uso in produzione. Accedi alla dashboard amministrativa al seguente indirizzo.

https://cms.example.com/dotAdmin

Accedere utilizzando l'account amministratore iniziale [email protected]e admin. Modifica la password predefinita immediatamente dopo l'accesso.

Congratulazioni, il sistema di gestione dei contenuti di dotCMS è ora installato sul tuo server. È possibile modificare il sito demo o iniziare a creare il sito da zero.



Leave a Comment

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Usi un sistema diverso? Subrion 4.1 CMS è un sistema di gestione dei contenuti (CMS) open source potente e flessibile che offre un contenuto intuitivo e chiaro

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare WonderCMS su Fedora 29

Come installare WonderCMS su Fedora 29

Usi un sistema diverso? WonderCMS è un file CMS open source, veloce e di piccole dimensioni scritto in PHP. Il codice sorgente di WonderCMS è ospitato su Github. Questa guida sarà

Come installare Neos CMS su Debian 9

Come installare Neos CMS su Debian 9

Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Usi un sistema diverso? BigTree CMS 4.2 è un sistema di gestione dei contenuti (CMS) rapido e leggero, gratuito e open source di livello aziendale con

Come installare Craft CMS su CentOS 7

Come installare Craft CMS su CentOS 7

Usi un sistema diverso? Craft CMS è un CMS open source scritto in PHP. Il codice sorgente di Craft CMS è ospitato su GitHub. Questa guida ti mostrerà come installare

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC

Installazione di Bolt CMS su CentOS 7

Installazione di Bolt CMS su CentOS 7

Bolt è un CMS open source scritto in PHP. Il codice sorgente di Bolts è ospitato su GitHub. Questa guida ti mostrerà come installare Bolt CMS su un nuovo CentOS 7 Vult

Come installare Automad CMS su CentOS 7

Come installare Automad CMS su CentOS 7

Usi un sistema diverso? Automad è un sistema di gestione dei contenuti (CMS) basato su file open source e un motore di template scritto in PHP. Il codice sorgente di Automad i

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Usi un sistema diverso? ProcessWire CMS 3.0 è un sistema di gestione dei contenuti (CMS) semplice, flessibile e potente, gratuito e open source. ProcessWire CMS 3.

Come installare TYPO3 CMS su CentOS 7

Come installare TYPO3 CMS su CentOS 7

Usi un sistema diverso? TYPO3 è un sistema di gestione dei contenuti aziendali gratuito e open source. È scritto in PHP e utilizza MySQL per archiviare i suoi dati. TYPO

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Usi un sistema diverso? Backdrop CMS 1.8.0 è un sistema di gestione dei contenuti (CMS) semplice e flessibile, ottimizzato per dispositivi mobili, gratuito e open source che ci consente

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Anchor CMS è un motore di blog Content Management System (CMS) super semplice ed estremamente leggero, gratuito e open source

Installazione di Anchor CMS su CentOS 7

Installazione di Anchor CMS su CentOS 7

Usi un sistema diverso? Anchor è un blog CMS open source leggero scritto in PHP. Il codice sorgente delle ancore è ospitato su GitHub. Questa guida ti mostrerà ho

Installazione di Microweber su Ubuntu 16.04

Installazione di Microweber su Ubuntu 16.04

Usi un sistema diverso? Microweber è un drag and drop open source CMS e negozio online. Il codice sorgente di Microweber è ospitato su GitHub. Questa guida ti mostrerà

Come installare Thelia 2.3 su CentOS 7

Come installare Thelia 2.3 su CentOS 7

Usi un sistema diverso? Thelia è uno strumento open source per la creazione di siti Web di e-business e la gestione di contenuti online, scritto in PHP. Codice sorgente Thelia i

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.