วิธีการติดตั้ง phpBB ด้วย LEMP (Nginx, MariaDB และ PHP) บน Debian 11 Bullseye


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

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

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

สารบัญ

เบื้องต้น

  • ระบบปฏิบัติการที่แนะนำ: เดเบียน 11 บูลส์อาย
  • บัญชีผู้ใช้: บัญชีผู้ใช้งานกับ สิทธิพิเศษ sudo or การเข้าถึงรูท (คำสั่ง su).
  • แพ็คเกจที่จำเป็น: โค้ง

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

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

sudo apt update && sudo apt upgrade

รูทหรือ Sudo Access

ตามค่าเริ่มต้น เมื่อคุณสร้างบัญชีเมื่อเริ่มต้นระบบด้วย Debian เมื่อเทียบกับรุ่นอื่นๆ บัญชีจะไม่ได้รับสถานะ sudoers โดยอัตโนมัติ คุณต้องมีสิทธิ์เข้าถึง รหัสผ่านรูท ใช้ คำสั่ง su หรือเยี่ยมชมบทช่วยสอนของเราที่ วิธีเพิ่มผู้ใช้ใน Sudoers บน Debian.

ติดตั้งแพ็คเกจ CURL & UNZIP

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

sudo apt install curl unzip -y

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

ในการเริ่มต้นการติดตั้ง LEMP stack คุณจะต้องติดตั้ง Nginx เว็บเซิร์ฟเวอร์. วิธีการคือติดตั้ง Nginx mainline ล่าสุดหรือเสถียรจากที่เก็บ Ondřej Surý เพื่อให้มีซอฟต์แวร์ที่อัปเดตมากที่สุด ผู้ใช้ Ubuntu หลายคนคงรู้จัก PPA ของเขาดี และคุณก็สามารถทำได้เช่นเดียวกันใน Debian

หากต้องการใช้เวอร์ชันล่าสุดของ Nginx mainline หรือเวอร์ชันเสถียร คุณจะต้องนำเข้าที่เก็บก่อน

ในการนำเข้าที่เก็บ mainline:

curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x

ในการนำเข้าที่เก็บถาวร:

curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x

อัปเดตที่เก็บของคุณเพื่อแสดงการเปลี่ยนแปลงใหม่:

sudo apt update

ตอนนี้คุณได้ติดตั้ง .แล้ว ที่เก็บ Nginx และอัปเดตรายการที่เก็บ ติดตั้ง Nginx ด้วยสิ่งต่อไปนี้:

sudo apt install nginx-core nginx-common nginx nginx-full

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

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

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

ตอนนี้ตรวจสอบเวอร์ชันและติดตั้งบิลด์แล้ว ตัวอย่างการสอนของเราติดตั้ง Nginx mainline:

nginx -v

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

nginx version: nginx/1.21.1

โปรดทราบว่าคุณอาจได้รับแจ้งให้เก็บหรือแทนที่ .ที่มีอยู่ของคุณ / etc / nginx /nginx.conf ไฟล์การกำหนดค่าระหว่างการติดตั้ง ขอแนะนำให้เก็บไฟล์การกำหนดค่าที่มีอยู่โดยกด (n). สำเนาจะถูกทำขึ้นโดยไม่คำนึงถึงเวอร์ชันของผู้ดูแล และคุณยังสามารถตรวจสอบได้ในอนาคต

คุณจะสังเกตเห็นว่าจะมีโมดูลเพิ่มเติมในเวอร์ชันนี้ โดยเฉพาะอย่างยิ่งการรองรับ brotli ในการติดตั้ง brotli ให้ทำตามขั้นตอนด้านล่าง

เปิดของคุณ nginx.conf ไฟล์การกำหนดค่า:

nano /etc/nginx/nginx.conf

ตอนนี้เพิ่มบรรทัดเพิ่มเติมก่อนใน HTTP{} ส่วน:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
   application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
   application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
   font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
   image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

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

ถัดไป ทดสอบเพื่อให้แน่ใจว่าการเปลี่ยนแปลงทำงานอย่างถูกต้องก่อนเผยแพร่:

sudo nginx -t

