วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8


ด้วยการเพิ่มขึ้นของแพลตฟอร์มโซเชียลมีเดียเช่น Reddit, Facebook, Twitter และแพลตฟอร์มแชทออนไลน์เช่น discord เราได้เห็นชุมชนฟอรัมกระดานข่าวออนไลน์ลดน้อยลง โดยส่วนตัวแล้ว ตามที่ฉันเพิ่งพูดถึง พวกเขากำลังกลับมาอย่างช้าๆ ในชุมชนเฉพาะกลุ่มเฉพาะ จากการเพิ่มเติมที่ใหม่กว่า phpBB เป็นหนึ่งในซอฟต์แวร์กระดานข่าวโอเพ่นซอร์สที่มีการขยายมากที่สุดในตลาด

phpBB ไม่ใช่ทางเลือกเดียว อื่นๆ เช่น VBulletin, Nodebb, Xenforo และอื่นๆ แต่ส่วนใหญ่จะได้รับค่าตอบแทนจากการวิจารณ์ที่หลากหลาย VBulletin เคยเป็นโรงไฟฟ้า แต่ตอนนี้กลับกลายเป็นเงาของตัวเองในอดีต Xenforo เป็นหนึ่งในซอฟต์แวร์ที่ได้รับค่าตอบแทนดีที่สุด อย่างไรก็ตาม นั่นเป็นเพียงความคิดเห็นส่วนตัวของฉัน แต่ฉันจะเลือก phpBB ก่อนเสมอ เพราะเป็นโอเพ่นซอร์สฟรี และมีนักพัฒนาโอเพ่นซอร์สที่ยอดเยี่ยมทั้ง devs ใหม่และที่เปิดตัวมาตั้งแต่ต้น

ในบทช่วยสอนต่อไปนี้ คุณจะได้เรียนรู้วิธีติดตั้ง LEMP ควบคู่ไปกับการปรับแพ็คเกจล่าสุดและวิธีตั้งค่า phpBB สำหรับการใช้งาน Almalinux 8 ครั้งแรก

เบื้องต้น

  • ระบบปฏิบัติการที่แนะนำ: AlmaLinux 8.
  • บัญชีผู้ใช้: บัญชีผู้ใช้งานกับ สิทธิพิเศษ sudo or การเข้าถึงรูท (คำสั่ง su).

กำลังอัปเดตระบบปฏิบัติการ

อัปเดตของคุณ โซลลินุกซ์ ระบบปฏิบัติการเพื่อให้แน่ใจว่าแพ็คเกจที่มีอยู่ทั้งหมดเป็นปัจจุบัน:

sudo dnf upgrade --refresh -y

บทช่วยสอนจะใช้ the คำสั่ง sudo และ  สมมติว่าคุณมีสถานะ sudo.

วิธีตรวจสอบสถานะ sudo ในบัญชีของคุณ:

sudo whoami

ตัวอย่างผลลัพธ์ที่แสดงสถานะ sudo:

[joshua@localhost ~]$ sudo whoami
root

หากต้องการตั้งค่าบัญชี sudo ที่มีอยู่หรือใหม่ โปรดไปที่บทช่วยสอนของเราที่ วิธีเพิ่มผู้ใช้ใน Sudoers บน AlmaLinux.

ในการใช้งาน บัญชีรูทให้ใช้คำสั่งต่อไปนี้ด้วยรหัสผ่าน root เพื่อเข้าสู่ระบบ

su

ติดตั้ง Nginx – (LEMP Stack)

งานแรกคือการติดตั้ง Nginx โดยเป็นส่วนหนึ่งของการติดตั้ง LEMP

อันดับแรก จาก AlmaLinux 8.5 เป็นต้นไปให้เปิดใช้งาน Nginx เวอร์ชัน 1.20 แทนเวอร์ชัน 1.14

sudo dnf module enable nginx:1.20 -y

ถัดไป ติดตั้ง Nginx โดยรันคำสั่งต่อไปนี้

sudo dnf install nginx

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ยืนยันการติดตั้งโดยตรวจสอบเวอร์ชันบิลด์:

nginx -v

ตัวอย่างผลลัพธ์:

nginx version: nginx/1.20.0

โปรดทราบว่า Nginx ได้รับการติดตั้งโดยใช้ AlmaLinux 8.5; ผู้ใช้ 8.4 อาจสังเกตเห็นเวอร์ชันที่เก่ากว่า

โดยค่าเริ่มต้น เมื่อติดตั้ง Nginx บน Rocky Linux จะไม่มีการเปิดใช้งาน ในการเปิดใช้งานในการบู๊ตและเริ่มต้น ให้ใช้สิ่งต่อไปนี้:

sudo systemctl enable nginx --now

ตัวอย่างการเปิดใช้งานสำเร็จ (เชื่อมโยง):

Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

