Requisits previs
Instal·leu Java
Instal·leu PostgreSQL
Instal·leu dotCMS
Configura el servei Systemd
Configureu el proxy invers
dotCMS és un sistema de gestió de contingut de grau empresarial de codi obert escrit en Java. Conté gairebé totes les funcions necessàries per crear un lloc web per al vostre negoci. Proporciona una API RESTful per integrar-se amb altres serveis com ara CRM, aplicacions mòbils i molt més. Utilitza Elasticsearch per a la indexació en temps real del contingut i Redis per implementar la memòria cau de diversos nivells.
Aquest article es va escriure per a dotCMS 4.2.2, però les instruccions proporcionades també poden funcionar per a versions més noves.
Requisits previs
- Una instància del servidor Vultr CentOS 7.
- Un usuari de sudo .
- Un nom de domini apuntat cap al servidor.
Per a aquest tutorial, utilitzarem 192.168.0.1com a adreça IP pública i cms.example.comcom a nom de domini apuntat cap a la instància Vultr. Assegureu-vos de substituir totes les ocurrències del nom de domini d'exemple i l'adreça IP pública per la real.
Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar CentOS 7 . Un cop actualitzat el sistema, procediu a instal·lar Java.
Instal·leu Java
OpenJDK es pot instal·lar fàcilment, ja que el paquet està disponible al repositori YUM predeterminat.
sudo yum -y install java-1.8.0-openjdk-devel
Si Java està instal·lat correctament, podreu verificar la seva versió.
java -version
Obtindreu una sortida similar.
[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)
Abans de continuar, haurem de configurar les variables d'entorn JAVA_HOMEi JRE_HOME. Trobeu la ruta absoluta de l'executable Java al vostre sistema.
readlink -f $(which java)
Veureu una sortida similar.
[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
Ara, configureu les variables d'entorn JAVA_HOMEi JRE_HOMEsegons la ruta del directori 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
Executeu el bash_profilefitxer.
source ~/.bash_profile
Ara podeu executar l' echo $JAVA_HOMEordre per assegurar-vos que la variable d'entorn està definida.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Instal·leu PostgreSQL
Per defecte, dotCMS està configurat per utilitzar el motor de base de dades H2. El motor de base de dades H2 és un motor de base de dades basat en fitxers plans. No es recomana utilitzar-lo en producció. En aquest tutorial, utilitzarem el servidor PostgreSQL per emmagatzemar la base de dades dotCMS.
PostgreSQL és un sistema de bases de dades relacional objecte i conegut per la seva estabilitat i velocitat. Afegiu el dipòsit de la darrera versió de PostgreSQL al sistema.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Instal·leu el servidor de bases de dades PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inicialitzar la base de dades.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Inicieu el servidor PostgreSQL i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Canvieu la contrasenya de l'usuari PostgreSQL predeterminat.
sudo passwd postgres
Inicieu sessió com a usuari PostgreSQL predeterminat.
sudo su - postgres
Creeu un nou usuari de PostgreSQL per a dotCMS.
createuser dotcms
PostgreSQL proporciona l' psqlintèrpret d'ordres per executar consultes al servidor de bases de dades. Canvia a l'intèrpret d'ordres PostgreSQL.
psql
Establiu una contrasenya per a l'usuari acabat de crear per a la base de dades dotCMS.
ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';
Substituïu la contrasenya de l'usuari de la base de dades DBPasswordper una contrasenya segura. Creeu una nova base de dades per a la instal·lació de dotCMS.
CREATE DATABASE dotcms OWNER dotcms;
Sortida de la psqlclosca.
\q
Canvia a l' sudousuari.
exit
Instal·leu dotCMS
Descarrega l'arxiu dotCMS.
wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.2.2.tar.gz
Sempre podeu trobar l'enllaç a la darrera versió de l'aplicació a la pàgina de descàrrega de dotCMS .
Creeu un directori nou per emmagatzemar els fitxers dotCMS i extreu-los-hi.
sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms
Obriu el fitxer de configuració de la base de dades.
cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml
Troba el H2bloc.
<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
Comenta tota la H2secció substituint el delimitador -->de comentaris des de l'inici de la secció fins al final de la secció. Hauria de semblar el següent.
<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->
Descomenteu la secció PostgreSQL eliminant el delimitador -->de comentaris del final de la secció i col·locant-lo a l'embolcall superior POSTGRESQL. A més, cerqueu username=i password=substituïu els valors existents amb el nom d'usuari i la contrasenya de l'usuari de la vostra base de dades PostgreSQL. Si heu utilitzat un nom de base de dades diferent de dotcms, haureu de canviar el nom de la base de dades a url=. Un cop configurat, el bloc PostgreSQL del fitxer hauria de semblar al següent.
<!-- 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" />
Proporcioneu el permís d'execució per a tots els fitxers executables.
sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh
ara el dotCMS està instal·lat al vostre servidor. Per executar l'aplicació immediatament, executeu el següent.
cd /opt/dotcms
sudo bin/startup.sh
Veureu la següent sortida quan el servidor s'hagi iniciat correctament.
[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.
L'ordre anterior iniciarà el servidor web Tomcat per servir l'aplicació al port 8080. Per comprovar si el lloc web de dotCMS funciona, permeteu el port necessari a 8080través del tallafoc del sistema.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Obriu el vostre navegador preferit i navegueu a http://192.168.0.1:8080. Hauríeu de veure que l'aplicació està executant un lloc web de demostració. Si no veieu el vostre lloc web, espereu perquè el primer inici del servidor dotCMS triga un parell de minuts mentre escriu dades a la base de dades PostgreSQL i crea la memòria cau. També podeu consultar els registres d'inici.
tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log
El servidor dotCMS es pot iniciar directament mitjançant l'script d'inici proporcionat al paquet d'instal·lació. Com a qüestió de comoditat, hauríeu de configurar un fitxer d'unitat Systemd per al servidor dotCMS. Això garantirà que el servidor d'aplicacions s'iniciï automàticament en el reinici del sistema i els errors.
Atureu el servidor dotCMS en execució mitjançant l'script d'apagada.
sudo bin/shutdown.sh
Creeu un usuari sense privilegis per executar el servidor dotCMS, per motius de seguretat.
sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms
Proporcioneu la propietat dels fitxers a l'usuari de dotCMS.
sudo chown -R dotcms:dotcms /opt/dotcms
Creeu un nou servei Systemd.
sudo nano /etc/systemd/system/dotcms.service
Omple el fitxer.
[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
Inicieu l'aplicació i habiliteu-la perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start dotcms
sudo systemctl enable dotcms
Assegureu-vos que el servei s'està executant.
sudo systemctl status dotcms
De manera predeterminada, el servidor dotCMS escolta al port 8080. Configurarem Nginx com a servidor intermediari invers perquè es pugui accedir a l'aplicació mitjançant ports estàndard HTTPi HTTPS. També configurarem Nginx perquè utilitzi SSL generat amb Let's Encrypt SSL gratuït.
Instal·leu el servidor web Nginx.
sudo yum -y install nginx
Inicieu el servidor web i habiliteu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start nginx
sudo systemctl enable nginx
Instal·leu Certbot, que és una aplicació client per a Let's Encrypt CA.
sudo yum -y install certbot
Abans de poder sol·licitar els certificats, haureu de permetre els ports 80i/ 443o estàndard HTTPi HTTPSserveis a través del tallafoc. A més, elimineu el port 8080de la llista d'excepcions del tallafoc, ja que ja no és necessari.
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 obtenir certificats de Let's Encrypt CA, el domini per al qual s'han de generar els certificats s'ha d'apuntar al servidor. Si no, feu els canvis necessaris als registres DNS del domini i espereu que el DNS es propagui abans de tornar a fer la sol·licitud de certificat. Certbot verifica l'autoritat del domini abans de proporcionar els certificats.
Generar els certificats SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com
És probable que els certificats generats s'emmagatzemin a /etc/letsencrypt/live/cms.example.com/. Els certificats de Let's Encrypt caduquen en 90 dies, per tant, es recomana configurar la renovació automàtica dels certificats mitjançant treballs de Cron.
Obriu el fitxer de treball cron.
sudo crontab -e
Afegiu la línia següent al final del fitxer.
30 5 * * * /usr/bin/certbot renew --quiet
El treball cron anterior s'executarà cada dia a les 5:30 del matí. Si el certificat ha de caducar, es renovarà automàticament.
Creeu un fitxer de bloqueig de servidor nou per al lloc dotCMS.
sudo nano /etc/nginx/conf.d/cms.example.com.conf
Omple el fitxer.
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;
}
}
Reinicieu el servidor web Nginx perquè els canvis tinguin efecte.
sudo systemctl restart nginx
L'aplicació dotCMS ara està instal·lada al vostre servidor per utilitzar-la en producció. Accediu al tauler administratiu a la següent adreça.
https://cms.example.com/dotAdmin
Inicieu la sessió amb el compte d'administrador inicial admin@dotcms.comi admin. Canvieu la contrasenya predeterminada immediatament després d'iniciar sessió.
Enhorabona, el sistema de gestió de continguts dotCMS ja està instal·lat al vostre servidor. Podeu modificar el lloc de demostració o podeu començar a crear el vostre lloc des de zero.