หากการเปลี่ยนแปลงทำงานอย่างถูกต้อง คุณควรเห็นสิ่งต่อไปนี้:

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

ทำการเปลี่ยนแปลงทันทีโดยรีสตาร์ทเซิร์ฟเวอร์ของคุณ:

sudo systemctl restart nginx

ถัดไป เปิดใช้งาน Nginx ในการบู๊ตระบบ:

sudo systemctl enable nginx

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

เพื่อให้ phpBB ทำงาน คุณจะต้องติดตั้งซอฟต์แวร์ฐานข้อมูล เนื่องจากเราใช้ LEMP ตัวเลือกคือ MariaDB

คุณสามารถติดตั้ง MariaDB เวอร์ชันเริ่มต้นได้จากที่เก็บของ Debian และบทช่วยสอนจะติดตั้ง ล่าสุด 10.6 MariaDB.

ติดตั้ง Depedencies

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

sudo apt-get install curl software-properties-common dirmngr -y

นำเข้าคีย์ GPG & ที่เก็บ

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

sudo curl -LsSO https://mariadb.org/mariadb_release_signing_key.asc
sudo chmod -c 644 mariadb_release_signing_key.asc
sudo mv -vi mariadb_release_signing_key.asc /etc/apt/trusted.gpg.d/
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.realcompute.io/mariadb/repo/10.6/debian bullseye main'

หมายเหตุ สามารถพบมิเรอร์ดาวน์โหลด ในหน้านี้ ราคาเริ่มต้นที่ มูลนิธิ MariaDB เพื่อค้นหาตำแหน่งที่ใกล้กับคุณสำหรับที่เก็บ

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

sudo apt update

ติดตั้ง MariaDB

ในการติดตั้ง MariaDB คุณจะต้องติดตั้งไคลเอนต์และแพ็คเกจเซิร์ฟเวอร์ สามารถทำได้ดังนี้:

sudo apt install mariadb-server mariadb-client

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

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

พิมพ์ “ย”, จากนั้นกดปุ่ม "ใส่รหัส" เพื่อดำเนินการติดตั้งให้เสร็จสิ้น

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

mariadb --version

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

mariadb  Ver 15.1 Distrib 10.6.4-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper

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

sudo systemctl start mariadb && sudo systemctl enable mariadb

ตัวอย่างผลลัพธ์หากสำเร็จ:

Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mariadb

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

ตอนนี้คุณได้ติดตั้ง MariaDB แล้ว และคุณสามารถตรวจสอบสถานะของซอฟต์แวร์ฐานข้อมูลได้โดยใช้คำสั่ง systemctl ต่อไปนี้:

systemctl status mariadb

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

sudo systemctl start mariadb

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

วิธีการติดตั้ง MariaDB 10.6 บน Debian 11 68

วิธีหยุด 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

ต่อไปตามด้านล่างนี้

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

หมายเหตุ คุณใช้ (Y) เพื่อลบทุกอย่าง

ตัวอย่าง:

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

ติดตั้ง PHP 7.4

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

ทางออกที่ปลอดภัยโดยเฉพาะอย่างยิ่งสำหรับผู้ติดตั้ง phpBB ครั้งแรกคือการใช้ PHP 7.4 ซึ่งถือว่ายังเสถียรและรองรับ คุณสามารถติดตั้งเวอร์ชัน PHP ได้จากที่เก็บเริ่มต้นของ Debian 11 อย่างไรก็ตาม เพื่อให้ธีมนี้ใช้กันทั่วไปในการใช้แพ็คเกจที่อัปเดตมากขึ้น เราจะติดตั้งที่เก็บ Ondřej Surý PHP ซึ่งเป็นผู้ดูแล PHP บน Debian ในที่เก็บนี้ มีเวอร์ชันล่าสุดของ PHP 7.4 และ 8.0 อยู่ตลอดเวลา รวมถึงส่วนขยาย

นำเข้าและติดตั้งคีย์ GPG:

ขั้นตอนแรกคือการนำเข้าและติดตั้ง คีย์ GPG ก่อนเพิ่มที่เก็บ ในการดำเนินการนี้ ให้ใช้เทอร์มินัลต่อไปนี้ (CTRL+ALT+T) คำสั่ง:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