ตอนนี้ ตรวจสอบเพื่อดูสถานะของบริการ Nginx ของคุณด้วยคำสั่งเทอร์มินัลต่อไปนี้:

systemctl status nginx

ตัวอย่างผลลัพธ์ที่บอกว่าทุกอย่างโอเค:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ตอนนี้คุณสามารถยืนยันได้ว่าเว็บเซิร์ฟเวอร์ Nginx ของคุณใช้งานได้โดยป้อน HTTP://เซิร์ฟเวอร์-ip or HTTP://ชื่อโดเมน ในอินเทอร์เน็ตเบราว์เซอร์ของคุณ และคุณควรได้รับสิ่งต่อไปนี้:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

หากคุณไม่สามารถเข้าถึงหน้านี้ คุณอาจต้องกำหนดการตั้งค่าไฟร์วอลล์ที่กล่าวถึงในส่วนถัดไป

กำหนดค่ากฎไฟร์วอลล์

จะไม่เพิ่มกฎไฟร์วอลล์ให้กับพอร์ตมาตรฐาน 80 หรือ 443 พอร์ตโดยอัตโนมัติเมื่อติดตั้ง Nginx ก่อนที่คุณจะดำเนินการต่อ คุณควรตั้งกฎต่อไปนี้ ซึ่งจะขึ้นอยู่กับพอร์ตที่คุณจะใช้ แต่ตัวเลือกทั้งหมดจะแสดงอยู่ในรายการ

เปิดพอร์ต 80 หรือ HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

เปิดพอร์ต 443 หรือ HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

โหลดไฟร์วอลล์ใหม่เพื่อให้การเปลี่ยนแปลงมีผล

sudo firewall-cmd --reload

ติดตั้ง MariaDB (LEMP STACK)

ถึงเวลาติดตั้ง MariaDB แล้ว อันดับแรก ขอแนะนำให้เปลี่ยนเป็น MariaDB 10.5 ซึ่งมีอยู่ในสตรีมแอป Almalinux 8 ด้วย ค่าเริ่มต้นคือ 10.3

ในเทอร์มินัลของคุณ ให้รันคำสั่งต่อไปนี้เฉพาะในกรณีที่คุณต้องการเปลี่ยน

sudo dnf module enable mariadb:10.5 -y

ถัดไป ติดตั้ง MariaDB ด้วยคำสั่งต่อไปนี้

sudo dnf install mariadb-server mariadb

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

พิมพ์ "Y" จากนั้นกด "ใส่รหัส" เพื่อดำเนินการติดตั้งต่อไป

เพื่อยืนยันการติดตั้ง MariaDB และตรวจสอบว่ามีการติดตั้งบิลด์ใดบ้าง ให้พิมพ์คำสั่งต่อไปนี้:

mysql --version

ตัวอย่างผลลัพธ์:

mysql  Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using  EditLine wrapper

ตรวจสอบสถานะเซิร์ฟเวอร์ MariaDB

โดยค่าเริ่มต้น คุณจะพบว่าสถานะ MariaDB จะปิด ในการเริ่ม MariaDB ให้ใช้คำสั่งต่อไปนี้:

sudo systemctl enable mariadb --now

ตอนนี้คุณได้ติดตั้งและเปิดใช้งาน MariaDB แล้ว ให้ตรวจสอบสถานะด้วยคำสั่ง systemctl ต่อไปนี้:

systemctl status mariadb

ตรวจสอบสถานะอีกครั้ง และคุณควรได้รับสิ่งต่อไปนี้:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

วิธีหยุด MariaDB:

sudo systemctl stop mariadb

วิธีเปิดใช้งาน MariaDB เมื่อเริ่มต้นระบบ:

sudo systemctl enable mariadb

วิธีปิดการใช้งาน MariaDB เมื่อเริ่มต้นระบบ:

sudo systemctl disable mariadb

ในการเริ่มบริการ MariaDB ใหม่:

sudo systemctl restart mariadb

รักษาความปลอดภัย MariaDB ด้วยสคริปต์ความปลอดภัย

เมื่อทำการติดตั้ง MariaDB การตั้งค่าเริ่มต้นที่สดใหม่นั้นถือว่าอ่อนแอในมาตรฐานส่วนใหญ่ และทำให้เกิดความกังวลว่าอาจยอมให้มีการบุกรุกหรือหาประโยชน์จากแฮกเกอร์ วิธีแก้ไขคือการเรียกใช้สคริปต์ความปลอดภัยการติดตั้งที่มาพร้อมกับไฟล์ MariaDB การติดตั้ง

ขั้นแรก ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ (mysql_secure_installation):

sudo mysql_secure_installation

ถัดไป คุณจะได้รับข้อความแจ้งให้คุณป้อน (รหัสผ่านรูทของ MariaDB) สำหรับตอนนี้ กด (เข้าสู่) คีย์เนื่องจากรหัสผ่านรูทยังไม่ได้ตั้งค่าดังนี้:

