วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS
เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย
dotCMS เป็นระบบจัดการเนื้อหาระดับองค์กรโอเพนซอร์สที่เขียนด้วยภาษาจาวา มันมีคุณสมบัติเกือบทุกอย่างที่จำเป็นในการสร้างเว็บไซต์สำหรับธุรกิจของคุณ มันมี RESTful API เพื่อรวมเข้ากับบริการอื่น ๆ เช่น CRM แอปพลิเคชันมือถือและอื่น ๆ มันใช้ Elasticsearch สำหรับการจัดทำดัชนีเนื้อหาแบบเรียลไทม์และ Redis สำหรับการใช้แคชหลายชั้น
บทความนี้เขียนขึ้นสำหรับ dotCMS 4.2.2 อย่างไรก็ตามคำแนะนำที่ให้ไว้อาจใช้ได้กับเวอร์ชันที่ใหม่กว่าเช่นกัน
สำหรับบทช่วยสอนนี้เราจะใช้192.168.0.1เป็นที่อยู่ IP สาธารณะและcms.example.comเป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อโดเมนตัวอย่างและที่อยู่ IP สาธารณะทั้งหมดด้วยชื่อจริง
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง 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 executable บนระบบของคุณ
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
โดยค่าเริ่มต้น 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
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" />
-->
uncomment ส่วน 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.
คำสั่งดังกล่าวจะเริ่มต้นเว็บเซิร์ฟเวอร์ 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 และสร้างแคช คุณยังสามารถตรวจสอบบันทึกการเริ่มต้น
tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log
เซิร์ฟเวอร์ dotCMS สามารถเริ่มต้นได้โดยตรงโดยใช้สคริปต์เริ่มต้นที่ระบุในแพ็คเกจตัวติดตั้ง ตามความสะดวกคุณควรตั้งค่าไฟล์ Systemd unit สำหรับเซิร์ฟเวอร์ 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 เป็น reverse proxy เพื่อให้แอปพลิเคชันสามารถเข้าถึงได้ผ่านมาตรฐานHTTPและHTTPSพอร์ต นอกจากนี้เรายังจะกำหนดค่า Nginx ให้ใช้ SSL ที่สร้างขึ้นด้วย Let's Encrypt SSL ฟรี
ติดตั้งเว็บเซิร์ฟเวอร์ Nginx
sudo yum -y install nginx
เริ่มเว็บเซิร์ฟเวอร์และเปิดใช้งานให้เริ่มโดยอัตโนมัติในเวลาบูต
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
เข้าสู่ระบบโดยใช้บัญชีผู้ดูแลระบบเริ่มต้นและadmin@dotcms.com adminเปลี่ยนรหัสผ่านเริ่มต้นทันทีหลังจากเข้าสู่ระบบ
ขอแสดงความยินดีระบบจัดการเนื้อหา dotCMS ได้รับการติดตั้งบนเซิร์ฟเวอร์ของคุณแล้ว คุณสามารถปรับเปลี่ยนไซต์ตัวอย่างหรือเริ่มสร้างเว็บไซต์ของคุณเองได้
เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย
เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์
เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true