Προαπαιτούμενα
Εγκαταστήστε Java
Εγκαταστήστε το PostgreSQL
Εγκαταστήστε το dotCMS
Διαμόρφωση υπηρεσίας Systemd
Διαμόρφωση του Reverse Proxy
Το dotCMS είναι ένα ανοιχτού κώδικα σύστημα διαχείρισης περιεχομένου εταιρικής ποιότητας γραμμένο σε Java. Περιέχει σχεδόν κάθε δυνατότητα που απαιτείται για τη δημιουργία ενός ιστότοπου για την επιχείρησή σας. Παρέχει ένα RESTful API για ενσωμάτωση με άλλες υπηρεσίες όπως CRM, εφαρμογές για κινητές συσκευές και άλλα. Χρησιμοποιεί το Elasticsearch για ευρετηρίαση περιεχομένου σε πραγματικό χρόνο και το Redis για την υλοποίηση της κρυφής μνήμης πολλαπλών επιπέδων.
Αυτό το άρθρο γράφτηκε για το dotCMS 4.2.2, ωστόσο οι οδηγίες που παρέχονται ενδέχεται να λειτουργήσουν και για νεότερες εκδόσεις.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr CentOS 7.
- Ένας χρήστης sudo .
- Ένα όνομα τομέα στραμμένο προς τον διακομιστή.
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε 192.168.0.1
ως δημόσια διεύθυνση IP και cms.example.com
ως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα και δημόσιας διεύθυνσης IP με την πραγματική.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Μόλις το σύστημά σας ενημερωθεί, προχωρήστε στην εγκατάσταση Java.
Εγκαταστήστε Java
Το OpenJDK μπορεί να εγκατασταθεί εύκολα καθώς το πακέτο είναι διαθέσιμο στο προεπιλεγμένο αποθετήριο YUM.
sudo yum -y install java-1.8.0-openjdk-devel
Εάν η Java έχει εγκατασταθεί σωστά, τότε θα μπορείτε να επαληθεύσετε την έκδοσή της.
java -version
Θα έχετε παρόμοια έξοδο.
[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)
Προτού προχωρήσουμε περαιτέρω, θα χρειαστεί να ρυθμίσουμε τις μεταβλητές JAVA_HOME
και JRE_HOME
περιβάλλον. Βρείτε την απόλυτη διαδρομή του εκτελέσιμου Java στο σύστημά σας.
readlink -f $(which java)
Θα δείτε μια παρόμοια έξοδο.
[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
Τώρα, ορίστε τις μεταβλητές JAVA_HOME
και JRE_HOME
περιβάλλον σύμφωνα με τη διαδρομή του καταλόγου 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
Εκτελέστε το bash_profile
αρχείο.
source ~/.bash_profile
Τώρα μπορείτε να εκτελέσετε την echo $JAVA_HOME
εντολή για να βεβαιωθείτε ότι έχει οριστεί η μεταβλητή περιβάλλοντος.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Εγκαταστήστε το PostgreSQL
Από προεπιλογή, το dotCMS έχει ρυθμιστεί να χρησιμοποιεί τη μηχανή βάσης δεδομένων H2. Η μηχανή βάσης δεδομένων H2 είναι μια μηχανή βάσης δεδομένων που βασίζεται σε επίπεδο αρχείο. Δεν συνιστάται η χρήση στην παραγωγή. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε τον διακομιστή PostgreSQL για να αποθηκεύσουμε τη βάση δεδομένων dotCMS.
Το PostgreSQL είναι ένα αντικειμενοσχεσιακό σύστημα βάσης δεδομένων και είναι γνωστό για τη σταθερότητα και την ταχύτητά του. Προσθέστε το αποθετήριο της πιο πρόσφατης έκδοσης της PostgreSQL στο σύστημα.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Εγκαταστήστε τον διακομιστή βάσης δεδομένων PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Αρχικοποιήστε τη βάση δεδομένων.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Ξεκινήστε τον διακομιστή PostgreSQL και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Αλλάξτε τον κωδικό πρόσβασης για τον προεπιλεγμένο χρήστη 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.2.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 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.
Η παραπάνω εντολή θα ξεκινήσει τον διακομιστή web Tomcat για να εξυπηρετήσει την εφαρμογή στη θύρα 8080
. Για να ελέγξετε εάν ο ιστότοπος dotCMS λειτουργεί, επιτρέψτε την απαιτούμενη θύρα 8080
μέσω του τείχους προστασίας του συστήματος.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Ανοίξτε το αγαπημένο σας πρόγραμμα περιήγησης και περιηγηθείτε στο http://192.168.0.1:8080
. Θα πρέπει να δείτε ότι η εφαρμογή εκτελεί έναν ιστότοπο επίδειξης. Εάν δεν βλέπετε τον ιστότοπό σας, περιμένετε καθώς η πρώτη εκκίνηση του διακομιστή dotCMS διαρκεί μερικά λεπτά καθώς εγγράφει δεδομένα στη βάση δεδομένων PostgreSQL και δημιουργεί τη μνήμη cache. Μπορείτε επίσης να ελέγξετε τα αρχεία καταγραφής εκκίνησης.
tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log
Ο διακομιστής dotCMS μπορεί να ξεκινήσει απευθείας χρησιμοποιώντας το σενάριο εκκίνησης που παρέχεται στο πακέτο εγκατάστασης. Για λόγους ευκολίας, θα πρέπει να ρυθμίσετε ένα αρχείο μονάδας Systemd για τον διακομιστή dotCMS. Αυτό θα διασφαλίσει ότι ο διακομιστής εφαρμογών ξεκινά αυτόματα κατά την επανεκκίνηση του συστήματος και τις αποτυχίες.
Διακόψτε τον τρέχοντα διακομιστή dotCMS χρησιμοποιώντας το σενάριο τερματισμού λειτουργίας.
sudo bin/shutdown.sh
Δημιουργήστε έναν μη προνομιούχο χρήστη για τη λειτουργία του διακομιστή dotCMS, για λόγους ασφαλείας.
sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms
Παρέχετε την ιδιοκτησία των αρχείων στον χρήστη dotCMS.
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 free SSL.
Εγκαταστήστε τον διακομιστή web Nginx.
sudo yum -y install nginx
Εκκινήστε τον διακομιστή web και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Εγκαταστήστε το Certbot, το οποίο είναι μια εφαρμογή πελάτη για το Let's Encrypt CA.
sudo yum -y install certbot
Για να μπορέσετε να ζητήσετε τα πιστοποιητικά, θα πρέπει να επιτρέψει τις θύρες 80
και 443
ή πρότυπο HTTP
και HTTPS
υπηρεσιών μέσω του τείχους προστασίας. Επίσης, καταργήστε τη θύρα 8080
από τη λίστα εξαιρέσεων τείχους προστασίας καθώς δεν απαιτείται πλέον.
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
Σημείωση: Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/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/conf.d/cms.example.com.conf
Συμπληρώστε το αρχείο.
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;
}
}
Κάντε επανεκκίνηση του διακομιστή ιστού Nginx, ώστε οι αλλαγές να τεθούν σε ισχύ.
sudo systemctl restart nginx
Η εφαρμογή dotCMS είναι τώρα εγκατεστημένη στον διακομιστή σας για χρήση στην παραγωγή. Πρόσβαση στον πίνακα ελέγχου διαχείρισης στην ακόλουθη διεύθυνση.
https://cms.example.com/dotAdmin
Συνδεθείτε χρησιμοποιώντας τον αρχικό λογαριασμό διαχειριστή [email protected]
και admin
. Αλλάξτε τον προεπιλεγμένο κωδικό πρόσβασης αμέσως μετά τη σύνδεση.
Συγχαρητήρια, το σύστημα διαχείρισης περιεχομένου dotCMS είναι πλέον εγκατεστημένο στον διακομιστή σας. Μπορείτε να τροποποιήσετε τον ιστότοπο επίδειξης ή μπορείτε να ξεκινήσετε τη δημιουργία του ιστότοπού σας από την αρχή.