จากนั้นพิมพ์ (Y) และกด Enter เพื่อตั้งค่า (Root) รหัสผ่านดังต่อไปนี้:

คำถามชุดต่อไปที่คุณสามารถตีได้อย่างปลอดภัย (เข้าสู่)ซึ่งจะตอบโจทย์ (Y) สำหรับคำถามที่ตามมาทั้งหมดที่ขอให้คุณ (ลบผู้ใช้ที่ไม่ระบุชื่อ ปิดใช้งานการเข้าสู่ระบบรูทระยะไกล และลบฐานข้อมูลทดสอบ). หมายเหตุ (Y) เป็นตัวพิมพ์ใหญ่ หมายความว่าเป็นคำตอบเริ่มต้นเมื่อคุณกด (เข้าสู่) กุญแจ

ตัวอย่างด้านล่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ภาพรวมของสิ่งที่ควรทำข้างต้น:

  • การตั้งรหัสผ่านสำหรับ ราก บัญชี
  • การลบบัญชีรูทที่สามารถเข้าถึงได้จากภายนอกโฮสต์ในเครื่อง
  • การลบบัญชีผู้ใช้ที่ไม่ระบุชื่อ
  • การลบฐานข้อมูลทดสอบ ซึ่งโดยค่าเริ่มต้นสามารถเข้าถึงได้โดยผู้ใช้ที่ไม่ระบุชื่อ

ขั้นตอนนี้จำเป็นสำหรับการรักษาความปลอดภัยฐานข้อมูล MariaDB และไม่ควรเปลี่ยนแปลงหรือข้ามไป เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่

ติดตั้ง PHP & PHP-FPM (LEMP STACK)

ตามชื่อที่แนะนำ phpBB ทำงานด้วย PHP เวอร์ชันเริ่มต้นที่อยู่บนสตรีมแอป AlmaLinux คือเวอร์ชัน 7.2 ตามหลักการแล้ว คุณควรเปลี่ยนเป็น PHP 7.4 เนื่องจากซอฟต์แวร์กระดานข่าวทำงานได้ดีมากกับเวอร์ชันนี้ และข้อดีด้านประสิทธิภาพก็เหนือกว่า 7.2 อย่างก้าวกระโดด

ในการเปิดใช้งานโมดูล PHP 7.4 dnf ให้ใช้คำสั่งต่อไปนี้

sudo dnf module enable php:7.4 -y

หมายเหตุ คุณ สามารถเปิดใช้งาน PHP-7.3 หรืออื่น ๆ ได้ โดยปฏิบัติตาม คำสั่งรีเซ็ตโมดูล dnf และการใช้ โมดูล dnf เปิดใช้งานคำสั่ง php:7.3 แทน เลือก เวอร์ชันที่คุณต้องการสำหรับแอปพลิเคชัน และนี่เป็นเพียงตัวอย่างของการมี PHP เวอร์ชันล่าสุดของตัวเลือก PHP ที่คุณเลือก

ติดตั้ง PHP & PHP-FPM

ถัดไป ติดตั้ง PHP บนเซิร์ฟเวอร์ของคุณ ขึ้นอยู่กับเวอร์ชันของ PHP ผลลัพธ์จะแตกต่างกัน อย่างไรก็ตาม คำสั่งยังคงเหมือนเดิม

sudo dnf install php php-fpm php-mysqli php-cli php-common php-gd php-intl php-opcache php-xml php-soap php-mbstring

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

พิมพ์ "Y" จากนั้นกด "ใส่รหัส" เพื่อดำเนินการติดตั้งต่อไป หมายเหตุ คุณอาจได้รับแจ้งให้พิมพ์ “ครับ”

ตรวจสอบการติดตั้ง และตรวจสอบเวอร์ชันและบิลด์:

php -v

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ตามค่าเริ่มต้น PHP-FPM จะปิดอยู่และไม่ได้เปิดใช้งานเมื่อบูต หากต้องการเปิดใช้งานในการบู๊ตและเริ่มต้นบริการ ให้ใช้คำสั่งต่อไปนี้ คำสั่ง systemctl:

sudo systemctl enable php-fpm --now

เพื่อยืนยันว่า PHP-FPM กำลังทำงานอยู่ ให้ใช้คำสั่งต่อไปนี้ คำสั่ง systemctl:

systemctl status php-fpm

ตัวอย่างผลลัพธ์:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

จำไว้ว่าคุณไม่จำเป็นต้องใช้ PHP 8.0 ทำวิจัยบางอย่างหากไม่แน่ใจ หรือดีกว่าถามในฟอรัมชุมชน phpBB ซึ่งใช้ได้ผลดีที่สุดในปัจจุบัน อย่างไรก็ตาม กระบวนการจะเหมือนกันกับคำสั่งที่ใช้ค่าเริ่มต้นหรือเวอร์ชันทางเลือกอื่นๆ ในรายการโมดูล dnf

