phpBB adalah perangkat lunak forum sumber terbuka yang dapat disesuaikan dan banyak digunakan, menyediakan platform yang kuat untuk membangun komunitas online. Ketika dikombinasikan dengan NGINX, MariaDB, dan PHP, Anda mendapatkan tumpukan yang kuat dan efisien yang menjamin kinerja tinggi dan skalabilitas untuk forum Anda. NGINX berfungsi sebagai server web, MariaDB sebagai sistem manajemen basis data, dan PHP sebagai bahasa skrip sisi server, membentuk fondasi yang kuat untuk phpBB.
Ikuti langkah-langkah yang diuraikan dalam panduan ini untuk menginstal phpBB di Debian 12, 11, atau 10 dengan NGINX, MariaDB, dan PHP. Pengaturan ini akan memberikan lingkungan berkinerja tinggi dan aman untuk forum online Anda.
Instal LEMP (Nginx, MariaDB, PHP)
Perbarui Debian Sebelum Instalasi phpBB
Pastikan sistem Debian Anda mutakhir sebelum menginstal tumpukan LEMP. Langkah ini membantu menghindari konflik paket dan memastikan kelancaran pelaksanaan proses selanjutnya. Ini juga menyelaraskan sistem Anda dengan patch keamanan dan peningkatan perangkat lunak terbaru.
Untuk memperbarui sistem Anda, jalankan perintah berikut:
sudo apt update && sudo apt upgrade
Perintah sudo apt update memperbarui daftar paket yang tersedia dan versinya, sedangkan sudo apt upgrade menginstal versi terbaru paket Anda.
Instal NGINX (LEMP Stack Bagian 1)
NGINX, server HTTP sumber terbuka dan berkinerja tinggi serta proksi terbalik, adalah landasan tumpukan LEMP. Untuk menginstal NGINX, jalankan perintah berikut:
sudo apt install nginx
Setelah instalasi NGINX, layanan biasanya dimulai secara otomatis. Namun, merupakan praktik yang baik untuk mengonfirmasi hal ini dan memastikannya beroperasi sesuai harapan. Anda dapat memverifikasi status layanan NGINX dengan mengeluarkan perintah berikut:
systemctl status nginx
Anda akan melihat output yang menunjukkan status aktif (berjalan) layanan NGINX, yang mengonfirmasi keberhasilan inisiasi NGINX. Jika server belum dimulai karena alasan apa pun, perintah berikut dapat memulainya dan juga mengatur NGINX agar diluncurkan secara otomatis saat sistem di-boot ulang:
sudo systemctl enable nginx --now
Perintah ini memastikan bahwa layanan NGINX dapat dimulai saat boot (aktifkan) dan segera dimulai (–sekarang).
Secara opsional, Anda dapat mengunjungi alamat IP server untuk memverifikasi bahwa Nginx telah diinstal; Anda akan melihat halaman pengujian serupa:
Instal MariaDB (LEMP Stack Bagian 2)
Menginstal modul database adalah langkah berikutnya dalam menyiapkan tumpukan LEMP. MariaDB, yang dikenal dengan kinerjanya dan berbagai atribut tambahannya, lebih disukai daripada MySQL dalam tumpukan LEMP. Untuk menginstal MariaDB, jalankan perintah berikut:
sudo apt install mariadb-server mariadb-client
Langkah 4: Verifikasi Layanan MariaDB
Setelah MariaDB diinstal, penting untuk mengonfirmasi status layanan MariaDB. Penting untuk memastikan layanan MariaDB diaktifkan dan beroperasi dengan benar. Perintah untuk memeriksa status layanan adalah sebagai berikut:
systemctl status mariadb
Anda dapat menjalankan perintah berikut jika server belum diaktifkan. Ini akan memastikan bahwa MariaDB segera dimulai dan diatur untuk boot secara otomatis setiap kali sistem di-boot ulang.
sudo systemctl enable mariadb --now
Instalasi MariaDB Aman (Skrip Run Keamanan)
Mengamankan database Anda adalah hal mendasar dalam menyiapkan sistem yang kuat dan andal; MariaDB tidak terkecuali. Setelah instalasi, sangat disarankan agar skrip keamanan yang disertakan dengan instalasi dijalankan. Skrip ini memperkuat instalasi MariaDB dengan mengubah pengaturan defaultnya, yang sering dianggap tidak aman, sehingga melindungi sistem dari potensi akses atau eksploitasi yang tidak sah.
Untuk menjalankan skrip keamanan MariaDB, yang dikenal sebagai mysql_secure_installation, jalankan perintah berikut:
sudo mysql_secure_installation
Setelah skrip keamanan dijalankan, langkah selanjutnya melibatkan penyesuaian berbagai pengaturan untuk meningkatkan keamanan instalasi MariaDB Anda. Perubahan ini termasuk menyiapkan kata sandi root, membatasi akses jarak jauh, menghilangkan akun pengguna anonim, dan menghapus database pengujian. Setiap penyesuaian ini menambah lapisan keamanan pada instalasi MariaDB Anda, membantu melindunginya dari potensi ancaman keamanan.
Mari kita selidiki masing-masing penyesuaian ini:
- Menyiapkan kata sandi root: Ini adalah kata sandi untuk pengguna root instalasi MariaDB Anda. Sangat penting untuk memilih kata sandi yang kuat untuk mencegah akses tidak sah.
- Membatasi akses jarak jauh: Pengguna root dapat mengakses database dari lokasi mana pun secara default. Membatasi akses jarak jauh memastikan bahwa pengguna root hanya dapat mengakses database dari mesin lokal, sehingga mengurangi risiko serangan jarak jauh.
- Menghilangkan akun pengguna anonim: Akun pengguna anonim tidak memiliki nama. Akun-akun ini menimbulkan risiko keamanan karena dapat digunakan untuk mendapatkan akses tidak sah ke database. Skrip keamanan memungkinkan Anda menghapus akun ini.
- Menghapus database pengujian: MariaDB memiliki database pengujian yang dapat diakses oleh setiap pengguna. Basis data ini tidak diperlukan untuk penggunaan produksi dan dapat dihapus dengan aman untuk mengurangi permukaan serangan.
Dengan meluangkan waktu untuk mengamankan instalasi MariaDB, Anda mengambil langkah signifikan dalam memastikan integritas dan keamanan data Anda.
Instal PHP (LEMP Stack Bagian 3)
Komponen terakhir dari tumpukan LEMP adalah layanan PHP, yang bertindak sebagai jembatan antara Nginx dan MariaDB. Penjembatanan ini dilakukan dengan layanan PHP-FPM dan modul tambahan yang dibutuhkan oleh phpMyAdmin. Untuk menginstal PHP, PHP-FPM, dan modul yang diperlukan pada sistem Debian Anda, jalankan perintah berikut:
sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml
Memverifikasi Status Layanan PHP
Setelah instalasi, penting untuk mengonfirmasi status layanan PHP. Validasi ini memastikan bahwa PHP diaktifkan dan beroperasi dengan sempurna tanpa kesalahan apa pun. Perintah ini bergantung pada versi PHP yang diinstal; dalam kasus kami, itu adalah PHP 8.2.
systemctl status php8.2-fpm
Mengaktifkan Layanan PHP
Jika layanan PHP tidak aktif, perintah berikut akan mengaktifkannya dan memastikan layanan dimulai secara otomatis setiap kali reboot.
sudo systemctl enable php-fpm --now
Perintah ini akan mengaktifkan layanan PHP-FPM dan memastikannya dimulai secara otomatis setiap kali sistem boot-up.
Instalasi Backend phpBB
Saatnya menginstal forum phpBB dengan tumpukan LEMP berhasil diinstal. Pada saat tutorial ini dibuat, versi terbaru adalah phpBB 3.3.10. Namun, hal ini dapat berubah seiring berjalannya waktu, karena rilis baru biasanya diluncurkan setiap enam bulan. Untuk memverifikasi versi saat ini, kunjungi halaman unduh phpBB.
Catatan: Jangan lupa ambil phpBB-xxxzip terbaru dan sesuaikan perintah di bawah ini; ini sangat penting.
Unduh phpBB dan Menyiapkan Direktori
Pertama, unduh paket phpBB:
cd /tmp && wget https://download.phpbb.com/pub/release/3.3/3.3.10/phpBB-3.3.10.zip
unzip phpBB-3.3.10.zip
sudo mv phpBB3 /var/www/html/phpbb
Selanjutnya, ubah izin direktori untuk NGINX:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb
Mengonfigurasi MariaDB untuk phpBB
Sekarang, buat database untuk instalasi phpBB Anda. Pertama, buka terminal MariaDB sebagai root:
sudo mysql -u root -p
Buat database untuk forum Anda:
CREATE DATABASE phpbb;
Buat pengguna database baru bernama phpbbuser
dengan kata sandi baru:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';
Berikan pengguna akses penuh ke database:
GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Hapus hak istimewa untuk menerapkan perubahan:
FLUSH PRIVILEGES;
Keluar dari terminal MariaDB:
EXIT;
Basis data phpBB Anda sekarang sudah siap. Anda akan memasukkan detail ini selama bagian instalasi UI web dari tutorial.
Konfigurasi PHP untuk phpBB
Untuk memastikan instalasi phpBB berhasil dan pengoperasiannya optimal, Anda harus menyesuaikan beberapa opsi di php.ini
file konfigurasi.
Buka php.ini
mengajukan:
sudo nano /etc/php/{version}/fpm/php.ini
Harap ingat untuk mengganti {version}
dengan versi PHP-FPM tertentu yang Anda instal, seperti 83., 8.2, 8.1, 8.0, atau 7.4.
Temukan pengaturan berikut dan sesuaikan sebagai berikut:
max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M
Pengaturan ini umumnya standar, namun jika Anda menggunakan VPS dengan sumber daya terbatas atau hosting bersama, Anda mungkin perlu menyesuaikannya lebih rendah. Ingatlah bahwa setiap instalasi phpBB, seperti sistem CMS lainnya, dapat berbeda-beda.
Setelah selesai, simpan dan keluar dari file. Anda perlu me-restart PHP FPM agar perubahan diterapkan:
sudo systemctl restart php8.2-fpm
Konfigurasi Nginx untuk phpBB
Di blok server Nginx Anda, deklarasikan PHP upstream dan kemudian lokasi PHP. Cara terbaik untuk melakukannya adalah dengan membuat blok server baru menggunakan subdomain seperti forums
atau community
.
Pertama, buat blok server:
sudo nano /etc/nginx/sites-available/phpbb.conf
Salin dan tempel yang berikut ini ke blok server, ubah nama domain, SSL, jalur root, dan apa pun sesuai kebutuhan Anda. Jangan sentuh lokasi atau PHP kecuali Anda tahu apa yang Anda lakukan.
Perhatian: Penurunan sintaks konfigurasi Nginx berikut menyertakan komentar beranotasi untuk memandu Anda dalam mempersonalisasi konfigurasi sesuai dengan kebutuhan spesifik Anda. Kami sangat menyarankan untuk meneliti setiap segmen dengan cermat dan melakukan penyesuaian yang sesuai dengan konfigurasi sistem Anda. Perhatian Anda terhadap detail ini sangat kami hargai.
# Upstream to abstract backend connection(s) for PHP
upstream phpbb {
# Path to PHP 8.2 FPM socket, replace this with your own socket path
server unix:/run/php/php8.2-fpm.sock;
}
server {
listen 80;
listen [::]:80;
# Change these to your main server name(s)
server_name www.example.com example.com;
# Replace this with your site root directory
root /var/www/html/example.com-root/;
index index.php index.html index.htm index.nginx-debian.html;
# Change this to your specific server name
server_name forums.linuxcapable.com;
# Replace this with your site root directory
root /var/www/html/phpbb/;
index index.php index.html index.htm index.nginx-debian.html;
# Log files, replace these paths if you have different log file paths
access_log /var/log/nginx/forums-access.log;
error_log /var/log/nginx/forums-error.log;
location / {
try_files $uri $uri/ @rewriteapp;
# PHP processing, make sure to use your own upstream name if different
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 certain PHPBB files
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
deny all;
internal;
}
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location /install/ {
try_files $uri $uri/ @rewrite_installapp =404;
# PHP processing for installer
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 compression types
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;
# Static 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;
}
}
Setelah pengaturan, aktifkan blok server baru:
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
Anda sekarang dapat memeriksa konfigurasi:
sudo nginx -t
Jika semuanya diatur dengan benar, Anda akan melihat:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mulai ulang layanan Nginx agar phpBB dapat diakses melalui UI web:
sudo systemctl restart nginx
Ini menyelesaikan instalasi backend phpBB.
Menerapkan Enkripsi SSL dengan Let's Encrypt (Opsional)
Jika Anda ingin mengamankan server Nginx Anda dengan HTTPS, pilihan cerdas adalah menggunakan Let's Encrypt. Let's Encrypt adalah otoritas sertifikat yang bereputasi baik, gratis, dan sepenuhnya otomatis yang diatur oleh Internet Security Research Group (ISRG) nirlaba.
Menginstal Certbot
Langkah pertama kami melibatkan instalasi paket Certbot. Certbot adalah klien efisien untuk Let's Encrypt yang dapat mengotomatiskan penerbitan dan pemasangan sertifikat tanpa waktu henti. Ia juga memiliki antarmuka baris perintah yang cukup kaya.
Untuk menginstal paket Certbot, gunakan perintah berikut:
sudo apt install python3-certbot-nginx -y
Membuat Sertifikat Anda
Dengan Certbot terinstal, kami sekarang dapat membuat sertifikat SSL Anda. Prosedur ini melibatkan menjalankan perintah berikut:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
Perintah yang kami keluarkan memfasilitasi pengaturan optimal, yang mencakup pengalihan paksa HTTPS 301, header Strict-Transport-Security, dan OCSP Stabling. Masing-masing elemen ini berkontribusi terhadap keamanan server Anda.
Mengganti 'you@example.com' dan 'forums.example.com' dengan email dan nama domain Anda sangatlah penting.
Transisi ke HTTPS
Setelah berhasil menjalankan perintah ini, forum Anda sekarang dapat diakses melalui HTTPS di https://forums.example.com, bukan http://forum.example.com sebelumnya. Setiap upaya untuk mengakses URL HTTP lama akan dialihkan dengan lancar ke versi HTTPS yang aman.
Untuk membaca lebih lanjut tentang mengamankan Nginx, lihat panduan rinci kami di Cara Mengamankan Nginx dengan Let's Encrypt di Debian Linux.
Selesaikan Instalasi UI Web phpBB
Setelah berhasil menyiapkan backend, sekarang kita akan beralih ke frontend untuk menyelesaikan instalasi phpBB. Anda dapat mengakses halaman instalasi dengan mengunjungi URL forum phpBB yang Anda pilih. Sebagai ilustrasi, kami menggunakan https://forums.linuxcapable.com.
Memulai Instalasi
Setelah mengunjungi URL yang ditentukan, Anda akan diarahkan ke halaman instalasi phpBB. Mulailah proses dengan mengklik tombol install di sudut kiri atas halaman.
Anda kemudian akan diarahkan ke halaman yang merinci persyaratan sistem minimum dan spesifikasi teknis penting lainnya untuk phpBB.
Setelah sistem Anda memenuhi prasyarat ini, klik Instal di bagian bawah halaman.
Menyiapkan Akun Admin
Tahap selanjutnya melibatkan pembuatan akun admin phpBB Anda. Kata sandi yang kuat untuk akun ini sangat penting untuk pemulihan dan keamanan secara keseluruhan.
Mengonfigurasi Detail Basis Data
Setelah membuat akun admin, Anda akan diminta untuk memberikan detail database. Pertahankan 'MySQL dengan Ekstensi MySQLi' default dan masukkan 'localhost' kecuali database Anda berada di server yang berbeda. Jika demikian, masukkan IP dan port server (jika bukan default).
Tutorial kami menggunakan database bernama 'phpbb', dengan 'phpbbuser' sebagai pengguna yang diberikan akses (bersama root) ke database phpBB. Pertahankan awalan default 'phpbb_', kecuali Anda berencana untuk menghosting beberapa forum, dalam hal ini, mengubah awalan dapat membantu membedakannya.
Menyelesaikan Konfigurasi Server
Selanjutnya, Anda akan memiliki kesempatan untuk mengonfigurasi pengaturan server Anda. Konfigurasi default sudah cukup jika Anda tidak menjalankan SSL. Namun, jika Anda telah menerapkan SSL, sesuaikan pengaturannya agar sesuai dengan kebutuhan spesifik Anda.
Pengaturan SMTP
Setelah konfigurasi server, Anda dapat membuat pengaturan SMTP, jika berlaku. Jika tidak, Anda dapat melewati langkah ini dan melanjutkan ke pengaturan default.
Menetapkan Detail Forum
Terakhir, tentukan judul forum Anda dan pilih bahasa yang diinginkan. Jika Anda tidak yakin dengan judul forum, gunakan opsi default untuk saat ini; Anda selalu dapat merevisinya nanti.
Setelah menyelesaikan langkah-langkah ini, Anda akan mencapai layar penutup, mengonfirmasi keberhasilan instalasi forum phpBB Anda, bersama dengan tautan yang mengarahkan Anda ke ACP (Panel Kontrol Admin). Jika Anda mengalami kesalahan apa pun, Anda mungkin perlu meninjau kembali langkah-langkah sebelumnya untuk memastikan tidak ada langkah atau izin yang terlewatkan.
Penyelesaian Instalasi dan Konfigurasi phpBB
Hapus Direktori Instalasi phpBB
Selamat telah mencapai tahap ini. Saat pertama kali login ke Panel Kontrol Admin (ACP) phpBB, Anda akan disambut dengan peringatan merah yang memerintahkan Anda untuk mengganti nama atau menghilangkan direktori instalasi Anda. Sangat disarankan agar Anda menghapus direktori ini daripada memindahkannya begitu saja. Untuk mencapai hal ini, jalankan perintah berikut di terminal Anda:
sudo rm -R /var/www/html/phpbb/install
Jika Anda tidak melakukan ini, kemungkinan besar Anda akan mendapati forum Anda tidak dapat digunakan sampai Anda menghapus direktori instalasi:
Mengatur Izin CHMOD yang Benar (Langkah Penting)
Saat kita berurusan dengan perintah terminal, memberikan izin CHMOD yang sesuai setelah instalasi sangatlah penting. Mengabaikan langkah ini dapat menyebabkan sistem Anda terkena kerentanan keamanan yang signifikan, jadi silakan jalankan ini dengan tepat atau gunakan metode Anda jika Anda yakin ini lebih unggul, namun jangan mempertahankan izin default!!
Jalankan perintah berikut:
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Selanjutnya, kita perlu memberikan beberapa izin khusus ke direktori dan file tertentu:
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
Mengabaikan hal ini akan mengganggu fungsi dewan Anda. Pastikan Anda mengikuti jalur ini dengan ketat; jika tidak, Anda mungkin secara tidak sengaja memberikan seluruh direktori phpBB akses baca dan tulis tidak terbatas, sehingga menimbulkan kembali masalah keamanan.
Melembagakan Cronjob untuk phpBB (Disarankan)
Langkah penutup dalam panduan ini adalah membuat cronjob. Di forum dengan lalu lintas besar atau waktu respons lambat, disarankan untuk mengonfigurasi tugas cron agar dijalankan setiap 5 menit, sesuai pedoman phpBB. Inilah cara melakukannya.
Luncurkan crontab dengan perintah ini:
sudo crontab -e
Opsi untuk cronjob pertama:
*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1
Untuk menyimpan, tekan CTRL+O, dan untuk keluar, tekan CTRL+X. Jika dilakukan dengan benar, Anda akan melihat respons berikut di terminal Anda:
crontab: installing new crontab
Respon ini menunjukkan bahwa cronjob aktif dan berfungsi. Meskipun phpBB merekomendasikan menjalankan cronjobs setiap 5 menit, Anda dapat menyesuaikan frekuensinya sesuai kebutuhan Anda.
Terakhir, kembali ke Panel Admin phpBB Anda dan aktifkan tugas cron server di pengaturan server Anda.
Dengan langkah-langkah ini, Anda telah menyelesaikan tahap pasca instalasi untuk instalasi phpBB Anda di Debian.
Kesimpulan
Dengan berhasil menginstal phpBB di sistem Debian Anda menggunakan NGINX, MariaDB, dan PHP, kini Anda dapat membuat dan mengelola komunitas online yang kuat. Pastikan Anda memperbarui semua komponen secara rutin untuk menjaga keamanan dan kinerja. Nikmati fleksibilitas dan kekuatan yang dibawa oleh pengaturan ini ke forum phpBB Anda, memberikan pengalaman yang lancar dan menarik bagi pengguna Anda.