Flarum adalah perangkat lunak forum gratis, open-source yang memudahkan Anda untuk memulai komunitas secara online. Ini adalah perangkat lunak yang sederhana, ringan, cepat dan ramah mobile berbasis PHP.
Muncul dengan serangkaian fitur yang kaya termasuk, Elegant UI, Two-Pane Interface, Infinite Scrolling, Floating Composer, Sepenuhnya responsif dan banyak lagi.
Dalam tutorial ini, kami akan menjelaskan cara menginstal forum Flarum pada server CentOS 8.
Persyaratan Tutorial
- Server yang menjalankan CentOS 8.
- Nama domain yang valid ditunjukkan dengan IP server Anda
- Masuk sebagai root atau user dengan hak sudo
Persiapan
Sebelum memulai, Anda harus menginstal repositori EPEL dan Remi di sistem Anda. Pertama, instal repositori EPEL dengan perintah berikut:
dnf install epel-release -y
Selanjutnya, download dan instal repositori Remi dengan perintah berikut:
wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm rpm -Uvh remi-release-8.rpm
Instal Nginx, MariaDB dan PHP
Pertama, install web server Nginx dan MariaDB server dengan perintah berikut:
dnf install nginx mariadb-server -y
Setelah kedua paket diinstal, Anda harus mengaktifkan modul php:remi-7.3 untuk menginstal PHP 7.3. Anda dapat mengaktifkannya dengan perintah berikut:
dnf module enable php:remi-7.3
Selanjutnya, install PHP dengan dependensi lain yang diperlukan dengan perintah berikut:
dnf install php php-fpm php-common php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y
Setelah semua paket diinstal, mulai layanan Nginx, MariaDB dan PHP-FPM dan aktifkan untuk memulai setelah system reboot dengan perintah berikut:
systemctl start nginx systemctl start mariadb systemctl start php-fpm systemctl enable nginx systemctl enable mariadb systemctl enable php-fpm
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan Database MariaDB
Secara default, MariaDB tidak diamankan. Anda dapat mengamankannya dengan skrip berikut:
mysql_secure_installation
Perintah ini akan mengubah kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian.
Jawab pertanyaan seperti yang ditunjukkan di bawah ini dan pastikan untuk memilih kata sandi yang aman untuk pengguna root:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda, lalu buat database dan user database untuk Flarum dengan perintah berikut:
MariaDB [(none)]> CREATE DATABASE flarumdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on flarumdb.* to 'flarum'@'localhost' identified by 'g4nt!_d3n9an_p4$$w0rd';
Selanjutnya, flush privilege dan keluar dari shell MariaDB dengan perintah berikut:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan PHP-FPM untuk Nginx
Selanjutnya, Anda perlu mengkonfigurasi PHP-FPM agar dapat bekerja dengan Nginx. Anda dapat melakukannya dengan mengedit file www.conf
:
nano /etc/php-fpm.d/www.conf
Ubah nama pengguna dan grup dari apache
ke nginx seperti yang ditunjukkan di bawah ini:
user = nginx group = nginx listen.owner = nginx listen.group = nginx
Selanjutnya, cari baris berikut:
;listen = /run/php-fpm/www.sock
Dan ganti dengan baris berikut:
listen = 127.0.0.1:9000
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan PHP-FPM untuk menerapkan perubahan:
systemctl restart php-fpm
Instal Flarum
Sebelum menginstal Flarum, Anda harus menginstal Composer di sistem Anda.
Anda dapat menginstalnya dengan perintah curl
berikut:
curl -sS https://getcomposer.org/installer | php
Setelah diinstal, Anda akan mendapatkan output berikut:
All settings correct for using Composer Downloading... Composer (version 1.9.2) successfully installed to: /root/composer.phar Use it: php composer.phar
Selanjutnya, pindahkan file biner Composer ke direktori /usr/local/bin
dan berikan izin yang sesuai:
mv composer.phar /usr/local/bin/composer chmod 755 /usr/local/bin/composer
Selanjutnya, ubah direktori ke root dokumen Nginx dan buat proyek Flarum dengan perintah berikut:
cd /var/www/html composer create-project flarum/flarum . --stability=beta
Selanjutnya, berikan izin yang tepat pada direktori root web Nginx dengan perintah berikut:
chown -R nginx:nginx /var/www/html chmod -R 755 /var/www/html chown -R nginx:nginx /var/lib/php
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan Nginx untuk Flarum
Selanjutnya, Kita perlu membuat file konfigurasi virtual host Nginx untuk Nginx. Anda dapat membuatnya dengan perintah berikut:
nano /etc/nginx/conf.d/flarum.conf
Tambahkan baris berikut:
server { listen 80; server_name flarum.example.com; # lokasi untuk root document root /var/www/html/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location /api { try_files $uri $uri/ /api.php?$query_string; } location /admin { try_files $uri $uri/ /admin.php?$query_string; } location /flarum { deny all; return 404; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.html$ { expires -1; } location ~* \.(css|js|gif|jpe?g|png)$ { expires 1M; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types application/atom+xml application/javascript application/json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css #text/html -- text/html is gzipped by default by nginx text/plain text/xml; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; }
Simpan dan tutup file setelah Anda selesai. Selanjutnya, Anda perlu menambah size hash_bucket
di file nginx.conf
.
Anda dapat melakukannya dengan mengedit file /etc/nginx/nginx.conf:
nano /etc/nginx/nginx.conf
Tambahkan baris berikut tepat di atas baris terakhir:
server_names_hash_bucket_size 64;
Simpan dan tutup file. Kemudian, periksa Nginx untuk setiap kesalahan sintaks dengan perintah berikut:
nginx -t
Anda akan melihat output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Terakhir, restart layanan Nginx dan PHP-FPM untuk menerapkan perubahan:
systemctl restart php-fpm systemctl restart nginx
Konfigurasikan SELinux dan Firewall
Pertama, Anda harus membuat rule firewall untuk mengizinkan layanan HTTP dan HTTPS dari jaringan eksternal. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
Secara default, SELinux diaktifkan di CentOS 8. Jadi Anda perlu mengkonfigurasi SELinux agar Flarum berfungsi dengan benar. Anda dapat mengkonfigurasi SELinux menggunakan perintah berikut:
setsebool httpd_can_network_connect on -P
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Akses Flarum Web UI
Sekarang, buka browser web Anda dan ketik URL http://flarum.example.com. Anda akan diarahkan ke halaman berikut:
Berikan nama forum, perincian database, nama pengguna admin, kata sandi, dan klik tombol Install Flarum. Setelah instalasi selesai dengan sukses, Anda akan melihat dasbor Flarum di halaman berikut:
Secure Flarum dengan Let’s Encrypt SSL
Flarum sekarang diinstal dan dikonfigurasi. Saatnya untuk mengamankannya dengan SSL Let’s Encrypt.
Untuk melakukannya, Anda harus mengunduh klien certbot di server Anda. Anda dapat mengunduh dan mengatur izin yang benar dengan menjalankan perintah berikut:
wget https://dl.eff.org/certbot-auto mv certbot-auto /usr/local/bin/certbot-auto chown root /usr/local/bin/certbot-auto chmod 0755 /usr/local/bin/certbot-auto
Sekarang, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat SSL untuk situs web flarum Anda.
certbot-auto --nginx -d flarum.example.com
Perintah di atas akan menginstal semua dependensi yang diperlukan di server Anda. Setelah diinstal, Anda akan diminta untuk memberikan alamat email dan menerima ketentuan layanan seperti yang ditunjukkan di bawah ini:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for flarum.example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/flarum.conf
Selanjutnya, Anda harus memilih untuk mengarahkan lalu lintas HTTP ke HTTPS atau tidak, seperti ditunjukkan di bawah ini:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Ketik 2 dan tekan Enter untuk melanjutkan. Setelah instalasi selesai, Anda akan melihat output berikut:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/flarum.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://flarum.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=flarum.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/flarum.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/flarum.example.com/privkey.pem Your cert will expire on 2020-03-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Pada poin ini, instalasi Let’s Encrypt untuk Website Anda telah selesai dan sekarang dapat mengakses situs web Flarum dengan menggunakan URL aman https://flarum.example.com.