Cara Memasang dotCMS di CentOS 7

dotCMS adalah sistem pengurusan kandungan kelas perusahaan sumber terbuka yang ditulis di Jawa. Ini mengandungi hampir setiap ciri yang diperlukan untuk membuat laman web untuk perniagaan anda. Ini menyediakan RESTful API untuk diintegrasikan dengan perkhidmatan lain seperti CRM, aplikasi mudah alih, dan banyak lagi. Ia menggunakan Elasticsearch untuk pengindeksan kandungan sebenar dan Redis untuk melaksanakan cache pelbagai peringkat.

Artikel ini ditulis untuk dotCMS 4.2.2, namun arahan yang disediakan mungkin berfungsi untuk versi yang lebih baru juga.

Prasyarat

  • Contoh server Vultr CentOS 7.
  • Pengguna sudo .
  • Nama domain menunjuk ke pelayan.

Untuk tutorial ini, kami akan menggunakan 192.168.0.1sebagai alamat IP awam dan cms.example.comsebagai nama domain menunjuk ke arah Vultr. Sila pastikan untuk menggantikan semua kejadian contoh nama domain dan alamat IP awam dengan yang sebenarnya.

Kemas kini sistem asas anda menggunakan panduan Cara Mengemas kini CentOS 7 . Apabila sistem anda telah dikemas kini, teruskan untuk memasang Java.

Pasang Java

OpenJDK dapat dipasang dengan mudah kerana pakej ini tersedia di repositori YUM lalai.

sudo yum -y install java-1.8.0-openjdk-devel

Sekiranya Java dipasang dengan betul, maka anda akan dapat mengesahkan versinya.

java -version

Anda akan mendapat output yang serupa.

[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)

Sebelum kita dapat melangkah lebih jauh, kita perlu mengatur pemboleh ubah JAVA_HOMEdan JRE_HOMEpersekitaran. Cari jalan mutlak Java yang dapat dilaksanakan di sistem anda.

readlink -f $(which java)

Anda akan melihat output yang serupa.