เมื่อตั้งค่า LEMP แล้ว ให้ดำเนินการติดตั้ง phpBB จริง

ส่วนที่ 1. การติดตั้งแบ็คเอนด์ phpBB

เมื่อคุณติดตั้ง LEMP stack แล้ว คุณสามารถดำเนินการติดตั้งฟอรัม phpBB ได้ ในช่วงเวลาของบทช่วยสอนนี้ phpBB 3.3.4 เป็นเวอร์ชันล่าสุด อย่างไรก็ตาม เช่นเดียวกับหลายๆ อย่าง การเปลี่ยนแปลงนี้จะเปลี่ยนไปเมื่อมีการเผยแพร่ทุกๆ หกเดือนโดยประมาณ ตรวจสอบ หน้าดาวน์โหลด เพื่อตรวจสอบว่าลิงก์เวอร์ชันยังใช้งานได้

ดาวน์โหลด & ตั้งค่าไดเรกทอรี

ดาวน์โหลด phpBB ครั้งแรก:

cd /tmp && wget https://download.phpbb.com/pub/release/3.3/3.3.5/phpBB-3.3.5.zip
unzip phpBB-3.3.5.zip
sudo mv phpBB3 /var/www/html/phpbb

ตอนนี้เราต้องแก้ไขการอนุญาตไดเรกทอรีสำหรับ NGINX:

sudo chown -R nginx /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb

การกำหนดค่า Selinux

โดยค่าเริ่มต้น Selinux จะปฏิเสธไม่ให้คุณติดตั้งและเรียกใช้ phpBB บนเซิร์ฟเวอร์ AlmaLinux ได้สำเร็จ ในการแก้ไขปัญหานี้ คุณต้องกำหนดค่า SELinux

ไม่แนะนำให้ปิดการใช้งาน Selinux คุณจะคัดลอกรหัสต่อไปนี้ด้านล่างเพื่ออนุญาตแทน

sudo chcon -R -t httpd_sys_content_rw_t /var/www/html/phpbb/

แค่นั้นแหละ และคุณไม่จำเป็นต้องทำอีกต่อไป หากคุณติดตั้ง phpBB ใหม่ในอนาคตในตำแหน่งใหม่ ให้รันคำสั่งอีกครั้ง

การกำหนดค่า MariaDB

ตอนนี้ คุณดำเนินการสร้างฐานข้อมูลสำหรับการติดตั้ง phpBB และกระดานข่าวในอนาคต

ขั้นแรก ให้เรียกใช้อินสแตนซ์เทอร์มินัล MariaDB เป็นรูท:

sudo mysql -u root -p

สร้างฐานข้อมูลสำหรับฟอรัมของคุณ:

ตัวอย่าง:

CREATE DATABASE phpbbdb;

สร้างผู้ใช้ฐานข้อมูลชื่อ phpbbuser ด้วยรหัสผ่านใหม่:

ตัวอย่าง:

CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';

จากนั้นให้สิทธิ์ผู้ใช้ในการเข้าถึงฐานข้อมูลโดยสมบูรณ์โดยทำดังนี้:

ตัวอย่าง:

GRANT ALL PRIVILEGES ON phpbbdb.* TO phpbbuser@localhost IDENTIFIED BY 'new_password_here';

ล้างสิทธิ์เพื่อเปิดใช้งานการเปลี่ยนแปลง:

FLUSH PRIVILEGES;

ตอนนี้ออก:

EXIT;

ฐานข้อมูลของคุณสำหรับ phpBB พร้อมแล้ว และคุณจะป้อนรายละเอียดเมื่อคุณได้รับส่วนการติดตั้งเว็บ UI ของบทช่วยสอน

การกำหนดค่า PHP

หากต้องการติดตั้ง phpBB ให้สำเร็จและใช้งานได้ดีในอนาคต คุณควรเพิ่มตัวเลือกสองสามตัวในไฟล์กำหนดค่า php.ini

ขั้นแรก เปิดไฟล์ php.ini:

sudo nano /etc/php.ini

ถัดไป คุณจะพบการตั้งค่าที่แนะนำเพื่อใช้งานกับ phpBB คุณจะต้องค้นหาการตั้งค่าและบรรทัดและเปลี่ยนเป็นดังนี้:

max_execution_time = 180 (located on line 338)
max_input_time = 90 (located on line 398)
memory_limit = 256M (located on line 409)
upload_max_filesize = 64M (located on line 846)

ไม่บังคับ การตั้งค่าความปลอดภัยที่เพิ่มขึ้นบางอย่างสามารถข้ามได้:

cgi.fix_pathinfo=0 
session.use_strict_mode = 1
session.use_cookies = 1
session.cookie_secure = 1
session.use_only_cookies = 1
session.name = LCCookies (Change the name, example: POPme)
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain = example.com (example only)
session.cookie_httponly = 1
session.cookie_samesite = Strict