หมายเหตุ คุณอาจต้องติดตั้งการพึ่งพาเหล่านี้หากคุณมีปัญหา:

sudo apt install apt-transport-https lsb-release ca-certificates

นำเข้าและติดตั้งพื้นที่เก็บข้อมูล:

เมื่อจัดเรียงคีย์ GPG ก็ถึงเวลาเพิ่ม ออนเดช ซูรี ที่เก็บข้อมูลดังนี้:

sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

ติดตั้ง PHP 7.4

ตอนนี้คุณสามารถดำเนินการติดตั้ง PHP 8 ตามความต้องการเฉพาะของคุณได้ดังนี้:

sudo apt install php7.4-fpm php7.4-cli php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-mysql php7.4-cli php7.4-ldap php7.4-zip php7.4-mcrypt php7.4-curl php7.4-json php7.4-opcache php7.4-readline php7.4-xml php7.4-gd -y

โปรดทราบว่ามีการติดตั้งส่วนขยาย PHP 7.4 ซึ่งคุณจะต้องเรียกใช้ฟอรัม phpBB ในภายหลังในบทช่วยสอน หากคุณไม่อยากลองใช้ PHP 8 แทน 7.4 ให้แทนที่ php7.4 ด้วย php8.0

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

php -v

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

PHP 7.4.23 (cli) (built: Aug 26 2021 16:06:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.23, Copyright (c), by Zend Technologies

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

sudo systemctl status php7.4fpm

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

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

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

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

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

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

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

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

sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb

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

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

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

sudo mysql -u root -p

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

CREATE DATABASE phpbb;

ตัวอย่างผลลัพธ์หากสำเร็จ:

Query OK, 1 row affected (0.000 sec)

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

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

ตัวอย่างผลลัพธ์หากสำเร็จ:

Query OK, 0 rows affected (0.001 sec)

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

GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

ตัวอย่างผลลัพธ์หากสำเร็จ:

Query OK, 0 rows affected (0.000 sec)

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

FLUSH PRIVILEGES;

ตอนนี้ออก:

EXIT;

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

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

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

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

sudo nano /etc/php/7.4/fpm/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 เพื่อออกจากไฟล์.

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

sudo systemctl restart php7.4-fpm

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

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

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

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

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

sudo nano /etc/nginx/sites-available/phpbb.conf

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

upstream phpbb {
        server unix:/run/php/php7.4-fpm.sock;
}

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

   server_name www.example.com example.com;
   root /etc/nginx/sites-available/example.com/;
   index index.php index.html index.htm index.nginx-debian.html;

    server_name forums.linuxcapable.com;
    root /var/www/html/phpbb;
    index index.php index.html index.htm index.nginx-debian.html;

    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_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_pass phpbb;
		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 phpbb;
		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;
  }
}

หมายเหตุ หากคุณกำลังใช้ PHP ฮิต ค้นหาและแทนที่บรรทัดด้านบน “fastcgi_pass ยูนิกซ์:/run/php/php7.4-fpm.sock;” ไปยัง “fastcgi_pass ยูนิกซ์:/run/php/php8.0-fpm.sock;”.

ถัดไป เปิดใช้งานบล็อกเซิร์ฟเวอร์ใหม่:

sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/

เมื่อเปิดใช้งานแล้ว คุณสามารถทำการทดสอบการทำงานแบบแห้งอย่างรวดเร็วของบริการ 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).

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

sudo apt 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://forum.example.com.

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

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

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

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

ตัวอย่าง:

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

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

ตัวอย่าง:

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

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

ตัวอย่าง:

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

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

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

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

ตัวอย่าง:

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

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

ตัวอย่าง:

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

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

ตัวอย่าง:

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

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

ตัวอย่าง:

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

หลังจากกดส่ง คุณจะเห็นหน้าจอสุดท้ายคล้ายกับด้านล่างโดยติดตั้งฟอรัมและลิงก์นำคุณไปยังแผง 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 บน Debian 11 ด้วย LEMP

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

crontab: installing new crontab

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

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

ตัวอย่าง:

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

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


ตัวอย่าง:

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

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

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

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



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

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