ProcessWire CMS 3.0 เป็นระบบจัดการเนื้อหา (CMS) ที่ง่ายยืดหยุ่นและมีประสิทธิภาพฟรีและโอเพนซอร์ส ProcessWire CMS 3.0 มี jQuery-style API ที่ใช้งานง่ายสถาปัตยกรรมปลั๊กอินแบบแยกส่วนและระบบ templating ที่ยืดหยุ่นและทรงพลังซึ่งมอบประสบการณ์การใช้งานที่น่าพึงพอใจแก่ผู้ใช้นักออกแบบนักพัฒนาและผู้ใช้ปลายทาง
ในบทช่วยสอนนี้เราจะทำการติดตั้ง ProcessWire CMS 3.0 บน FreeBSD 11 FAMP VPS โดยใช้ Apache เว็บเซิร์ฟเวอร์, PHP 7.1 และฐานข้อมูล MariaDB
ข้อกำหนดเบื้องต้น
- อินสแตนซ์เซิร์ฟเวอร์ Vultr FreeBSD 11 ที่สะอาดพร้อมการเข้าถึง SSH
ขั้นตอนที่ 1: เพิ่มผู้ใช้ Sudo
เราจะเริ่มต้นด้วยการเพิ่มsudo
ผู้ใช้ใหม่
ก่อนเข้าสู่เซิร์ฟเวอร์ของคุณเป็นroot
:
ssh root@YOUR_VULTR_IP_ADDRESS
sudo
คำสั่งไม่ได้ติดตั้งโดยค่าเริ่มต้นใน Vultr FreeBSD เช่น 11 เซิร์ฟเวอร์ดังนั้นครั้งแรกที่เราจะติดตั้งsudo
:
pkg install sudo
เพิ่มผู้ใช้ใหม่ชื่อuser1
(หรือชื่อผู้ใช้ที่คุณต้องการ):
adduser user1
adduser
คำสั่งจะให้คุณจำนวนมากรายละเอียดของบัญชีผู้ใช้ดังนั้นเพียงแค่เลือกค่าเริ่มต้นสำหรับที่สุดของพวกเขาเมื่อมันทำให้ความรู้สึกที่จะทำเช่นนั้น เมื่อคุณถูกถามว่าInvite user1 into any other groups?
ควรทำอย่างไรคุณควรป้อนwheel
เพื่อเพิ่มuser1
ในwheel
กลุ่ม
ตอนนี้ตรวจสอบ/etc/sudoers
ไฟล์เพื่อให้แน่ใจว่าsudoers
กลุ่มเปิดใช้งาน:
visudo
ค้นหาหัวข้อเช่นนี้:
# %wheel ALL=(ALL) ALL
บรรทัดนี้บอกเราว่าผู้ใช้ที่เป็นสมาชิกของwheel
กลุ่มสามารถใช้sudo
คำสั่งเพื่อรับroot
สิทธิ์ มันจะถูกใส่ความคิดเห็นโดยค่าเริ่มต้นดังนั้นคุณจะต้องยกเลิกการคอมเม้นต์แล้วบันทึกและออกจากไฟล์
เราสามารถตรวจสอบความuser1
เป็นสมาชิกกลุ่มด้วยgroups
คำสั่ง:
groups user1
หากuser1
ไม่ใช่สมาชิกของwheel
กลุ่มคุณสามารถใช้คำสั่งนี้เพื่ออัพเดตความuser1
เป็นสมาชิกกลุ่ม:
pw group mod wheel -m user1
ตอนนี้ใช้su
คำสั่งเพื่อสลับไปยังuser1
บัญชีผู้ใช้ sudo ใหม่:
su - user1
พรอมต์คำสั่งจะอัปเดตเพื่อระบุว่าคุณได้ลงชื่อเข้าuser1
ใช้บัญชีแล้ว คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยwhoami
คำสั่ง:
whoami
ตอนนี้เริ่มsshd
บริการใหม่เพื่อให้คุณสามารถเข้าสู่ระบบssh
ด้วยบัญชีผู้ใช้ sudo ที่ไม่ใช่รูทใหม่ที่คุณเพิ่งสร้างขึ้น:
sudo /etc/rc.d/sshd restart
ออกจาก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: อัพเดทระบบ FreeBSD 11
ก่อนที่จะติดตั้งแพ็คเกจใด ๆ บนอินสแตนซ์ของเซิร์ฟเวอร์ FreeBSD เราจะทำการอัปเดตระบบก่อน
ตรวจสอบให้แน่ใจว่าคุณล็อกอินเข้าสู่เซิร์ฟเวอร์โดยใช้ผู้ใช้ที่ไม่ใช่ผู้ใช้ sudo และรันคำสั่งต่อไปนี้:
sudo freebsd-update fetch
sudo freebsd-update install
sudo pkg update
sudo pkg upgrade
ขั้นตอนที่ 3: ติดตั้ง Apache เว็บเซิร์ฟเวอร์
ติดตั้งเว็บเซิร์ฟเวอร์ Apache 2.4:
sudo pkg install apache24
และป้อนy
เมื่อได้รับแจ้ง ตอนนี้ใช้sysrc
คำสั่งเพื่อเปิดใช้งานบริการ Apache เพื่อดำเนินการโดยอัตโนมัติในเวลาบูต:
sudo sysrc apache24_enable=yes
sysrc
คำสั่งปรับปรุง/etc/rc.conf
แฟ้มการกำหนดค่าดังนั้นหากคุณต้องการตรวจสอบการอัปเดตการตั้งค่าด้วยตนเองคุณก็สามารถเปิด/etc/rc.conf
ไฟล์ด้วยโปรแกรมแก้ไขสถานีที่คุณชื่นชอบ:
vi /etc/rc.conf
ตอนนี้เริ่มบริการ Apache:
sudo service apache24 start
คุณสามารถตรวจสอบได้อย่างรวดเร็วว่า apache กำลังทำงานอยู่โดยไปที่ที่อยู่ IP หรือโดเมนของอินสแตนซ์ของเซิร์ฟเวอร์ในเบราว์เซอร์ของคุณ:
http://YOUR_VULTR_IP_ADDRESS/
คุณจะเห็นหน้าเริ่มต้น FreeBSD Apache ที่แสดงข้อความ:
It works!
ตรวจสอบไฟล์กำหนดค่าเริ่มต้นของ Apache เพื่อให้แน่ใจว่าDocumentRoot
คำสั่งชี้ไปยังไดเรกทอรีที่ถูกต้อง:
sudo vi /usr/local/etc/apache24/httpd.conf
DocumentRoot
ตัวเลือกการตั้งค่าจะมีลักษณะเช่นนี้
DocumentRoot "/usr/local/www/apache24/data"
ตอนนี้เราต้องเปิดใช้งานmod_rewrite
โมดูล Apache เราสามารถทำได้โดยค้นหาไฟล์กำหนดค่าเริ่มต้นของ Apache สำหรับคำmod_rewrite
นั้น
โดยค่าเริ่มต้นmod_rewrite
โมดูล Apache จะถูกใส่ความคิดเห็น (ซึ่งหมายความว่าจะปิดใช้งาน) บรรทัดการกำหนดค่าบนอินสแตนซ์ clean Vultr FreeBSD 11 จะมีลักษณะดังนี้:
#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
เพียงลบสัญลักษณ์แฮชเพื่อยกเลิกการใส่เครื่องหมายในบรรทัดและโหลดโมดูล แน่นอนนี้นำไปใช้กับโมดูล Apache อื่น ๆ ที่จำเป็นด้วยเช่นกัน:
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
ตอนนี้เราต้องแก้ไขDirectory
คำสั่ง Apache ในไฟล์การกำหนดค่าเดียวกันเพื่อให้mod_rewrite
ทำงานได้อย่างถูกต้องกับ ProcessWire CMS
ค้นหาส่วนของไฟล์การกำหนดค่าที่เริ่มต้นด้วย<Directory "/usr/local/www/apache24/data">
และการเปลี่ยนแปลงไปAllowOverride none
AllowOverride All
ผลลัพธ์สุดท้าย (ที่ลบความคิดเห็นทั้งหมด) จะมีลักษณะดังนี้:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ตอนนี้บันทึกและออกจากไฟล์กำหนดค่าของ Apache
เราจะรีสตาร์ท Apache เมื่อสิ้นสุดบทช่วยสอนนี้ แต่การรีสตาร์ท Apache อย่างสม่ำเสมอในระหว่างการติดตั้งและการกำหนดค่าเป็นนิสัยที่ดีดังนั้นให้ทำตอนนี้เลย:
sudo service apache24 restart
ขั้นตอนที่ 4: ติดตั้ง PHP 7.1
ตอนนี้เราสามารถติดตั้ง PHP 7.1 พร้อมกับโมดูล PHP ที่จำเป็นทั้งหมดที่ ProcessWire CMS ต้องการ:
sudo pkg install php71 mod_php71 php71-gd php71-mbstring php71-mysqli php71-xml php71-curl php71-ctype php71-tokenizer php71-simplexml php71-dom php71-session php71-iconv php71-hash php71-json php71-fileinfo php71-pdo php71-pdo_mysql php71-zlib php71-openssl php71-zip
FreeBSD 11 จะช่วยให้เราเลือกที่จะใช้การพัฒนาหรือการผลิตphp.ini
php.ini
เนื่องจากเรากำลังจะติดตั้ง Siverstripe บนเว็บเซิร์ฟเวอร์สาธารณะเราจะใช้เวอร์ชันที่ใช้งานจริง ก่อนสำรองphp.ini-production
:
sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.backup
จากนั้นนุ่มการเชื่อมโยงไปยังphp.ini-production
php.ini
sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini
เราจำเป็นต้องกำหนดค่า Apache ให้ใช้ PHP จริงดังนั้นเรามาสร้างไฟล์ใหม่ที่เรียกว่าphp.conf
ในIncludes
ไดเรกทอรีApache :
sudo vi /usr/local/etc/apache24/Includes/php.conf
ป้อนข้อความต่อไปนี้ลงในไฟล์ที่สร้างขึ้นใหม่:
<IfModule dir_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
บันทึกและออกจากไฟล์.
ตอนนี้ให้เริ่ม Apache ใหม่เพื่อให้สามารถโหลดการเปลี่ยนแปลงการกำหนดค่าใหม่ได้:
sudo service apache24 restart
ขั้นตอนที่ 5: ติดตั้งเซิร์ฟเวอร์ MariaDB (MySQL)
FreeBSD 11 เป็นค่าเริ่มต้นในการใช้เซิร์ฟเวอร์ฐานข้อมูล MariaDB ซึ่งเป็นโอเพ่นซอร์สที่ได้รับการพัฒนาอย่างเต็มรูปแบบการพัฒนาชุมชนการแทนที่แบบดรอปดาวน์สำหรับเซิร์ฟเวอร์ MySQL
ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB:
sudo pkg install mariadb102-server mariadb102-client
เริ่มและเปิดใช้งานเซิร์ฟเวอร์ MariaDB ให้ดำเนินการโดยอัตโนมัติในเวลาบูต:
sudo sysrc mysql_enable="yes"
sudo service mysql-server start
รักษาความปลอดภัยการติดตั้งเซิร์ฟเวอร์ MariaDB ของคุณ:
sudo mysql_secure_installation
เมื่อได้รับแจ้งให้สร้างผู้ใช้ MariaDB / MySQL root
ให้เลือก "Y" (สำหรับใช่) จากนั้นป้อนroot
รหัสผ่านที่ปลอดภัย เพียงตอบ "Y" ให้กับคำถามใช่ / ไม่ใช่อื่น ๆ ทั้งหมดเนื่องจากคำแนะนำเริ่มต้นเป็นตัวเลือกที่ปลอดภัยที่สุด
ขั้นตอนที่ 6: สร้างฐานข้อมูลสำหรับ ProcessWire CMS
ล็อกอินเข้าสู่เชลล์ MariaDB ในฐานะroot
ผู้ใช้MariaDB โดยการรันคำสั่งต่อไปนี้:
sudo mysql -u root -p
ในการเข้าถึงพรอมต์คำสั่ง MariaDB เพียงป้อนroot
รหัสผ่านMariaDB เมื่อได้รับพร้อมต์
รันเคียวรีต่อไปนี้เพื่อสร้างฐานข้อมูล MariaDB และผู้ใช้ฐานข้อมูลสำหรับ ProcessWire CMS:
CREATE DATABASE pw_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'pw_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON pw_db.* TO 'pw_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
คุณสามารถแทนที่ชื่อฐานข้อมูลpw_db
และชื่อผู้ใช้pw_user
ด้วยสิ่งที่คุณชอบได้หากคุณต้องการ ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ "UltraSecurePassword" ด้วยรหัสผ่านที่ปลอดภัยจริง ๆ
ขั้นตอนที่ 7: ติดตั้งไฟล์ ProcessWire CMS
เปลี่ยนไดเรกทอรีการทำงานปัจจุบันของคุณเป็นไดเรกทอรีเว็บเริ่มต้น:
cd /usr/local/www/apache24/data
/usr/local/www/apache24/data
ไดเรกทอรีที่ทำงานปัจจุบันของคุณในขณะนี้ควรจะเป็น: คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยpwd
คำสั่ง (ไดเร็กทอรีการทำงานการพิมพ์):
pwd
ตอนนี้ใช้wget
เพื่อดาวน์โหลดแพ็คเกจการติดตั้ง ProcessWire CMS:
sudo wget https://github.com/processwire/processwire/archive/master.zip
โปรดทราบ: แน่นอนคุณควรตรวจสอบเวอร์ชันล่าสุดโดยไปที่หน้าดาวน์โหลด ProcessWire CMS
แสดงรายการไดเรกทอรีปัจจุบันเพื่อตรวจสอบว่าคุณดาวน์โหลดไฟล์สำเร็จแล้ว:
ls -la
ลบindex.html
:
sudo rm index.html
ตอนนี้คลายการบีบอัดไฟล์ zip:
sudo unzip master.zip
ย้ายไฟล์การติดตั้งทั้งหมดไปยังไดเรกทอรีเว็บรูท:
sudo mv processwire-master/* /usr/local/www/apache24/data
เปลี่ยนความเป็นเจ้าของไฟล์เว็บเพื่อหลีกเลี่ยงปัญหาสิทธิ์:
sudo chown -R www:www * ./
รีสตาร์ท Apache อีกครั้ง:
sudo service apache24 restart
ขั้นตอนที่ 8: การติดตั้ง CMS ของ ProcessWire ที่สมบูรณ์
ถึงเวลาที่จะเยี่ยมชมที่อยู่ IP ของอินสแตนซ์เซิร์ฟเวอร์ของคุณในเบราว์เซอร์ของคุณหรือถ้าคุณได้กำหนดการตั้งค่า Vultr DNS ของคุณแล้ว (และให้เวลาพอที่จะเผยแพร่) คุณสามารถเยี่ยมชมโดเมนของคุณแทน
หากต้องการเข้าถึงหน้าการติดตั้ง ProcessWire CMS ให้ป้อนที่อยู่ IP ของ Vultr อินสแตนซ์ของคุณลงในแถบที่อยู่ของเบราว์เซอร์แล้วตามด้วยindex.php
:
http://YOUR_VULTR_IP_ADDRESS/install.php
โปรแกรมติดตั้ง ProcessWire CMS มีตัวเลือกมากมายดังนั้นต่อไปนี้เป็นตัวชี้สองสามตัวที่จะช่วยคุณได้:
-
บนหน้ายินดีต้อนรับการติดตั้ง ProcessWire CMS คลิกGet Started
ปุ่มเพื่อเริ่มกระบวนการติดตั้ง
-
ตอนนี้เลือกรายละเอียดการติดตั้งที่คุณต้องการ (หรือเว็บไซต์สาธิต) Continue
และคลิก
-
คุณจะเห็นCompatibility Check
หน้า หากคุณพบข้อผิดพลาดอาจเป็นไปได้ว่าคุณขาดโมดูล PHP บางตัวหรือมีปัญหาการอนุญาตมิฉะนั้นคุณสามารถคลิกContinue
ได้
-
ป้อนค่าต่อไปนี้ในMySQL Database Settings
หน้า:
DB Name: pw_db
DB User: pw_user
DB Pass: UltraSecurePassword
DB Host: localhost
DB Port: 3306
-
คุณสามารถปล่อยให้การFile Permission
ตั้งค่าเป็นค่าเริ่มต้นหรือคุณสามารถปรับได้ถ้าคุณเข้าใจความหมาย
-
คุณสามารถป้อนชื่อโฮสต์ในอนาคตของเว็บไซต์ของคุณในส่วนที่เหมาะสมหรือคุณสามารถแก้ไขsite/config.php
ไฟล์ในภายหลังหากคุณต้องการ
-
คลิกที่Continue
เพื่อกำหนดค่าฐานข้อมูลและติดตั้งไฟล์ ProcessWire CMS
-
Admin Theme
ถัดไปเลือกที่คุณต้องการ
-
คุณสามารถเปลี่ยนได้Admin URL
หากคุณต้องการหรือคุณสามารถปล่อยให้มันเป็นค่าเริ่มต้น
-
ใส่ของคุณAdmin Login Details
ตามที่แสดงด้านล่าง:
User (a-z 0-9): <admin username>
Password: <admin password>
Password (again): <same admin password>
Email Address: <admin email address>
-
เมื่อป้อนรายละเอียดที่เหมาะสมทั้งหมดแล้วคุณสามารถคลิกContinue
เพื่อสิ้นสุดการติดตั้ง ProcessWire
-
เมื่อการติดตั้งเสร็จสมบูรณ์เพียงคลิกที่Login to Admin
ปุ่มเพื่อเข้าสู่ระบบในส่วนผู้ดูแลระบบ
คุณอาจเห็นคำเตือนว่าบางสิ่งเช่น:
Warning: your server locale is undefined and may cause issues. Please add this to /site/config.php file (adjust en_US.UTF-8†as needed): setlocale(LC_ALL,'en_US.UTF-8');
คุณสามารถแก้ไขข้อผิดพลาดนี้ได้โดยแก้ไขsite/config.php
ไฟล์:
sudo vi site/config.php
ผนวกค่าที่เหมาะสมเข้ากับท้ายไฟล์:
setlocale(LC_ALL,'en_GB.utf8');
หากคุณไม่สามารถคิดได้ว่าจะใช้ค่าใดคุณสามารถค้นหารายการของค่าที่เหมาะสมสำหรับอินสแตนซ์ของเซิร์ฟเวอร์เฉพาะของคุณโดยเรียกใช้locale
คำสั่ง:
locale -a
อย่าลืมบันทึกและออกจากsite/config.php
ไฟล์เมื่อคุณแก้ไขเสร็จแล้ว
เพื่อความปลอดภัยตรวจสอบให้แน่ใจว่าคุณเปลี่ยนการอนุญาตในsite/config.php
ไฟล์:
sudo chmod 400 site/config.php
รีสตาร์ท Apache
sudo service apache24 restart
คุณพร้อมที่จะเริ่มเพิ่มเนื้อหาของคุณและกำหนดค่ารูปลักษณ์ของไซต์ของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบเอกสาร ProcessWire CMS ที่ยอดเยี่ยมสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างและกำหนดค่าไซต์ของคุณ