เสร็จแล้ว CTRL + O ที่จะบันทึกแล้ว CTRL + X เพื่อออกจากไฟล์.

ไม่เหมือนกับการติดตั้ง LEMP บน Debian/Ubuntu ที่ใช้ (www-ข้อมูล) ผู้ใช้ นี่ไม่ใช่กรณีของการติดตั้ง Rhel/Rocky Linux ตามค่าเริ่มต้นบน Rocky Linux บริการ PHP-FPM ได้รับการออกแบบให้ทำงาน (อาปาเช่) ผู้ใช้ซึ่งไม่ถูกต้องเนื่องจากเราใช้ Nginx และจำเป็นต้องแก้ไข

ประการแรก เปิดการติดตาม (www.conf) ไฟล์การกำหนดค่า:

sudo nano /etc/php-fpm.d/www.conf

ถัดไปแทนที่ (อาปาเช่) ผู้ใช้และกลุ่มด้วย (หงิงซ์) ผู้ใช้และกลุ่ม:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

หากต้องการบันทึก ให้กด (CTRL+O) แล้วออก (CTRL+X).

คุณจะต้องรีสตาร์ท PHP เพื่อให้การเปลี่ยนแปลงใช้งานได้:

sudo systemctl restart php-fpm

การกำหนดค่า Nginx

ในบล็อกเซิร์ฟเวอร์ Nginx ของคุณ คุณต้องประกาศ PHP อัปสตรีม จากนั้นจึงระบุตำแหน่ง PHP

วิธีที่ดีที่สุดในการสร้างบล็อกเซิร์ฟเวอร์ใหม่ โดยใช้โดเมนย่อย เช่น ฟอรัมหรือชุมชน

ตัวอย่างด้านล่างนี้ ปรับเปลี่ยนให้เหมาะกับความต้องการของคุณ:

ขั้นแรก สร้างบล็อกเซิร์ฟเวอร์:

sudo nano /etc/nginx/conf.d/phpbb.conf

ตอนนี้ให้คัดลอกและวางสิ่งต่อไปนี้ลงในบล็อกเซิร์ฟเวอร์ แก้ไขชื่อโดเมน SSL เส้นทางรูท และอื่นๆ เพื่อให้เหมาะกับความต้องการของคุณ ไม่ควรแตะต้องสถานที่และ PHP เว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่

ตัวอย่างเท่านั้น:

server {
   listen 80;
   listen [::]:80;

   server_name www.example.com example.com;
   root /var/www/html/phpbb;
   index index.php index.html index.htm;

    access_log /var/log/nginx/forums-access.log;
    error_log /var/log/nginx/forums-error.log;

location / {
	try_files $uri $uri/ @rewriteapp;

	# Pass the php scripts to FastCGI server specified in upstream declaration.
	location ~ \.php(/|$) {
		include fastcgi.conf;
                fastcgi_pass unix:/run/php-fpm/www.sock;
		fastcgi_split_path_info ^(.+\.php)(/.*)$;
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
		fastcgi_param DOCUMENT_ROOT $realpath_root;
		try_files $uri $uri/ /app.php$is_args$args;
		fastcgi_intercept_errors on;	
	}

	# Deny access to internal phpbb files.
	location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
		deny all;
		# deny was ignored before 0.8.40 for connections over IPv6.
		# Use internal directive to prohibit access on older versions.
		internal;
	}
}

location @rewriteapp {
	rewrite ^(.*)$ /app.php/$1 last;
}

# Correctly pass scripts for installer
location /install/ {
	try_files $uri $uri/ @rewrite_installapp =404;

	# Pass the php scripts to fastcgi server specified in upstream declaration.
	location ~ \.php(/|$) {
		include fastcgi.conf;
		fastcgi_split_path_info ^(.+\.php)(/.*)$;
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
		fastcgi_param DOCUMENT_ROOT $realpath_root;
		try_files $uri $uri/ /install/app.php$is_args$args =404;
                fastcgi_pass unix:/run/php-fpm/www.sock;
		fastcgi_intercept_errors on;	
	}
}

location @rewrite_installapp {
	rewrite ^(.*)$ /install/app.php/$1 last;
}

# Deny access to version control system directories.
location ~ /\.svn|/\.git {
	deny all;
	internal;
}

 gzip on; 
 gzip_comp_level 6;
 gzip_min_length 1000;
 gzip_proxied any;
 gzip_disable "msie6";
 gzip_types
     application/atom+xml
     application/geo+json
     application/javascript
     application/x-javascript
     application/json
     application/ld+json
     application/manifest+json
     application/rdf+xml
     application/rss+xml
     application/xhtml+xml
     application/xml
     font/eot
     font/otf
     font/ttf
     image/svg+xml
     text/css
     text/javascript
     text/plain
     text/xml;

  # assets, media
  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
      expires    90d;
      access_log off;
  }
  
  # svg, fonts
  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
      add_header Access-Control-Allow-Origin "*";
      expires    90d;
      access_log off;
  }
}