[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

Sekarang, tetapkan pemboleh ubah JAVA_HOMEdan JRE_HOMEpersekitaran mengikut laluan direktori 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

Jalankan bash_profilefail.

source ~/.bash_profile

Sekarang anda boleh menjalankan echo $JAVA_HOMEarahan untuk memastikan pembolehubah persekitaran ditetapkan.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Pasang PostgreSQL

Secara lalai, dotCMS dikonfigurasi untuk menggunakan mesin pangkalan data H2. Enjin pangkalan data H2 adalah enjin pangkalan data berasaskan fail rata. Tidak digalakkan digunakan dalam pengeluaran. Dalam tutorial ini, kita akan menggunakan pelayan PostgreSQL untuk menyimpan pangkalan data dotCMS.

PostgreSQL adalah sistem pangkalan data objek hubungan dan dikenali untuk kestabilan dan kelajuannya. Tambahkan repositori dari keluaran terakhir PostgreSQL ke dalam sistem.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Pasang pelayan pangkalan data PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Inisialkan pangkalan data.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Mulakan pelayan PostgreSQL dan dayakannya secara automatik pada masa boot.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

Tukar kata laluan untuk pengguna PostgreSQL lalai.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL lalai.

sudo su - postgres

Buat pengguna PostgreSQL baru untuk dotCMS.

createuser dotcms 

PostgreSQL menyediakan psqlshell untuk menjalankan pertanyaan di pelayan pangkalan data. Beralih ke shell PostgreSQL.

psql

Tetapkan kata laluan untuk pengguna yang baru dibuat untuk pangkalan data dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Ganti kata laluan pengguna pangkalan data DBPassworddengan kata laluan yang selamat. Buat pangkalan data baru untuk pemasangan dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Keluar dari psqlcangkerang.

\q

Beralih kepada sudopengguna.

exit

Pasang dotCMS

Muat turun arkib dotCMS.

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.2.2.tar.gz

Anda sentiasa boleh mendapatkan pautan ke aplikasi versi terbaru di halaman muat turun dotCMS .

Buat direktori baru untuk menyimpan fail dotCMS dan ekstrak ke dalamnya.

sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms

Buka fail konfigurasi pangkalan data.

cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml

Cari H2blok.

<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Komen keseluruhannya H2dengan menggantikan pembatas komentar -->dari permulaan bahagian hingga ke bahagian akhir. Ia seperti yang berikut.

<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->

Tanggalkan bahagian PostgreSQL dengan membuang pembatas komen -->dari akhir bahagian dan meletakkannya di pembungkus atas POSTGRESQL. Juga, cari username=dan password=dan gantikan nilai sedia ada dengan nama pengguna dan kata laluan pengguna pangkalan data PostgreSQL anda. Sekiranya anda telah menggunakan nama pangkalan data selain dotcms, maka anda perlu menukar nama pangkalan data url=. Sebaik sahaja dikonfigurasikan, blok PostgreSQL dalam fail sepatutnya seperti berikut.

<!-- 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" />

Berikan kebenaran pelaksanaan untuk semua fail yang boleh dilaksanakan.

sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh

dotCMS kini dipasang pada pelayan anda. Untuk segera menjalankan aplikasi, laksanakan perkara berikut.

cd /opt/dotcms
sudo bin/startup.sh

Anda akan melihat output berikut apabila pelayan berjaya dimulakan.

[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.

Perintah di atas akan memulakan pelayan web Tomcat untuk melayani aplikasi di port 8080. Untuk memeriksa sama ada laman web dotCMS berfungsi, izinkan pelabuhan yang diperlukan 8080melalui sistem firewall.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Buka penyemak imbas kegemaran anda dan semak imbas http://192.168.0.1:8080. Anda harus melihat bahawa aplikasi sedang menjalankan laman web demo. Sekiranya anda tidak melihat laman web anda, sila tunggu kerana permulaan pertama pelayan dotCMS memerlukan beberapa minit kerana ia menulis data ke dalam pangkalan data PostgreSQL dan membina cache. Anda juga boleh menyemak log permulaan.

tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log

Konfigurasikan perkhidmatan Systemd

Pelayan dotCMS boleh dimulakan secara langsung menggunakan skrip permulaan yang disediakan dalam pakej pemasang. Untuk kemudahan, anda harus menyediakan fail unit Systemd untuk pelayan dotCMS. Ini akan memastikan bahawa pelayan aplikasi dimulakan secara automatik pada sistem dan kerosakan semula.

Hentikan pelayan dotCMS menggunakan skrip penutupan.

sudo bin/shutdown.sh

Buat pengguna yang tidak bernasib baik untuk menjalankan pelayan dotCMS, atas alasan keselamatan.

sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms

Menyediakan pemilikan fail ke pengguna dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Buat perkhidmatan Systemd baru.

sudo nano /etc/systemd/system/dotcms.service

Isi fail.

[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

Mulakan aplikasi dan aktifkannya secara automatik pada masa boot.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Pastikan perkhidmatan berjalan.

sudo systemctl status dotcms

Konfigurasikan Proksi Terbalik

Secara lalai, pelayan dotCMS mendengar pada port 8080. Kami akan mengkonfigurasi Nginx sebagai proksi terbalik supaya aplikasi boleh diakses melalui standard HTTPdan HTTPSport. Kami juga akan mengkonfigurasi Nginx untuk menggunakan SSL yang dihasilkan dengan Let's Encrypt SSL percuma.

Pasang pelayan web Nginx.

sudo yum -y install nginx

Mulakan pelayan web dan aktifkannya secara automatik pada masa boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Pasang Certbot, yang merupakan aplikasi pelanggan untuk Let's Encrypt CA.

sudo yum -y install certbot

Sebelum anda dapat meminta sijil, anda perlu membenarkan port 80dan 443atau standard HTTPdan HTTPSperkhidmatan melalui firewall. Juga, keluarkan port 8080dari senarai pengecualian firewall kerana tidak diperlukan lagi.

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: Untuk mendapatkan sijil dari Let's Encrypt CA, domain yang mana sijil yang akan dihasilkan mesti ditujukan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain dan tunggu DNS disebarkan sebelum membuat permintaan sijil lagi. Certbot memeriksa pihak berkuasa domain sebelum menyediakan sijil.

Menjana sijil SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com

Sijil yang dijana mungkin disimpan di dalam /etc/letsencrypt/live/cms.example.com/. Mari Sulitkan sijil tamat dalam 90 hari, oleh itu disarankan untuk mengatur pembaharuan sijil secara automatik menggunakan pekerjaan Cron.

Buka fail kerja cron.

sudo crontab -e

Tambahkan garisan berikut pada akhir fail.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan dijalankan setiap hari pada jam 5:30 pagi. Sekiranya sijil perlu tamat tempoh, ia akan diperbaharui secara automatik.

Buat fail blok pelayan baru untuk laman web dotCMS.

sudo nano /etc/nginx/conf.d/cms.example.com.conf

Isi fail.

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;
    }
  }

Mulakan semula pelayan web Nginx supaya perubahan tersebut dapat berkuatkuasa.

sudo systemctl restart nginx

Aplikasi dotCMS kini dipasang pada pelayan anda untuk kegunaan pengeluaran. Akses papan pemuka pentadbiran pada alamat berikut.

https://cms.example.com/dotAdmin

Log masuk menggunakan akaun pentadbir permulaan, [email protected]dan admin. Tukar kata laluan lalai sebaik sahaja log masuk.

Tahniah, sistem pengurusan kandungan dotCMS kini dipasang di pelayan anda. Anda boleh mengubahsuai laman web demo atau mula membina laman web anda dari awal.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut