วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS
เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย
Apache Zeppelin เป็นโน้ตบุ๊กแบบโอเพ่นซอร์สบนเว็บและเครื่องมือการทำงานร่วมกันสำหรับการส่งข้อมูลการค้นพบการวิเคราะห์และการแสดงภาพแบบอินเทอร์แอคทีฟ Zeppelin รองรับ 20+ ภาษารวมถึง Apache Spark, SQL, R, Elasticsearch และอีกมากมาย Apache Zeppelin ให้คุณสร้างเอกสารที่ขับเคลื่อนด้วยข้อมูลที่สวยงามและดูผลลัพธ์ของการวิเคราะห์ของคุณ
สำหรับบทช่วยสอนนี้เราจะใช้zeppelin.example.comเป็นชื่อโดเมนที่ชี้ไปยังอินสแตนซ์ Vultr โปรดตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อโดเมนตัวอย่างทั้งหมดด้วยชื่อจริง
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง Java
Apache Zeppelin เขียนขึ้นใน Java จึงต้องใช้ JDK ในการทำงาน ดาวน์โหลดแพคเกจ Oracle SE JDK RPM
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"
ติดตั้งแพ็คเกจที่ดาวน์โหลด
sudo yum -y localinstall jdk-8u151-linux-x64.rpm
หาก Java ติดตั้งสำเร็จคุณควรตรวจสอบเวอร์ชั่นของมันได้
java -version
คุณจะเห็นผลลัพธ์ต่อไปนี้
[user@vultr ~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 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/java/jdk1.8.0_151/jre/bin/java
ตอนนี้ตั้งค่าตัวแปรJAVA_HOMEและJRE_HOMEสภาพแวดล้อมตามเส้นทางของไดเรกทอรี Java
echo "export JAVA_HOME=/usr/java/jdk1.8.0_151" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_151/jre" >> ~/.bash_profile
ดำเนินการbash_profileไฟล์
source ~/.bash_profile
ตอนนี้คุณสามารถเรียกใช้echo $JAVA_HOMEคำสั่งเพื่อตรวจสอบว่ามีการตั้งค่าตัวแปรสภาพแวดล้อม
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151
Apache Zeppelin จัดส่งการอ้างอิงทั้งหมดพร้อมกับไฟล์ไบนารีดังนั้นเราจึงไม่จำเป็นต้องติดตั้งสิ่งอื่นนอกจาก Java ดาวน์โหลด Zeppelin binary บนระบบของคุณ คุณสามารถหารุ่นล่าสุดของแอพลิเคชันบนหน้าดาวน์โหลดเหาะ
wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz
แตกไฟล์เก็บถาวร
sudo tar xf zeppelin-*-bin-all.tgz -C /opt
/opt/zeppelin-0.7.3-bin-allคำสั่งดังกล่าวจะแยกเก็บไป เปลี่ยนชื่อไดเรกทอรีเพื่อความสะดวก
sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin
ติดตั้ง Apache Zeppelin แล้ว คุณสามารถเริ่มแอปพลิเคชั่นได้ทันที แต่จะไม่สามารถเข้าถึงได้เนื่องจากฟังlocalhostเฉพาะ เราจะกำหนดค่า Apache Zeppelin เป็นบริการ นอกจากนี้เรายังจะกำหนดค่าเว็บเซิร์ฟเวอร์ Nginx เป็นพร็อกซีย้อนกลับ
ในขั้นตอนนี้เราจะตั้งค่าไฟล์หน่วย Systemd สำหรับแอปพลิเคชัน Zeppelin สิ่งนี้จะช่วยให้มั่นใจได้ว่ากระบวนการแอปพลิเคชั่นจะเริ่มต้นโดยอัตโนมัติเมื่อระบบรีสตาร์ทและล้มเหลว
เพื่อเหตุผลด้านความปลอดภัยให้สร้างผู้ใช้ที่ไม่มีสิทธิพิเศษเพื่อเรียกใช้กระบวนการ Zeppelin
sudo adduser -d /opt/zeppelin -s /sbin/nologin zeppelin
มอบความเป็นเจ้าของไฟล์ให้กับผู้ใช้ Zeppelin ที่สร้างขึ้นใหม่
sudo chown -R zeppelin:zeppelin /opt/zeppelin
สร้างไฟล์หน่วยบริการ Systemd ใหม่
sudo nano /etc/systemd/system/zeppelin.service
เติมไฟล์ด้วยข้อมูลต่อไปนี้
[Unit]
Description=Zeppelin service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always
[Install]
WantedBy=multi-user.target
เริ่มแอปพลิเคชัน
sudo systemctl start zeppelin
เปิดใช้งานบริการ Zeppelin เพื่อเริ่มต้นโดยอัตโนมัติในเวลาบูต
sudo systemctl enable zeppelin
ในการตรวจสอบว่าบริการกำลังทำงานอยู่หรือไม่คุณสามารถเรียกใช้สิ่งต่อไปนี้
sudo systemctl status zeppelin
โดยค่าเริ่มต้นเซิร์ฟเวอร์เหาะฟังบนพอร์ตlocalhost 8080ในบทช่วยสอนนี้เราจะใช้ Nginx เป็น reverse proxy เพื่อให้แอปพลิเคชันสามารถเข้าถึงได้ผ่านทางมาตรฐานHTTPและHTTPSพอร์ต นอกจากนี้เรายังจะกำหนดค่า Nginx ให้ใช้ SSL ที่สร้างด้วย Let's Encrypt SSL CA ฟรี
ติดตั้ง Nginx
sudo yum -y install nginx
เริ่ม Nginx และเปิดใช้งานให้เริ่มโดยอัตโนมัติในเวลาบูต
sudo systemctl start nginx
sudo systemctl enable nginx
ติดตั้ง Certbot ซึ่งเป็นแอปพลิเคชันไคลเอนต์สำหรับ Let's Encrypt CA
sudo yum -y install certbot
ก่อนที่คุณจะสามารถขอใบรับรองได้คุณจะต้องอนุญาตพอร์ต80และ443หรือมาตรฐานHTTPและHTTPSบริการผ่านไฟร์วอลล์
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 zeppelin.example.com
/etc/letsencrypt/live/zeppelin.example.com/ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน ใบรับรอง SSL จะถูกเก็บไว้เป็นและคีย์ส่วนตัวจะถูกเก็บไว้เป็นfullchain.pemprivkey.pem
ลองเข้ารหัสใบรับรองหมดอายุใน 90 วันดังนั้นขอแนะนำให้ตั้งค่าการต่ออายุใบรับรองโดยอัตโนมัติโดยใช้งาน Cron
เปิดไฟล์งาน cron
sudo crontab -e
เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์
30 5 * * * /usr/bin/certbot renew --quiet
งาน cron ข้างต้นจะทำงานทุกวันเวลา 5.30 น. หากใบรับรองหมดอายุเนื่องจากหมดอายุใบรับรองจะต่ออายุโดยอัตโนมัติ
สร้างไฟล์บล็อกเซิร์ฟเวอร์ใหม่สำหรับไซต์ Zeppelin
sudo nano /etc/nginx/conf.d/zeppelin.example.com.conf
เติมไฟล์
upstream zeppelin {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name zeppelin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name zeppelin.example.com;
ssl_certificate /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zeppelin.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/zeppelin.access.log;
location / {
proxy_pass http://zeppelin;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /ws {
proxy_pass http://zeppelin/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
รีสตาร์ท Nginx เพื่อให้การเปลี่ยนแปลงมีผล
sudo systemctl restart nginx zeppelin
Zeppelin สามารถเข้าถึงได้ตามที่อยู่ต่อไปนี้
https://zeppelin.example.com
ตามค่าเริ่มต้นจะไม่มีการเปิดใช้งานการรับรองความถูกต้องดังนั้นคุณสามารถใช้แอปพลิเคชันได้โดยตรง
เนื่องจากทุกคนสามารถเข้าถึงแอปพลิเคชันได้โน้ตบุ๊คที่คุณสร้างจึงทุกคนสามารถเข้าถึงได้ จำเป็นอย่างยิ่งที่จะต้องปิดใช้งาน���ารเข้าถึงแบบไม่ระบุชื่อและเปิดใช้งานการรับรองความถูกต้องเพื่อให้ผู้ใช้ที่ผ่านการรับรองความถูกต้องเท่านั้นที่สามารถเข้าถึงแอปพลิเคชันได้
หากต้องการปิดใช้งานการเข้าถึงแบบไม่ระบุชื่อเริ่มต้นให้คัดลอกเทมเพลตไฟล์การกำหนดค่าไปยังตำแหน่งสด
cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml
แก้ไขไฟล์กำหนดค่า
sudo nano conf/zeppelin-site.xml
ค้นหาบรรทัดต่อไปนี้ในไฟล์
<property>
<name>zeppelin.anonymous.allowed</name>
<value>true</value>
เปลี่ยนค่าเป็นfalseเพื่อปิดใช้งานการเข้าถึงแบบไม่ระบุชื่อ
ตอนนี้เราได้ปิดใช้งานการเข้าถึงแบบไม่ระบุชื่อเราต้องเปิดใช้กลไกการพิสูจน์ตัวตนบางประเภทเพื่อให้ผู้ใช้ที่มีสิทธิ์สามารถเข้าสู่ระบบ Apache Zeppelin ใช้การพิสูจน์ตัวตน Apache Shiro คัดลอกไฟล์กำหนดค่าของ Shiro
sudo cp conf/shiro.ini.template conf/shiro.ini
แก้ไขไฟล์กำหนดค่า
sudo nano conf/shiro.ini
ค้นหาบรรทัดต่อไปนี้ในไฟล์
[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
รายการประกอบด้วยชื่อผู้ใช้รหัสผ่านและบทบาทของผู้ใช้ สำหรับตอนนี้เราจะใช้และadmin user1เปลี่ยนรหัสผ่านadminและuser1และปิดการใช้งานผู้ใช้รายอื่นโดยการแสดงความคิดเห็น คุณยังสามารถเปลี่ยนชื่อผู้ใช้และบทบาทของผู้ใช้ ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับผู้ใช้ Apache Shiro และบทบาทอ่านคู่มือการอนุมัติ Shiro
เมื่อคุณเปลี่ยนรหัสผ่านแล้วโค้ดบล็อกควรมีลักษณะเช่นนี้
[users]
admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2
ตอนนี้เริ่ม Zeppelin ใหม่เพื่อใช้การเปลี่ยนแปลง
sudo systemctl restart zeppelin
คุณควรเห็นว่ามีการเปิดใช้งานการรับรองความถูกต้องและคุณจะสามารถเข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่านที่ตั้งค่าในไฟล์กำหนดค่า Shiro
เรียนรู้วิธีการติดตั้ง 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