หมายเหตุ บรรทัดกับ “fastcgi_pass ยูนิกซ์:/run/php-fpm/www.sock;” เป็นสิ่งจำเป็น หากไม่มี FPM จะไม่สามารถสื่อสารได้

เมื่อเปิดใช้งานแล้ว คุณสามารถทำการทดสอบการทำงานแบบแห้งอย่างรวดเร็วของบริการ Nginx เพื่อให้แน่ใจว่าทุกอย่างทำงานอย่างถูกต้อง:

sudo nginx -t 

ตัวอย่างผลลัพธ์หากทั้งหมดทำงานอย่างถูกต้อง:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

ตอนนี้เริ่มบริการ Nginx ใหม่เพื่อให้ phpBB สามารถเข้าถึงได้ผ่านเว็บ UI:

sudo systemctl restart nginx

ไม่บังคับ – รักษาความปลอดภัย Nginx ด้วย Let's Encrypt SSL Free Certificate

ตามหลักการแล้ว คุณต้องการเรียกใช้ Nginx บน HTTPS โดยใช้ใบรับรอง SSL. วิธีที่ดีที่สุดคือใช้ มาเข้ารหัสกันเถอะ ผู้ออกใบรับรองอิสระ อัตโนมัติ และเปิดซึ่งดำเนินการโดย กลุ่มวิจัยความปลอดภัยทางอินเทอร์เน็ตที่ไม่แสวงหากำไร (ISRG).

ก่อนอื่นให้ติดตั้ง อบอุ่น ที่เก็บข้อมูลและ mod_ssl แพ็คเกจสำหรับแพ็คเกจและความปลอดภัยที่ได้รับการปรับปรุงให้ดีขึ้น

sudo dnf install epel-release mod_ssl -y

ถัดไปติดตั้ง แพ็คเกจใบรับรอง ดังต่อไปนี้:

sudo dnf install python3-certbot-nginx -y

เมื่อติดตั้งแล้ว ให้รันคำสั่งต่อไปนี้เพื่อเริ่มสร้างใบรับรองของคุณ:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com

นี่คือการตั้งค่าที่เหมาะสมที่สุดซึ่งรวมถึงการบังคับเปลี่ยนเส้นทาง HTTPS 301 ส่วนหัว Strict-Transport-Security และ OCSP Stapling เพียงตรวจสอบให้แน่ใจว่าได้ปรับเปลี่ยนอีเมลและชื่อโดเมนตามความต้องการของคุณ

ตอนนี้ URL ของคุณจะเป็น https://forums.example.com แทน HTTP://forums.example.com.

หมายเหตุ หากคุณใช้ตัวเก่า HTTP URLโดยอัตโนมัติจะเปลี่ยนเส้นทางไปที่ HTTPS.

หรือคุณสามารถตั้งค่างาน cron เพื่อต่ออายุใบรับรองโดยอัตโนมัติ Certbot เสนอสคริปต์ที่ทำงานโดยอัตโนมัติ และคุณสามารถทดสอบก่อนเพื่อให้แน่ใจว่าทุกอย่างทำงานโดยดำเนินการแบบแห้ง

sudo certbot renew --dry-run

หากทุกอย่างใช้งานได้ ให้เปิดหน้าต่าง crontab ของคุณโดยใช้คำสั่งเทอร์มินัลต่อไปนี้

sudo crontab -e

ถัดไป ระบุเวลาที่ควรต่ออายุอัตโนมัติ ควรตรวจสอบอย่างน้อยทุกวัน และหากจำเป็นต้องต่ออายุใบรับรอง สคริปต์จะไม่อัปเดตใบรับรอง หากคุณต้องการความช่วยเหลือในการหาเวลาที่เหมาะสมในการตั้งค่า ให้ใช้ปุ่ม crontab.guru เครื่องมือฟรี

00 00 */1 * * /usr/sbin/certbot-auto renew

ลด (CTRL+O) แล้วออก (CTRL+X), และ cronjob จะเปิดใช้งานโดยอัตโนมัติ

ส่วนที่ 2 การติดตั้ง phpBB Web UI

หากทุกอย่างทำงานอย่างถูกต้อง ตอนนี้เราจะย้ายไปยังที่อยู่ที่ได้รับการเสนอชื่อของฟอรัม phpBB ที่เพิ่งติดตั้งใหม่ ตัวอย่างของเราคือ https://forumslinuxcapable.com สำหรับตัวอย่างบทช่วยสอน และหากสำเร็จ คุณจะเข้าสู่หน้าการติดตั้งหลักสำหรับ phpBB

