Preduvjeti
Instalirajte Javu
Instalirajte PostgreSQL
Instalirajte dotCMS
Konfigurirajte Systemd
Konfigurirajte obrnuti proxy
DotCMS je open-source sustav za upravljanje sadržajem poslovnog razreda napisan na Javi. Sadrži gotovo sve značajke potrebne za izradu web stranice za vašu tvrtku. Pruža RESTful API za integraciju s drugim uslugama kao što su CRM, mobilne aplikacije i još mnogo toga. Koristi Elasticsearch za indeksiranje sadržaja u stvarnom vremenu i Redis za implementaciju višeslojne predmemorije.
Preduvjeti
- Instanca poslužitelja Vultr Ubuntu 16.04.
- Korisnik sudoa .
- Naziv domene usmjeren prema poslužitelju.
Za ovaj vodič koristit ćemo 192.168.0.1 kao javnu IP adresu i cms.example.com kao ime domene usmjereno na Vultr instancu. Svakako zamijenite sva pojavljivanja primjera naziva domene i javne IP adrese stvarnim.
Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati Ubuntu 16.04 . Nakon što se vaš sustav ažurira, nastavite s instalacijom Jave.
Instalirajte Javu
Dodajte Ubuntu spremište za Oracle Java 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Instalirajte Javu.
sudo apt -y install oracle-java8-installer
Moći ćete provjeriti verziju Jave.
java -version
Vidjet ćete sljedeći izlaz.
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)
Postavite zadani put za Javu instaliranjem sljedećeg paketa.
sudo apt -y install oracle-java8-set-default
Možete provjeriti da JAVA_HOMEje postavljeno.
echo $JAVA_HOME
Trebali biste vidjeti sljedeće.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Ako uopće ne vidite nikakav izlaz, morat ćete se odjaviti iz trenutne ljuske i ponovno se prijaviti.
Instalirajte PostgreSQL
Prema zadanim postavkama, dotCMS je konfiguriran za korištenje H2 baze podataka. Mehanizam baze podataka H2 je motor baze podataka baziran na ravnoj datoteci. Ne preporuča se koristiti u proizvodnji. U ovom vodiču koristit ćemo PostgreSQL poslužitelj za pohranu dotCMS baze podataka.
PostgreSQL je objektno-relacijski sustav baze podataka, poznat po svojoj stabilnosti i brzini. Zadano Ubuntu spremište sadrži staru verziju PostgreSQL-a, stoga dodajte PostgreSQL spremište.
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
Instalirajte PostgreSQL poslužitelj baze podataka.
sudo apt -y install postgresql
Pokrenite PostgreSQL poslužitelj i omogućite mu automatsko pokretanje prilikom pokretanja.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Promijenite lozinku za zadanog korisnika PostgreSQL.
sudo passwd postgres
Prijavite se kao korisnik PostgreSQL-a.
sudo su - postgres
Stvorite novog PostgreSQL korisnika za dotCMS.
createuser dotcms
PostgreSQL pruža psql ljusku za pokretanje upita na poslužitelju baze podataka. Prijeđite na ljusku PostgreSQL.
psql
Postavite lozinku za novostvorenog korisnika za dotCMS bazu podataka.
ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';
Zamijenite korisničku lozinku baze podataka DBPassword sigurnom lozinkom.
Napravite novu bazu podataka za instalaciju dotCMS-a.
CREATE DATABASE dotcms OWNER dotcms;
Izađite iz psql ljuske.
\q
Prebacite se na sudo korisnika.
exit
Instalirajte dotCMS
Preuzmite dotCMS arhivu.
wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.3.2.tar.gz
Link na najnoviju verziju aplikacije uvijek možete pronaći na stranici za preuzimanje dotCMS-a .
Napravite novi direktorij za pohranu dotCMS datoteka i izdvojite ih u njega.
sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms
Otvorite konfiguracijsku datoteku baze podataka.
cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml
Pronađite H2 blok.
<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
Komentirajte cijeli H2 odjeljak pomicanjem graničnika komentara --> s početka odjeljka na kraj odjeljka. Trebalo bi izgledati ovako.
<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
...
validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->
Dekomentirajte odjeljak PostgreSQL tako da uklonite graničnik komentara --> s kraja odjeljka i stavite ga na gornji omotač POSTGRESQL. Također, pronađite username= i password= zamijenite postojeće vrijednosti korisničkim imenom i lozinkom vašeg korisnika PostgreSQL baze podataka. Ako ste koristili naziv baze podataka koji nije dotcms, tada ćete morati promijeniti naziv baze podataka u url=. Nakon što je konfiguriran, PostgreSQL blok u datoteci će izgledati ovako.
<!-- 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" />
Osigurajte dopuštenje za izvršenje za sve izvršne datoteke.
sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh
DotCMS je sada instaliran na vašem poslužitelju. Da biste odmah pokrenuli aplikaciju, izvršite sljedeće.
cd /opt/dotcms
sudo bin/startup.sh
Vidjet ćete sljedeći izlaz kada se poslužitelj uspješno pokrene.
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.
Gornja naredba će pokrenuti Tomcat web poslužitelj za posluživanje aplikacije na portu 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
Napravite novu Systemd uslugu.
sudo nano /etc/systemd/system/dotcms.service
Popunite datoteku.
[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
Pokrenite aplikaciju i omogućite joj automatsko pokretanje prilikom pokretanja.
sudo systemctl start dotcms
sudo systemctl enable dotcms
Provjerite je li usluga pokrenuta.
sudo systemctl status dotcms
Prema zadanim postavkama, dotCMS poslužitelj sluša port 8080. Nginx ćemo konfigurirati kao obrnuti proxy tako da se aplikaciji može pristupiti putem standarda HTTP i HTTPS portova. Također ćemo konfigurirati Nginx da koristi SSL generiran pomoću Let's Encrypt.
Instalirajte Nginx.
sudo apt -y install nginx
Pokrenite Nginx i omogućite mu automatsko pokretanje prilikom pokretanja.
sudo systemctl start nginx
sudo systemctl enable nginx
Dodajte Certbot repozitorij.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Instalirajte Certbot, klijentsku aplikaciju za Let's Encrypt CA.
sudo apt -y install certbot
Napomena: Za dobivanje certifikata od Let's Encrypt CA, domena za koju se certifikati trebaju generirati mora biti usmjerena prema poslužitelju. Ako nije, izvršite potrebne promjene u DNS zapisima domene i pričekajte da se DNS širi prije nego što ponovno uputite zahtjev za certifikatom. Certbot provjerava autoritet domene prije pružanja certifikata.
Generirajte SSL certifikate.
sudo certbot certonly --webroot -w /var/www/html -d cms.example.com
Generirani certifikati vjerojatno će biti pohranjeni u /etc/letsencrypt/live/cms.example.com/. Let's Encrypt certifikati istječu za 90 dana, stoga je preporučljivo postaviti automatsku obnovu certifikata pomoću Cron poslova.
Otvorite cron datoteku posla.
sudo crontab -e
Dodajte sljedeći redak na kraj datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Gornji cron posao će se izvoditi svaki dan u 5:30 ujutro. Ako potvrda istekne, automatski će se obnoviti.
Izradite novu datoteku bloka poslužitelja za dotCMS mjesto.
sudo nano /etc/nginx/sites-available/dotcms
Popunite datoteku.
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;
}
}
Aktivirajte konfiguraciju.
sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms
Ponovno pokrenite Nginx web poslužitelj kako bi promjene mogle stupiti na snagu.
sudo systemctl restart nginx
Aplikacija dotCMS sada je instalirana na vašem poslužitelju za upotrebu u proizvodnji. Pristupite administrativnoj nadzornoj ploči na sljedećoj adresi.
https://cms.example.com/dotAdmin
Prijavite se pomoću početnog administratorskog računa admin@dotcms.com i lozinke admin. Promijenite zadanu lozinku odmah nakon prijave.
Čestitamo, sustav za upravljanje sadržajem dotCMS sada je instaliran na vašem poslužitelju. Možete izmijeniti demo stranicu ili možete početi graditi svoju stranicu od nule.