Cara Install phpBB dengan Nginx di Debian 12, 11 atau 10 Linux

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.

Joshua James
Ikuti aku
Postingan terbaru oleh Joshua James (Lihat semua)

Tinggalkan komentar