เมื่อคุณมาถึงหน้าให้คลิกที่ ปุ่มติดตั้ง ที่ด้านซ้ายบนเพื่อเริ่มการติดตั้งแบบกราฟิก

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ถัดไป คุณจะถูกนำไปที่หน้าจอถัดไปเพื่อให้คำแนะนำเกี่ยวกับข้อกำหนดขั้นต่ำและข้อมูลทางเทคนิคอื่นๆ หลังจากอ่านและตรวจสอบซ้ำแล้ว ให้คลิกที่ ปุ่มติดตั้ง ที่ด้านล่างของหน้า

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ในหน้าจอถัดไป คุณต้อง สร้างบัญชีผู้ดูแลระบบสำหรับ phpBB. ตรวจสอบให้แน่ใจว่าได้กรอกอย่างถูกต้องและด้วยรหัสผ่านที่รัดกุม เนื่องจากเป็นสิ่งสำคัญสำหรับการกู้คืน และอื่นๆ

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ตอนนี้คุณได้เข้าสู่ .ของคุณแล้ว ผู้ดูแลระบบ รายละเอียดสำเร็จ หน้าจอรายละเอียดฐานข้อมูลจะปรากฏขึ้นให้กรอก ขั้นแรก ให้คงค่าดีฟอลต์ไว้ MySQL พร้อมส่วนขยาย MySQLi และป้อน localhost เว้นแต่ฐานข้อมูลของคุณจะอยู่บนเซิร์ฟเวอร์ที่แยกจากกัน ให้วาง IP ของเซิร์ฟเวอร์พร้อมกับพอร์ตแทนหากถูกเปลี่ยนจากค่าเริ่มต้น

ถัดไปในตัวอย่างบทช่วยสอน ฐานข้อมูลตัวอย่างมีชื่อว่า phpbb, กับ phpbbuser เป็นชื่อผู้ใช้ที่มีสิทธิ์เข้าถึงนอกเหนือจากรูทเพื่อเข้าถึง phpBB ฐานข้อมูล สุดท้าย คำนำหน้าเป็นค่าเริ่มต้น phpbb_, ซึ่งคุณสามารถเหมือนเดิมได้ แต่ถ้าคุณจะติดตั้งหลายฟอรัม ขอแนะนำให้เปลี่ยนสิ่งนี้เพื่อให้คำนำหน้าสะอาดและแยกจากกัน

ใส่ข้อมูลเหล่านี้แล้วคลิก ส่ง เพื่อดำเนินการต่อ.

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ตั้งค่าคอนฟิกเซิร์ฟเวอร์ของคุณ หากคุณไม่ได้ใช้ SSL การตั้งค่าเริ่มต้นควรเพียงพอ หากคุณกำลังใช้งาน SSL ให้เปลี่ยนเพื่อให้เหมาะกับความต้องการของคุณ

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

หน้าถัดไปคุณสามารถตั้งค่า SMTP หากคุณมีการตั้งค่าที่จะป้อน ถ้าไม่ใช่ ให้ปล่อยค่าเริ่มต้นไว้ แล้วกดถัดไป

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ตั้งค่าของคุณ ชื่อบอร์ด / ตำแหน่งและภาษา. หากคุณไม่แน่ใจว่าจะตั้งชื่อฟอรัมของคุณว่าอะไร ให้ปล่อยค่าเริ่มต้นไว้และกดส่ง คุณสามารถเปลี่ยนการตั้งค่าเหล่านี้ได้ในภายหลัง

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8
วิธีการติดตั้ง phpBB ด้วย LEMP (Nginx, MariaDB และ PHP) บน Rocky Linux 8 27

หลังจากกดส่ง คุณจะเห็นหน้าจอสุดท้ายคล้ายกับด้านล่างโดยติดตั้งฟอรัมและลิงก์นำคุณไปยังแผง ACP หากคุณมีข้อผิดพลาด ให้ย้อนกลับไปเป็นขั้นตอน อาจพลาดการอนุญาต

โพสต์การติดตั้ง phpBB

ลบไดเร็กทอรีการติดตั้ง

ขอแสดงความยินดีที่มาถึงส่วนนี้ หลังจากเข้าสู่ระบบแผง ACP ของคุณเป็นครั้งแรก คุณจะเห็นการแจ้งเตือนสีแดงขนาดใหญ่ที่บอกให้คุณลบหรือเปลี่ยนชื่อไดเร็กทอรีการติดตั้งของคุณ ขอแนะนำให้ลบไม่ย้ายไดเร็กทอรี ในการดำเนินการนี้ ให้ใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:

sudo rm -R /var/www/html/phpbb/install

แก้ไขการอนุญาต CHMOD (ขั้นตอนที่สำคัญ)

