Requisits previs
Instal·leu Java
Instal·leu PostgreSQL
Instal·leu dotCMS
Configura Systemd
Configureu el proxy invers
DotCMS és un sistema de gestió de continguts de codi obert i de grau empresarial 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 una memòria cau de diversos nivells.
Requisits previs
- Una instància del servidor Vultr Ubuntu 16.04.
- Un usuari de sudo .
- Un nom de domini apuntat cap al servidor.
Per a aquest tutorial, utilitzarem 192.168.0.1 com a adreça IP pública i cms.example.com com 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 Ubuntu 16.04 . Un cop actualitzat el sistema, procediu a instal·lar Java.
Instal·leu Java
Afegiu el dipòsit d'Ubuntu per a Oracle Java 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Instal·leu Java.
sudo apt -y install oracle-java8-installer
Podreu verificar la versió de Java.
java -version
Veureu la següent sortida.
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)
Establiu el camí predeterminat per a Java instal·lant el paquet següent.
sudo apt -y install oracle-java8-set-default
Podeu comprovar que JAVA_HOMEestà configurat.
echo $JAVA_HOME
Hauríeu de veure el següent.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Si no veieu cap sortida, haureu de tancar la sessió de l'intèrpret d'ordres actual i tornar a iniciar la sessió.
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, conegut per la seva estabilitat i velocitat. El dipòsit d'Ubuntu predeterminat conté una versió antiga de PostgreSQL, així que afegiu el dipòsit de 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
Instal·leu el servidor de bases de dades PostgreSQL.
sudo apt -y install postgresql
Inicieu el servidor PostgreSQL i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Canvieu la contrasenya de l'usuari PostgreSQL predeterminat.
sudo passwd postgres
Inicieu sessió com a usuari de PostgreSQL.
sudo su - postgres
Creeu un nou usuari de PostgreSQL per a dotCMS.
createuser dotcms
PostgreSQL proporciona l' psql intè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 DBPassword per una contrasenya segura.
Creeu una nova base de dades per a la instal·lació de dotCMS.
CREATE DATABASE dotcms OWNER dotcms;
Sortida de la psql closca.
\q
Canvia a l' sudo usuari.
exit
Instal·leu dotCMS
Descarrega l'arxiu dotCMS.
wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.3.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 H2 bloc.
<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
Comenta tota la H2 secció movent 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 tindrà l'aspecte 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 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:/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.
L'ordre anterior iniciarà el servidor web Tomcat per servir l'aplicació al port 8080.
Open your favorite browser and browse to http://192.168.0.1:8080. You will see that the application is running a demo website. If you do not see your website, please wait as the first startup of the dotCMS server takes five to ten minutes as it writes data into the PostgreSQL database and builds the cache. You can also check the startup logs.
tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log
The dotCMS server can be started directly using the startup script provided in the installer package. As a matter of convenience, you should set up a Systemd unit file for the dotCMS server. This will ensure that the application server is automatically started on system restart and failures.
Stop the running dotCMS server using the shutdown script.
sudo bin/shutdown.sh
Create an unprivileged user for running the dotCMS server, for security reasons.
sudo adduser --home /opt/dotcms -gecos "dotCMS User" --disabled-password --disabled-login dotcms
Provide ownership of the files to the dotCMS user.
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 l'estàndard HTTP i els HTTPS ports. També configurarem Nginx perquè utilitzi el SSL generat amb Let's Encrypt.
Instal·leu Nginx.
sudo apt -y install nginx
Inicieu Nginx i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start nginx
sudo systemctl enable nginx
Afegiu el repositori Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Instal·leu Certbot, que és l'aplicació client de Let's Encrypt CA.
sudo apt -y install certbot
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 /var/www/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/sites-available/dotcms
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;
}
}
Activa la configuració.
sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms
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.com i la contrasenya 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.