Προαπαιτούμενα
Εγκαταστήστε Java
Εγκαταστήστε το PostgreSQL
Εγκαταστήστε το dotCMS
Ρύθμιση παραμέτρων Systemd
Διαμόρφωση του Reverse Proxy
Το DotCMS είναι ένα ανοιχτού κώδικα, εταιρικό σύστημα διαχείρισης περιεχομένου γραμμένο σε Java. Περιέχει σχεδόν κάθε δυνατότητα που απαιτείται για τη δημιουργία ενός ιστότοπου για την επιχείρησή σας. Παρέχει ένα RESTful API για ενσωμάτωση με άλλες υπηρεσίες όπως CRM, εφαρμογές για κινητά και άλλα. Χρησιμοποιεί το Elasticsearch για ευρετηρίαση περιεχομένου σε πραγματικό χρόνο και το Redis για την υλοποίηση μιας κρυφής μνήμης πολλαπλών επιπέδων.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr Ubuntu 16.04.
- Ένας χρήστης sudo .
- Ένα όνομα τομέα στραμμένο προς τον διακομιστή.
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε 192.168.0.1
ως δημόσια διεύθυνση IP και cms.example.com
ως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα και δημόσιας διεύθυνσης IP με την πραγματική.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το Ubuntu 16.04 . Μόλις το σύστημά σας ενημερωθεί, προχωρήστε στην εγκατάσταση Java.
Εγκαταστήστε Java
Προσθέστε το αποθετήριο Ubuntu για την Oracle Java 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Εγκαταστήστε Java.
sudo apt -y install oracle-java8-installer
Θα μπορείτε να επαληθεύσετε την έκδοση της Java.
java -version
Θα δείτε την ακόλουθη έξοδο.
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)
Ορίστε την προεπιλεγμένη διαδρομή για Java εγκαθιστώντας το ακόλουθο πακέτο.
sudo apt -y install oracle-java8-set-default
Μπορείτε να επαληθεύσετε ότι JAVA_HOME
έχει οριστεί.
echo $JAVA_HOME
Θα πρέπει να δείτε τα παρακάτω.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Εάν δεν βλέπετε καθόλου έξοδο, θα πρέπει να αποσυνδεθείτε από το τρέχον κέλυφος και να συνδεθείτε ξανά.
Εγκαταστήστε το PostgreSQL
Από προεπιλογή, το dotCMS έχει ρυθμιστεί να χρησιμοποιεί τη μηχανή βάσης δεδομένων H2. Η μηχανή βάσης δεδομένων H2 είναι μια μηχανή βάσης δεδομένων που βασίζεται σε επίπεδο αρχείο. Δεν συνιστάται η χρήση στην παραγωγή. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε τον διακομιστή PostgreSQL για να αποθηκεύσουμε τη βάση δεδομένων dotCMS.
Το PostgreSQL είναι ένα αντικειμενοσχεσιακό σύστημα βάσης δεδομένων, γνωστό για τη σταθερότητα και την ταχύτητά του. Το προεπιλεγμένο αποθετήριο του Ubuntu περιέχει μια παλιά έκδοση του PostgreSQL, επομένως προσθέστε το αποθετήριο 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
Εγκαταστήστε τον διακομιστή βάσης δεδομένων PostgreSQL.
sudo apt -y install postgresql
Ξεκινήστε τον διακομιστή PostgreSQL και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Αλλάξτε τον κωδικό πρόσβασης για τον προεπιλεγμένο χρήστη PostgreSQL.
sudo passwd postgres
Συνδεθείτε ως χρήστης PostgreSQL.
sudo su - postgres
Δημιουργήστε έναν νέο χρήστη PostgreSQL για το dotCMS.
createuser dotcms
Η PostgreSQL παρέχει το psql
κέλυφος για την εκτέλεση ερωτημάτων στον διακομιστή βάσης δεδομένων. Μεταβείτε στο κέλυφος PostgreSQL.
psql
Ορίστε έναν κωδικό πρόσβασης για τον χρήστη που δημιουργήθηκε πρόσφατα για τη βάση δεδομένων dotCMS.
ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';
Αντικαταστήστε τον κωδικό πρόσβασης χρήστη της βάσης δεδομένων DBPassword
με έναν ασφαλή κωδικό πρόσβασης.
Δημιουργήστε μια νέα βάση δεδομένων για την εγκατάσταση dotCMS.
CREATE DATABASE dotcms OWNER dotcms;
Έξοδος από το psql
κέλυφος.
\q
Εναλλαγή στο sudo
χρήστη.
exit
Εγκαταστήστε το dotCMS
Κάντε λήψη του αρχείου dotCMS.
wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.3.2.tar.gz
Μπορείτε πάντα να βρείτε τον σύνδεσμο προς την πιο πρόσφατη έκδοση της εφαρμογής στη σελίδα λήψης του dotCMS .
Δημιουργήστε έναν νέο κατάλογο για να αποθηκεύσετε τα αρχεία dotCMS και να τα εξαγάγετε σε αυτόν.
sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms
Ανοίξτε το αρχείο διαμόρφωσης της βάσης δεδομένων.
cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml
Βρείτε το H2
μπλοκ.
<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
Σχολιάστε ολόκληρη την H2
ενότητα μετακινώντας τον οριοθέτη σχολίων -->
από την αρχή της ενότητας στο τέλος της ενότητας. Θα πρέπει να μοιάζει με το παρακάτω.
<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->
Καταργήστε το σχολιασμό της ενότητας PostgreSQL αφαιρώντας το διαχωριστικό σχολίων -->
από το τέλος της ενότητας και τοποθετώντας το στο επάνω τύλιγμα POSTGRESQL
. Επίσης, βρείτε username=
και password=
αντικαταστήστε τις υπάρχουσες τιμές με το όνομα χρήστη και τον κωδικό πρόσβασης του χρήστη της βάσης δεδομένων PostgreSQL. Εάν έχετε χρησιμοποιήσει ένα όνομα βάσης δεδομένων άλλο από το dotcms
, τότε θα χρειαστεί να αλλάξετε το όνομα της βάσης δεδομένων σε url=
. Μόλις ρυθμιστεί, το μπλοκ PostgreSQL στο αρχείο θα μοιάζει με το ακόλουθο.
<!-- 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" />
Παρέχετε την άδεια εκτέλεσης για όλα τα εκτελέσιμα αρχεία.
sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh
Το DotCMS είναι πλέον εγκατεστημένο στον διακομιστή σας. Για άμεση εκτέλεση της εφαρμογής, εκτελέστε τα εξής.
cd /opt/dotcms
sudo bin/startup.sh
Θα δείτε την ακόλουθη έξοδο όταν ο διακομιστής ξεκινήσει με επιτυχία.
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.
Η παραπάνω εντολή θα ξεκινήσει τον διακομιστή web Tomcat για να εξυπηρετήσει την εφαρμογή στη θύρα 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
Δημιουργήστε μια νέα υπηρεσία Systemd.
sudo nano /etc/systemd/system/dotcms.service
Συμπληρώστε το αρχείο.
[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
Εκκινήστε την εφαρμογή και ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση.
sudo systemctl start dotcms
sudo systemctl enable dotcms
Βεβαιωθείτε ότι η υπηρεσία λειτουργεί.
sudo systemctl status dotcms
Από προεπιλογή, ο διακομιστής dotCMS ακούει στη θύρα 8080
. Θα διαμορφώσουμε το Nginx ως τον αντίστροφο διακομιστή μεσολάβησης, έτσι ώστε η εφαρμογή να είναι προσβάσιμη μέσω του προτύπου HTTP
και των HTTPS
θυρών. Θα διαμορφώσουμε επίσης το Nginx ώστε να χρησιμοποιεί το SSL που δημιουργείται με το Let's Encrypt.
Εγκαταστήστε το Nginx.
sudo apt -y install nginx
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Προσθέστε το αποθετήριο Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo apt -y install certbot
Σημείωση: Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /var/www/html -d cms.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στο /etc/letsencrypt/live/cms.example.com/
. Ας κρυπτογραφήσουμε τα πιστοποιητικά λήγουν σε 90 ημέρες, επομένως συνιστάται να ρυθμίσετε την αυτόματη ανανέωση των πιστοποιητικών χρησιμοποιώντας εργασίες Cron.
Ανοίξτε το αρχείο εργασίας cron.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * * /usr/bin/certbot renew --quiet
Η παραπάνω εργασία cron θα εκτελείται καθημερινά στις 5:30 π.μ. Εάν το πιστοποιητικό πρόκειται να λήξει, θα ανανεωθεί αυτόματα.
Δημιουργήστε ένα νέο αρχείο μπλοκ διακομιστή για την τοποθεσία dotCMS.
sudo nano /etc/nginx/sites-available/dotcms
Συμπληρώστε το αρχείο.
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;
}
}
Ενεργοποιήστε τη διαμόρφωση.
sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms
Κάντε επανεκκίνηση του διακομιστή ιστού Nginx, ώστε οι αλλαγές να τεθούν σε ισχύ.
sudo systemctl restart nginx
Η εφαρμογή dotCMS είναι τώρα εγκατεστημένη στον διακομιστή σας για χρήση στην παραγωγή. Πρόσβαση στον πίνακα ελέγχου διαχείρισης στην ακόλουθη διεύθυνση.
https://cms.example.com/dotAdmin
Συνδεθείτε χρησιμοποιώντας τον αρχικό λογαριασμό διαχειριστή [email protected]
και τον κωδικό πρόσβασης admin
. Αλλάξτε τον προεπιλεγμένο κωδικό πρόσβασης αμέσως μετά τη σύνδεση.
Συγχαρητήρια, το σύστημα διαχείρισης περιεχομένου dotCMS είναι πλέον εγκατεστημένο στον διακομιστή σας. Μπορείτε να τροποποιήσετε τον ιστότοπο επίδειξης ή μπορείτε να ξεκινήσετε τη δημιουργία του ιστότοπού σας από την αρχή.