ขณะที่คุณกำลังใช้งานคำสั่งเทอร์มินัล จำเป็นต้องตั้งค่าที่ถูกต้อง สิทธิ์ chmod หลังการติดตั้ง.  คู่มือ phpBB อย่างเป็นทางการเกี่ยวกับเรื่องนี้สามารถพบได้ที่นี่. การข้ามขั้นตอนนี้อาจทำให้เกิดความเสี่ยงด้านความปลอดภัยที่สำคัญได้ ดังนั้นโปรดปฏิบัติตามอย่างเคร่งครัดหรือตามแนวทางของคุณหากคุณมีเทคนิคที่ดีกว่าแต่ทำไม่ได้ ปล่อยให้สิทธิ์เริ่มต้น!!

sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;

หลังจากนั้น เราต้องให้สิทธิ์พิเศษแก่โฟลเดอร์/ไฟล์บางไฟล์เท่านั้น ดังนี้:

sudo chmod 777 -R /var/www/html/phpbb/files
sudo chmod 777 -R /var/www/html/phpbb/cache
sudo chmod 777 -R /var/www/html/phpbb/store
sudo chmod 777 -R /var/www/html/phpbb/images/avatars/upload

ความล้มเหลวในการดำเนินการนี้จะทำลายหน้าที่ของบอร์ดของคุณ ตรวจสอบให้แน่ใจว่าคุณปฏิบัติตามเส้นทางเหล่านี้อย่างเคร่งครัด ไม่เช่นนั้นคุณอาจให้ไดเรกทอรี phpBB ทั้งหมดของคุณเข้าถึงการอ่านและเขียนแบบเต็มกลับไปยังสาธารณะโดยไม่ได้ตั้งใจ ทำให้เกิดปัญหาด้านความปลอดภัยอีกครั้ง

ตั้งค่า Cronjob สำหรับ phpBB (แนะนำ)

ขั้นตอนสุดท้ายในคำแนะนำของเราคือการตั้งค่า cronjob แนะนำให้ใช้งาน Cron ในฟอรัมที่ยุ่งและช้าเพื่อตั้งค่างาน cron ให้ทำงานทุกๆ 5 นาทีตามมาตรฐาน phpBB

นำ crontab ขึ้นมา:

sudo crontab -e

ตัวเลือก cronjob แรก:

*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

เพื่อบันทึก, CTRL + O แล้วออกด้วย CTRL + X. หากถูกต้อง คุณจะเห็นผลลัพธ์ต่อไปนี้กลับมาในเทอร์มินัลของคุณ:

crontab: installing new crontab

ซึ่งหมายความว่ามีการติดตั้งและใช้งานได้ และขอแนะนำให้เรียกใช้ cronjobs ทุก 5 นาทีด้วย phpBB อย่างไรก็ตาม คุณสามารถปรับเวลาให้เหมาะสมกับความต้องการของคุณได้หากต้องการ

ตอนนี้ นำทางแผงการดูแลระบบของคุณกลับมาใน phpBB และเปิดใช้งานงาน cron ของเซิร์ฟเวอร์ในการตั้งค่าเซิร์ฟเวอร์ของคุณ

ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ยินดีด้วย คุณติดตั้งฟอรัม phpBB สำเร็จแล้ว และคุณพร้อมที่จะออกแบบฟอรัมและเริ่มต้นชุมชนของคุณ ขอแนะนำอย่างยิ่งให้ตรวจสอบเว็บไซต์และวิกิอย่างเป็นทางการของ phpBB เนื่องจากมีข้อมูลมากมายเกี่ยวกับการปรับแต่งฟอรั่มของคุณ ซึ่งมากเกินกว่าจะใส่ไว้ในคู่มือนี้ที่เราได้สร้างไว้ที่นี่


ตัวอย่าง:

วิธีการติดตั้ง phpBB ด้วย LEMP บน AlmaLinux 8

ความคิดเห็นและข้อสรุป

ด้านความปลอดภัย ทีมงาน phpBB มีประวัติด้านความปลอดภัย เมื่อตรวจสอบการละเมิดที่เป็นไปได้ พบว่าผู้ใช้ไม่ได้เน้นที่การติดตั้งที่ "ปลอดภัย" เช่นบางขั้นตอนที่เราระบุไว้ในคู่มือ เช่น สิทธิ์ chmod

โดยรวมแล้ว phpBB เป็นซอฟต์แวร์โอเพ่นซอร์สฟรีที่ได้รับการทดลองและทดสอบแล้ว ซึ่งดูเหมือนจะไม่หายไปในเร็วๆ นี้ ฉันไม่เคยมีปัญหากับเซิร์ฟเวอร์ที่แข็งแกร่งและแข็งแกร่ง phpBB ในการตั้งค่าเริ่มต้น

ชุมชนบุคคลที่สามค่อนข้างดี เหล่านี้บางส่วนที่จะดูคือ SplickerSnap และ  DMZXแต่ฉันสามารถระบุ 20 หรือมากกว่านั้นที่สมควรถูกกล่าวถึง



ไม่ใช่สิ่งที่คุณกำลังมองหา? ลองค้นหาบทช่วยสอนเพิ่มเติม

แสดงความคิดเห็น