Directus 6.4 CMS เป็นระบบการจัดการเนื้อหาแบบไม่มีหัว (Headless Content Management: CMS) ที่ทรงพลังและยืดหยุ่นซึ่งให้ผู้พัฒนาเว็บอินเตอร์เฟสที่ใช้งานง่ายและใช้งานง่ายสำหรับการจัดการเนื้อหาฐานข้อมูลด้วยสถาปัตยกรรมที่สมบูรณ์แบบ CMS ดั้งเดิมถูกสร้างขึ้นเป็นแพลตฟอร์มปิดโดยเฉพาะเพื่อการปรับใช้และจัดการเว็บไซต์อย่างรวดเร็วโดยทั่วไปจะเป็นไซต์และบล็อกทั่วไป อย่างไรก็ตามเนื้อหาของวันนี้มีการใช้งานในวงกว้างมากขึ้นรวมถึงแพลตฟอร์มเว็บที่ซับซ้อนแอพพื้นฐานอุปกรณ์ที่สวมใส่ได้ซุ้มอุปกรณ์ IoT และโครงการที่ขับเคลื่อนด้วยข้อมูลอื่น ๆ Directus 6.4 Headless CMS ช่วยให้สามารถจัดการเนื้อหาได้อย่างอิสระจากที่ที่จะใช้ โดยการแยกและการเขียนเนื้อหาที่ไม่เชื่อเรื่องพระเจ้า
ในบทช่วยสอนนี้เราจะติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS โดยใช้ Apache เว็บเซิร์ฟเวอร์, PHP 7.1 และฐานข้อมูล MariaDB
ข้อกำหนดเบื้องต้น
- อินสแตนซ์เซิร์ฟเวอร์ Vultr Fedora 26 ใหม่ทั้งหมดที่มีการเข้าถึง SSH
ขั้นตอนที่ 1: เพิ่มผู้ใช้ Sudo
เราจะเริ่มต้นด้วยการเพิ่มsudo
ผู้ใช้ใหม่
ก่อนเข้าสู่เซิร์ฟเวอร์ของคุณเป็นroot
:
ssh root@YOUR_VULTR_IP_ADDRESS
เพิ่มผู้ใช้ใหม่ชื่อuser1
(หรือชื่อผู้ใช้ที่คุณต้องการ):
useradd user1
ถัดไปตั้งรหัสผ่านสำหรับuser1
ผู้ใช้:
passwd user1
เมื่อได้รับแจ้งให้ป้อนรหัสผ่านที่ปลอดภัยและน่าจดจำ
ตอนนี้ตรวจสอบ/etc/sudoers
ไฟล์เพื่อให้แน่ใจว่าsudoers
กลุ่มเปิดใช้งาน:
visudo
ค้นหาหัวข้อเช่นนี้:
%wheel ALL=(ALL) ALL
ตรวจสอบให้แน่ใจว่าไม่ได้เป็นการแสดงความคิดเห็น บรรทัดนี้บอกเราว่าผู้ใช้ที่เป็นสมาชิกของwheel
กลุ่มสามารถใช้sudo
คำสั่งเพื่อรับroot
สิทธิ์
เมื่อคุณแก้ไขไฟล์แล้วคุณสามารถบันทึกและออกโดยกดEsc
จากนั้นเข้าสู่:wq
"เขียน" และ "ออกจาก" ไฟล์
ต่อไปเราต้องเพิ่มuser1
ไปยังwheel
กลุ่ม:
usermod -aG wheel user1
เราสามารถตรวจสอบความuser1
เป็นสมาชิกกลุ่มและตรวจสอบว่าusermod
คำสั่งทำงานร่วมกับgroups
คำสั่ง:
groups user1
ตอนนี้ใช้su
คำสั่งเพื่อสลับไปยังuser1
บัญชีผู้ใช้ sudo ใหม่:
su - user1
พรอมต์คำสั่งจะอัปเดตเพื่อระบุว่าคุณได้ลงชื่อเข้าuser1
ใช้บัญชีแล้ว คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยwhoami
คำสั่ง:
whoami
ตอนนี้เริ่มsshd
บริการใหม่เพื่อให้คุณสามารถเข้าสู่ระบบssh
ด้วยบัญชีผู้ใช้ sudo ที่ไม่ใช่รูทใหม่ที่คุณเพิ่งสร้างขึ้น:
sudo systemctl restart sshd
ออกจากuser1
บัญชี:
exit
ออกจากroot
บัญชี (ซึ่งจะยกเลิกการเชื่อมต่อssh
เซสชันของคุณ):
exit
ตอนนี้คุณสามารถssh
เข้าสู่เซิร์ฟเวอร์อินสแตนซ์จากโฮสต์ในพื้นที่ของคุณโดยใช้user1
บัญชีผู้ใช้ sudo ที่ไม่ใช่รูทใหม่
ssh user1@YOUR_VULTR_IP_ADDRESS
หากคุณต้องการรัน sudo โดยไม่ต้องพิมพ์รหัสผ่านทุกครั้งให้เปิด/etc/sudoers
ไฟล์อีกครั้งโดยใช้visudo
:
sudo visudo
แก้ไขส่วนสำหรับwheel
กลุ่มเพื่อให้มีลักษณะดังนี้:
%wheel ALL=(ALL) NOPASSWD: ALL
โปรดทราบ: การปิดใช้งานข้อกำหนดรหัสผ่านสำหรับผู้ใช้ sudo ไม่ใช่วิธีปฏิบัติที่แนะนำ แต่จะรวมอยู่ที่นี่เนื่องจากสามารถทำให้การกำหนดค่าเซิร์ฟเวอร์สะดวกและน่าผิดหวังยิ่งขึ้นโดยเฉพาะในช่วงการดูแลระบบที่ยาวนานขึ้น หากคุณกังวลเกี่ยวกับผลกระทบด้านความปลอดภัยคุณสามารถย้อนกลับการเปลี่ยนแปลงการกำหนดค่าเป็นต้นฉบับได้หลังจากที่คุณทำภารกิจการจัดการเสร็จ
เมื่อใดก็ตามที่คุณต้องการลงชื่อเข้าroot
ใช้บัญชีผู้ใช้จากภายในsudo
บัญชีผู้ใช้คุณสามารถใช้หนึ่งในคำสั่งต่อไปนี้:
sudo -i
sudo su -
คุณสามารถออกจากroot
บัญชีและกลับสู่sudo
บัญชีผู้ใช้ของคุณได้ตลอดเวลาเพียงแค่พิมพ์:
exit
ขั้นตอนที่ 2: อัพเดทระบบ Fedora 26
ก่อนที่จะติดตั้งแพ็คเกจใด ๆ บนอินสแตนซ์ของเซิร์ฟเวอร์ Fedora เราจะทำการอัปเดตระบบก่อน
ตรวจสอบให้แน่ใจว่าคุณล็อกอินเข้าสู่เซิร์ฟเวอร์โดยใช้ผู้ใช้ที่ไม่ใช่รูท sudo และรันคำสั่งต่อไปนี้:
sudo dnf -y update
ขั้นตอนที่ 3: ติดตั้ง Apache เว็บเซิร์ฟเวอร์
ติดตั้งเว็บเซิร์ฟเวอร์ Apache:
sudo dnf -y install httpd
จากนั้นใช้systemctl
คำสั่งเพื่อเริ่มและเปิดใช้งาน Apache เพื่อดำเนินการโดยอัตโนมัติในเวลาบูต:
sudo systemctl enable httpd
sudo systemctl start httpd
ตรวจสอบไฟล์กำหนดค่า Apache ของคุณเพื่อให้แน่ใจว่าไดเรกทีฟDocumentRoot
ชี้ไปยังไดเร็กทอรีที่ถูกต้อง:
sudo vi /etc/httpd/conf/httpd.conf
DocumentRoot
ตัวเลือกการตั้งค่าจะมีลักษณะเช่นนี้
DocumentRoot "/var/www/html"
ตอนนี้ให้ตรวจสอบให้แน่ใจว่าmod_rewrite
โหลดโมดูล Apache แล้ว เราสามารถทำได้โดยค้นหาไฟล์การกำหนดค่าโมดูลฐาน Apache สำหรับคำว่า " mod_rewrite
"
เปิดไฟล์:
sudo vi /etc/httpd/conf.modules.d/00-base.conf
mod_rewrite
ค้นหาคำว่า
หากmod_rewrite
โหลดโมดูล Apache แล้วคุณจะพบบรรทัดการกำหนดค่าที่มีลักษณะดังนี้:
LoadModule rewrite_module modules/mod_rewrite.so
หากบรรทัดด้านบนเริ่มต้นด้วยเซมิโคลอนคุณจะต้องลบเซมิโคลอนเพื่อยกเลิกการใส่เครื่องหมายในบรรทัดและโหลดโมดูล แน่นอนนี้นำไปใช้กับโมดูล Apache อื่น ๆ ที่จำเป็นด้วย
ตอนนี้เราต้องแก้ไขไฟล์กำหนดค่าเริ่มต้นของ Apache เพื่อให้mod_rewrite
ทำงานได้อย่างถูกต้องกับ Directus CMS
เปิดไฟล์:
sudo vi /etc/httpd/conf/httpd.conf
แล้วหาส่วนที่เริ่มต้นด้วย<Directory "/var/www/html">
และการเปลี่ยนแปลงไปAllowOverride none
AllowOverride All
ผลลัพธ์สุดท้าย (ที่ลบความคิดเห็นทั้งหมด) จะมีลักษณะดังนี้:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ตอนนี้บันทึกและปิดไฟล์กำหนดค่า Apache
เราจะรีสตาร์ท Apache เมื่อสิ้นสุดบทช่วยสอนนี้ แต่การรีสตาร์ท Apache อย่างสม่ำเสมอในระหว่างการติดตั้งและการกำหนดค่าเป็นนิสัยที่ดีดังนั้นให้ทำตอนนี้เลย:
sudo systemctl restart httpd
ขั้นตอนที่ 4: เปิดพอร์ตไฟร์วอลล์ของเว็บ
ตอนนี้เราต้องเปิดค่าเริ่มต้นHTTP
และHTTPS
พอร์ตเนื่องจากจะถูกปิดกั้นfirewalld
โดยค่าเริ่มต้น
เปิดพอร์ตไฟร์วอลล์:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
โหลดไฟร์วอลล์ใหม่เพื่อใช้การเปลี่ยนแปลง:
sudo firewall-cmd --reload
คุณจะเห็นคำที่success
ปรากฏในเทอร์มินัลของคุณหลังจากแต่ละคำสั่งการกำหนดค่าไฟร์วอลล์ที่ประสบความสำเร็จ
เราสามารถตรวจสอบได้อย่างรวดเร็วว่าHTTP
พอร์ตApache เปิดอยู่โดยไปที่ที่อยู่ IP หรือโดเมนของอินสแตนซ์ของเซิร์ฟเวอร์ในเบราว์เซอร์:
http://YOUR_VULTR_IP_ADDRESS/
คุณจะเห็นหน้าเว็บ Apache เริ่มต้นในเบราว์เซอร์ของคุณ
ขั้นตอนที่ 5: ปิดการใช้งาน SELinux
SELinux ย่อมาจาก "Security Enhanced Linux" เป็นการปรับปรุงความปลอดภัยให้กับ Linux ซึ่งช่วยให้ผู้ใช้และผู้ดูแลระบบสามารถควบคุมการเข้าถึงได้มากขึ้น เปิดใช้งานโดยค่าเริ่มต้นใน Fedora 26 แต่ไม่จำเป็นอย่างยิ่งสำหรับการรักษาความปลอดภัยเซิร์ฟเวอร์เนื่องจากการกระจายของเซิร์ฟเวอร์ Linux จำนวนมากไม่ได้มาพร้อมกับการติดตั้งหรือเปิดใช้งานโดยค่าเริ่มต้น
เพื่อหลีกเลี่ยงปัญหาการอนุญาตให้ใช้ไฟล์กับ Directus CMS ในภายหลังเราจะปิดการใช้งาน SELinux ในตอนนี้ ดังนั้นเปิดไฟล์กำหนดค่า SELinux ด้วยเทอร์มินัลเอดิเตอร์ที่คุณโปรดปราน:
sudo vi /etc/selinux/config
เปลี่ยนSELINUX=enforcing
เป็นSELINUX=disabled
แล้วบันทึกไฟล์
ในการใช้การเปลี่ยนแปลงการกำหนดค่า SELinux จำเป็นต้องรีบูตเซิร์ฟเวอร์ดังนั้นคุณสามารถรีสตาร์ทเซิร์ฟเวอร์โดยใช้แผงควบคุม Vultr หรือคุณสามารถใช้shutdown
คำสั่งได้ง่ายๆ:
sudo shutdown -r now
เมื่อเซิร์ฟเวอร์เรียบเซสชั่น SSH ของคุณจะได้รับการเชื่อมต่อและคุณอาจจะเห็นข้อความแจ้งให้คุณทราบเกี่ยวกับหรือ'broken pipe'
'Connection closed by remote host'
สิ่งนี้ไม่ต้องกังวลเพียงแค่รอ 20 วินาทีหรือมากกว่านั้นจากนั้น SSH จะกลับมาอีกครั้ง (ด้วยชื่อผู้ใช้และโดเมนของคุณเอง):
ssh user1@YOUR_DOMAIN
หรือ (ด้วยชื่อผู้ใช้และที่อยู่ IP ของคุณเอง):
ssh user1@YOUR_VULTR_IP_ADDRESS
เมื่อคุณกลับเข้าสู่ระบบแล้วคุณควรตรวจสอบสถานะของ SELinux อีกครั้งด้วยsestatus
คำสั่งเพื่อให้แน่ใจว่ามันถูกปิดการใช้งานอย่างถูกต้อง:
sudo sestatus
SELinux status: disabled
คุณควรจะเห็นข้อความว่า หากคุณเห็นข้อความว่าSELinux status: enabled
(หรือสิ่งที่คล้ายกัน) คุณจะต้องทำซ้ำขั้นตอนข้างต้นและตรวจสอบให้แน่ใจว่าคุณรีสตาร์ทเซิร์ฟเวอร์อย่างถูกต้อง
ขั้นตอนที่ 6: ติดตั้ง PHP 7.1
ตอนนี้เราสามารถติดตั้ง PHP 7.1 พร้อมกับโมดูล PHP ที่จำเป็นทั้งหมดที่ Directus CMS ต้องการ:
sudo dnf -y install php php-mysqlnd php-mbstring php-gd php-common php-pdo php-pecl-imagick php-xml php-zip
ขั้นตอนที่ 7: ติดตั้งเซิร์ฟเวอร์ MariaDB (MySQL)
Fedora 26 เป็นค่าเริ่มต้นในการใช้เซิร์ฟเวอร์ฐานข้อมูล MariaDB ซึ่งเป็นโอเพ่นซอร์สที่ได้รับการพัฒนาอย่างเต็มรูปแบบการพัฒนาชุมชน
ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB:
sudo dnf -y install mariadb-server
เริ่มและเปิดใช้งานเซิร์ฟเวอร์ MariaDB ให้ดำเนินการโดยอัตโนมัติในเวลาบูต:
sudo systemctl enable mariadb
sudo systemctl start mariadb
รักษาความปลอดภัยการติดตั้งเซิร์ฟเวอร์ MariaDB ของคุณ:
sudo mysql_secure_installation
root
รหัสผ่านจะว่างเปล่าดังนั้นเพียงแค่กดปุ่ม Enter เมื่อได้รับแจ้งสำหรับroot
รหัสผ่าน
เมื่อได้รับแจ้งให้สร้างผู้ใช้ MariaDB / MySQL root
ให้เลือก "Y" (สำหรับใช่) จากนั้นป้อนroot
รหัสผ่านที่ปลอดภัย เพียงตอบ "Y" ให้กับคำถามใช่ / ไม่ใช่อื่น ๆ ทั้งหมดเนื่องจากคำแนะนำเริ่มต้นเป็นตัวเลือกที่ปลอดภัยที่สุด
ขั้นตอนที่ 8: สร้างฐานข้อมูลสำหรับ Directus CMS
ล็อกอินเข้าสู่เชลล์ MariaDB ในฐานะroot
ผู้ใช้MariaDB โดยการรันคำสั่งต่อไปนี้:
sudo mysql -u root -p
ในการเข้าถึงพรอมต์คำสั่ง MariaDB เพียงป้อนroot
รหัสผ่านMariaDB เมื่อได้รั���พร้อมต์
รันเคียวรีต่อไปนี้เพื่อสร้างฐานข้อมูล MariaDB และผู้ใช้ฐานข้อมูลสำหรับ Directus CMS:
CREATE DATABASE directus_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'directus_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON directus_db.* TO 'directus_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
คุณสามารถแทนที่ชื่อฐานข้อมูลdirectus_db
และชื่อผู้ใช้directus_user
ด้วยสิ่งที่คุณชอบได้หากคุณต้องการ ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ "UltraSecurePassword" ด้วยรหัสผ่านที่ปลอดภัยจริง ๆ
ขั้นตอนที่ 9: ติดตั้งไฟล์ CMS Directus
เปลี่ยนไดเรกทอรีการทำงานปัจจุบันของคุณเป็นไดเรกทอรีเว็บเริ่มต้น:
cd /var/www/html/
หากคุณได้รับข้อความแสดงข้อผิดพลาดที่พูดถึงบางอย่าง'No such file or directory'
ให้ลองคำสั่งต่อไปนี้:
cd /var/www/ ; sudo mkdir html ; cd html
/var/www/html/
ไดเรกทอรีที่ทำงานปัจจุบันของคุณตอนนี้จะเป็น: คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยpwd
คำสั่ง (ไดเร็กทอรีการทำงานการพิมพ์):
pwd
ตอนนี้ใช้wget
เพื่อดาวน์โหลดแพ็คเกจการติดตั้ง Directus CMS:
sudo wget https://github.com/directus/directus/releases/download/6.4.4/directus-build-6.4.4-20171120114156.zip
โปรดทราบ: แน่นอนคุณควรตรวจสอบเวอร์ชันล่าสุดโดยไปที่หน้าดาวน์โหลด Directus CMS
แสดงรายการไดเรกทอรีปัจจุบันเพื่อตรวจสอบว่าคุณดาวน์โหลดไฟล์สำเร็จแล้ว:
ls -la
มาติดตั้งอย่างรวดเร็วกันunzip
เพื่อให้เราสามารถคลายซิปไฟล์:
sudo dnf -y install unzip
ตอนนี้คลายการบีบอัดไฟล์ zip:
sudo unzip directus-build-6.4.4-20171120114156.zip
เปลี่ยนความเป็นเจ้าของไฟล์เว็บเพื่อหลีกเลี่ยงปัญหาสิทธิ์:
sudo chown -R apache:apache * ./
รีสตาร์ท Apache อีกครั้ง:
sudo systemctl restart httpd
ตอนนี้เราพร้อมที่จะก้าวไปสู่ขั้นตอนสุดท้ายแล้ว
ขั้นตอนที่ 10: การติดตั้ง CMS Directus ให้เสร็จสมบูรณ์
ได้เวลาเยี่ยมชมที่อยู่ IP ของอินสแตนซ์เซิร์ฟเวอร์ของคุณในเบราว์เซอร์ของคุณหรือถ้าคุณได้กำหนดการตั้งค่า Vultr DNS ของคุณแล้ว (และให้เวลาพอที่จะเผยแพร่) คุณสามารถเยี่ยมชมโดเมนของคุณแทน
ในการเข้าถึงหน้าการติดตั้ง Directus CMS ให้ป้อนที่อยู่ IP อินสแตนซ์ Vultr ของคุณลงในแถบที่อยู่เบราว์เซอร์ของคุณตามด้วย/installation/index.php
:
http://YOUR_VULTR_IP_ADDRESS/installation/index.php
ตัวเลือกการติดตั้งส่วนใหญ่เป็นแบบอธิบายตนเอง แต่นี่เป็นคำแนะนำเล็ก ๆ น้อย ๆ ที่จะช่วยคุณได้:
-
เลือกภาษาของคุณและคลิกที่Next
ปุ่มเพื่อดำเนินการต่อ
-
ป้อนProject Name
รายละเอียดการเข้าสู่ระบบที่เหมาะสมและผู้ดูแลระบบที่แสดงด้านล่าง:
PROJECT NAME: <project name>
ADMIN EMAIL: <admin email>
ADMIN PASSWORD: <admin password>
คลิกNext
เพื่อดำเนินการต่อ
-
ตอนนี้ป้อนค่าฐานข้อมูลต่อไปนี้:
DATABASE TYPE: MySQL/Percona
HOST: localhost
PORT: 3306
USER: directus_user
PASSWORD: UltraSecurePassword
DATABASE NAME: directus_db
INITIAL SCHEMA: None Clean Database
คลิกNext
เพื่อดำเนินการต่อ
-
คุณจะพบหน้าตรวจสอบการติดตั้งล่วงหน้าซึ่งแสดงตัวเลือกที่คุณเลือกและปัญหาที่โปรแกรมติดตั้งอาจพบ หากคุณเห็นข้อผิดพลาดกับmod_rewrite
โมดูลที่แสดงว่าถอนการติดตั้งหรือปิดใช้งานเมื่อคุณติดตั้งและเปิดใช้งานจริงคุณสามารถเพิกเฉยต่อคำเตือนได้เพราะทุกอย่างจะทำงานได้ดี
เมื่อคุณแก้ไขปัญหาสำคัญแล้วและตรวจสอบว่าทุกอย่างทำงานได้ดีเพียงคลิกที่Install
เพื่อสิ้นสุดการติดตั้ง
เมื่อการติดตั้งเสร็จสมบูรณ์คุณจะถูกนำไปยังหน้าเข้าสู่ระบบของผู้ดูแลระบบ หากคุณไม่ได้เปลี่ยนเส้นทางคุณสามารถป้อนที่อยู่ล็อกอินของผู้ดูแลระบบได้ด้วยตนเอง:
http://YOUR_VULTR_IP_ADDRESS/login.php
เพื่อเหตุผลด้านความปลอดภัยตรวจสอบให้แน่ใจว่าคุณลบ/installation/
ไดเรกทอรีจากไดเรกทอรี webroot:
sudo rm -rf ./installation/
ตอนนี้คุณพร้อมที่จะเริ่มเพิ่มเนื้อหาของคุณและกำหนดค่า Headless CMS ของคุณให้ทำงานกับแอพต่างๆของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบเอกสาร Directus CMS ที่ยอดเยี่ยมสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า Directus CMS และเชื่อมโยงไปยังแอพและกรอบงานต่าง ๆ ของคุณ