소프트웨어 설치 · 15 min read · Oct 20, 2025
Debian 12에 Flarum 커뮤니티 소프트웨어 설치하는 방법

Flarum은 온라인 포럼을 쉽게 생성하고 관리하기 위해 설계된 오픈 소스 커뮤니티 소프트웨어입니다. 세련되고 현대적인 인터페이스로 구축된 Flarum은 성능과 단순성을 최적화한 간소화된 사용자 경험을 제공합니다. 강력한 확장 시스템을 통해 높은 사용자 정의 가능성을 제공하여 관리자가 특정 요구와 선호에 맞게 포럼을 조정할 수 있습니다. Flarum은 반응형 디자인을 지원하여 다양한 장치에서 호환성을 보장하며, 실시간 알림, 풍부한 미디어 삽입 및 원활한 관리 도구와 같은 기능을 제공합니다. PHP와 MySQL에 기반하여 구축되어 다양한 웹 호스팅 환경에서 접근할 수 있어, 효율적인 온라인 토론 플랫폼을 찾는 소규모 커뮤니티와 대규모 조직 모두에게 매력적입니다.
이 튜토리얼에서는 Debian 12 기반의 서버에 Flarum 커뮤니티 소프트웨어를 설치하는 방법을 배웁니다.
전제 조건
- Debian 12를 실행하는 서버.
- sudo 권한이 있는 비루트 사용자.
- 서버를 가리키는 완전한 도메인 이름(FQDN) 예:
flarum.example.com. - RAM이 1GB인 서버에서는 스왑 저장소가 활성화되어 있는지 확인하십시오.
- 모든 것이 업데이트되었는지 확인하십시오.
$ sudo apt update && sudo apt upgrade - Flarum을 실행하려면 몇 가지 필수 패키지가 필요합니다. 이 중 일부는 이미 서버에 있을 수 있습니다.
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
1단계 - 방화벽 구성
첫 번째 단계는 방화벽을 구성하는 것입니다. Debian은 기본적으로 ufw(간단한 방화벽)를 제공합니다.
방화벽이 실행 중인지 확인하십시오.
$ sudo ufw status
다음과 같은 출력이 표시됩니다.
Status: inactive
SSH 포트를 허용하여 방화벽을 활성화할 때 현재 연결이 끊어지지 않도록 합니다.
$ sudo ufw allow OpenSSH
HTTP 및 HTTPS 포트도 허용합니다.
$ sudo ufw allow http
$ sudo ufw allow https
방화벽을 활성화합니다.
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
방화벽 상태를 다시 확인하십시오.
$ sudo ufw status
유사한 출력이 표시되어야 합니다.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
2단계 - Nginx 설치
Debian 12에는 이전 버전의 Nginx가 포함되어 있습니다. 최신 버전을 설치하려면 공식 Nginx 저장소를 다운로드해야 합니다.
Nginx의 서명 키를 가져옵니다.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginx의 안정적인 버전 저장소를 추가합니다.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
시스템 저장소를 업데이트합니다.
$ sudo apt update
Nginx를 설치합니다.
$ sudo apt install nginx
설치가 완료되었는지 확인합니다. Debian 시스템에서는 다음 명령이 sudo와 함께만 작동합니다.
$ sudo nginx -v
nginx version: nginx/1.24.0
Nginx 서버를 시작합니다.
$ sudo systemctl start nginx
서비스 상태를 확인합니다.
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Thu 2023-11-09 12:08:18 UTC; 1s ago
Docs: https://nginx.org/en/docs/
Process: 1957 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 1958 (nginx)
Tasks: 2 (limit: 1107)
Memory: 1.7M
CPU: 6ms
CGroup: /system.slice/nginx.service
??1958 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??1959 "nginx: worker process"
웹 브라우저에서 서버의 IP 주소를 엽니다. 서버가 정상적으로 작동하고 있다는 것을 의미하는 다음 페이지가 표시되어야 합니다.

3단계 - PHP 설치
Debian 12에는 기본적으로 PHP 8.2가 포함되어 있습니다. 다음 명령을 실행하여 설치할 수 있습니다.
$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
항상 최신 버전의 PHP를 유지하거나 여러 버전의 PHP를 설치하려면 Ondrej의 PHP 저장소를 추가하십시오.
먼저 Sury의 repo PHP GPG 키를 가져옵니다.
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Ondrej Sury의 PHP 저장소를 추가합니다.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
시스템 저장소 목록을 업데이트합니다.
$ sudo apt update
다음으로 Flarum에 필요한 PHP 및 확장 프로그램을 설치합니다.
$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
PHP가 제대로 작동하는지 확인합니다.
$ php --version
유사한 출력이 표시되어야 합니다.
PHP 8.2.12 (cli) (built: Oct 27 2023 13:00:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
4단계 - Composer 설치
Composer는 PHP의 종속성 관리자입니다. Flarum은 다양한 구성 요소를 설치하고 실행하는 데 Composer가 필요합니다.
다음 명령을 실행하여 Composer를 설치합니다. 먼저 설치 프로그램을 가져오고 해시를 확인하여 검증한 후 PHP 명령줄을 사용하여 설치 프로그램을 실행합니다. 그런 다음 이진 파일을 /usr/local/bin 디렉토리로 이동합니다.
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
Composer가 제대로 설치되었는지 확인합니다.
$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52
5단계 - MariaDB 설치
MariaDB는 MySQL의 대체품으로, MariaDB를 실행하고 운영하는 명령은 MySQL과 동일합니다.
Debian 12에는 기본적으로 MariaDB 10.11.4가 포함되어 있으며, 이는 다소 구식입니다. 최신 안정 버전의 MariaDB를 얻으려면 공식 저장소를 사용해야 합니다.
MariaDB의 GPG 키를 가져옵니다.
$ sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
MariaDB의 저장소 파일을 생성합니다.
$ echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list
시스템 저장소 목록을 업데이트합니다.
$ sudo apt update
다음 명령을 실행하여 MariaDB 서버를 설치합니다.
$ sudo apt install mariadb-server -y
MariaDB가 올바르게 설치되었는지 확인합니다.
$ mysql --version
다음과 같은 출력이 표시되어야 합니다.
mysql Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
mariadb --version를 사용하여 버전을 확인할 수도 있습니다.
MariaDB 서비스는 이미 활성화되어 실행 중입니다. 다음 명령을 사용하여 상태를 확인하십시오.
$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.6 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/mariadb.service.d
??migrated-from-my.cnf-settings.conf
Active: active (running) since Tue 2023-11-14 08:42:03 UTC; 4min 1s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 74903 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 74904 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 74906 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR>
Process: 74946 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 74948 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 74935 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 1107)
Memory: 214.9M
CPU: 627ms
CGroup: /system.slice/mariadb.service
??74935 /usr/sbin/mariadbd
다음 명령을 실행하여 루트 비밀번호를 설정하고 익명 사용자 제거, 원격 루트 로그인 금지, 테스트 테이블 삭제와 같은 기본 구성을 수행합니다.
$ sudo mariadb-secure-installation
루트 비밀번호를 요청받게 됩니다. 루트 비밀번호가 설정되어 있지 않으므로 Enter 키를 눌러 진행합니다.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...
다음으로 unix_socket 플러그인으로 전환할 것인지 묻는 메시지가 표시됩니다. unix_socket 플러그인은 Linux 사용자 자격 증명을 사용하여 MariaDB에 로그인할 수 있게 해줍니다. 보호된 root 계정이 이미 있으므로 n을 선택하여 전환을 건너뜁니다.
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
다음으로 루트 비밀번호를 변경할 것인지 묻는 메시지가 표시됩니다. Debian 12에서는 MariaDB의 루트 계정이 자동 시스템 유지 관리와 밀접하게 연결되어 있으므로 계정의 인증 방법을 변경하지 않는 것이 좋습니다. 그렇게 하면 패키지 업데이트로 인해 데이터베이스 시스템이 손상될 수 있습니다. n을 입력하여 진행합니다.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
이후에는 모든 다음 질문에 대해 기본값을 수락하려면 y를 누르고 Enter를 누릅니다. 이렇게 하면 익명 사용자에 대한 접근이 제거되고, 테스트 데이터베이스가 삭제되며, 원격 루트 로그인이 비활성화되고, 변경 사항이 즉시 적용됩니다.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
그게 전부입니다. 다음 번에 MariaDB 셸에 로그인하려면 다음 명령을 사용하십시오.
$ sudo mysql
프롬프트가 표시되면 Linux 루트 비밀번호를 입력합니다.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.11.6-MariaDB-1:10.11.6+maria~deb12 mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB 셸을 종료하려면 exit를 누릅니다.
6단계 - MariaDB 구성
MariaDB 셸에 로그인합니다.
$ sudo mysql
Flarum 설치를 위한 새로운 MySQL 데이터베이스, 데이터베이스 사용자 및 비밀번호를 생성합니다.
MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';
flarum, flarumuser 및 yourpassword를 원하는 자격 증명으로 바꿉니다. 강력한 비밀번호를 선택하십시오.
또한 루트 계정과 동일한 권한을 가진 관리 사용자를 생성합니다.
MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
현재 세션에 저장되도록 권한을 플러시합니다.
MariaDB> FLUSH PRIVILEGES;
MariaDB 셸을 종료합니다.
MariaDB> exit
7단계 - Flarum 설치
Flarum이 위치할 디렉토리를 생성합니다.
$ sudo mkdir /var/www/flarum -p
-p 지시어를 사용하면 이전에 존재하지 않았던 상위 디렉토리가 생성됩니다.
Flarum 디렉토리의 소유권을 현재 로그인한 Linux 사용자에게 변경하여 sudo 없이 명령을 수행할 수 있도록 합니다.
$ sudo chown -R $USER:$USER /var/www/flarum
설치 폴더로 이동합니다.
$ cd /var/www/flarum
Composer를 사용하여 Flarum을 다운로드하고 설치합니다.
$ composer create-project flarum/flarum .
Flarum 디렉토리의 소유권을 Nginx 서버의 nginx로 변경합니다.
$ sudo chown -R nginx:nginx /var/www/flarum
디렉토리에 대한 쓰기 권한을 허용합니다.
$ sudo chmod 775 -R /var/www/flarum
이후 Composer는 sudo 권한이 필요하므로 권장되지 않습니다. 디렉토리의 그룹 권한을 Linux 사용자로 변경한 다음 Composer 작업이 끝난 후 다시 nginx로 변경할 수도 있습니다. 이는 반복적으로 동일한 명령을 수행해야 하므로 이상적인 솔루션은 아닙니다. 더 영구적인 솔루션은 현재 로그인한 Linux 사용자를 nginx 그룹에 추가하는 것입니다. 다음 명령을 실행하여 현재 로그인한 Linux 사용자를 nginx 그룹에 추가합니다.
$ sudo usermod -a -G nginx $USER
새 그룹 멤버십을 적용하려면 서버에서 로그아웃한 후 다시 로그인하거나 다음을 입력하십시오.
su - ${USER}
8단계 - SSL 설치
SSL 인증서를 생성하기 위해 Certbot을 설치해야 합니다. Debian의 저장소를 사용하여 Certbot을 설치하거나 Snapd 도구를 사용하여 최신 버전을 가져올 수 있습니다. 우리는 Snapd 버전을 사용할 것입니다.
Debian 12에는 Snapd가 설치되어 있지 않습니다. Snapd 패키지를 설치합니다.
$ sudo apt install snapd
다음 명령을 실행하여 Snapd 버전이 최신인지 확인합니다.
$ sudo snap install core && sudo snap refresh core
Certbot을 설치합니다.
$ sudo snap install --classic certbot
Certbot 명령이 /usr/bin 디렉토리에서 실행될 수 있도록 심볼릭 링크를 생성하여 확인합니다.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Certbot이 제대로 작동하는지 확인합니다.
$ certbot --version
certbot 2.7.4
SSL 인증서를 생성합니다.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d flarum.example.com
위 명령은 서버의 /etc/letsencrypt/live/flarum.example.com 디렉토리에 인증서를 다운로드합니다.
Diffie-Hellman 그룹 인증서를 생성합니다.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbot 갱신 스케줄러 서비스 확인합니다.
$ sudo systemctl list-timers
snap.certbot.renew.service가 실행될 서비스 중 하나로 표시됩니다.
NEXT LEFT LAST PASSED UNIT ACTIVATES
---------------------------------------------------------------------------------------------------------------------------
Tue 2023-11-14 15:39:00 UTC 24min left Tue 2023-11-14 15:09:02 UTC 5min ago phpsessionclean.timer phpsessionclean.service
Tue 2023-11-14 17:33:00 UTC 2h 18min left - - snap.certbot.renew.timer snap.certbot.renew.service
Tue 2023-11-14 19:03:30 UTC 3h 49min left Tue 2023-11-14 15:12:10 UTC 1min 58s ago apt-daily.timer apt-daily.service
SSL 갱신이 잘 작동하는지 확인하기 위해 프로세스를 드라이 런합니다.
$ sudo certbot renew --dry-run
오류가 없으면 모든 준비가 완료된 것입니다. 인증서는 자동으로 갱신됩니다.
9단계 - PHP-FPM 구성
파일 /etc/php/8.2/fpm/pool.d/www.conf를 엽니다.
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
PHP 프로세스의 Unix 사용자/그룹을 nginx로 설정해야 합니다. 파일에서 user=www-data 및 group=www-data 줄을 찾아 nginx로 변경합니다.
; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
; --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
; If the group is not set, the user's group is used.
user = nginx
group = nginx
...
파일에서 listen.owner = www-data 및 listen.group = www-data 줄을 찾아 nginx로 변경합니다.
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: Owner is set to the master process running user. If the group
; is not set, the owner's group is used. Mode is set to 0660.
listen.owner = nginx
listen.group = nginx
Ctrl + X를 눌러 파일을 저장하고, 프롬프트가 표시되면 Y를 입력합니다.
파일 업로드 크기를 8MB로 늘립니다.
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.2/fpm/php.ini
PHP-FPM 서비스를 재시작합니다.
$ sudo systemctl restart php8.2-fpm
PHP 세션 디렉토리의 그룹을 Nginx로 변경합니다.
$ sudo chgrp -R nginx /var/lib/php/sessions
10단계 - Nginx 구성
사이트에 대한 구성 파일을 추가하려면 다음 명령을 실행합니다.
$ sudo nano /etc/nginx/conf.d/flarum.conf
편집기에 다음 코드를 붙여넣습니다.
server {
listen [::]:80;
listen 80;
server_name flarum.example.com;
# redirect http to https
return 301 https://flarum.example.com$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name flarum.example.com;
access_log /var/log/nginx/flarum.access.log;
error_log /var/log/nginx/flarum.error.log;
root /var/www/flarum/public;
index index.php;
include /var/www/flarum/.nginx.conf;
client_max_body_size 8M;
if ($host != "flarum.example.com") {
return 301 $scheme://flarum.example.com$request_uri;
}
# SSL code
ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
tcp_nopush on;
types_hash_max_size 2048;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
이 파일은 /var/www/flarum/public 디렉토리에 example.com을 호스팅할 것이라고 가정합니다. Flarum은 /var/www/flarum/.nginx.conf 파일에 기본 Nginx 설정을 포함하고 있으며, 이를 Nginx 구성에 포함했습니다.
작업이 끝나면 Ctrl + X를 눌러 편집기를 닫고, 프롬프트가 표시되면 Y를 눌러 파일을 저장합니다.
파일 /etc/nginx/nginx.conf를 편집을 위해 엽니다.
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf; 줄 앞에 다음 줄을 추가합니다.
server_names_hash_bucket_size 64;
Ctrl + X를 눌러 파일을 저장하고, 프롬프트가 표시되면 Y를 입력합니다. 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 서비스를 다시 로드합니다.
$ sudo systemctl reload nginx
11단계 - Flarum 설치에 접근하고 완료하기
브라우저에서 http://example.com을 열어 설치를 완료합니다.

위에서 생성한 데이터베이스 값을 입력합니다. 기본 접두사를 사용하려면 테이블 접두사 항목을 비워 두거나 fla_와 같은 사용자 지정 접두사를 입력할 수 있습니다. 사용자 이름, 강력한 비밀번호 및 이메일 ID를 선택하여 Flarum을 설치합니다.
Flarum 설치 버튼을 클릭하여 설치를 완료합니다.
설치가 완료되면 기본 Flarum 홈페이지가 표시됩니다.

이제 포럼이 설치되었으며 사용 준비가 완료되었습니다.
2FA 활성화
이중 인증은 모든 공개 포럼에 필수적인 기능입니다. Flarum은 기본적으로 이 기능을 제공하지 않지만, 동일한 기능을 위한 확장을 설치하여 활성화할 수 있습니다. 해당 확장은 Extiverse를 통해 사용할 수 있습니다. Extiverse는 Flarum 테마 및 플러그인의 비공식 저장소입니다.
플러그인을 설치하려면 먼저 Flarum 디렉토리로 전환합니다.
$ cd /var/www/flarum
Composer를 사용하여 플러그인을 설치합니다.
$ composer require ianm/twofactor:"*"
다음 단계는 Flarum 관리 패널에서 플러그인을 활성화하는 것입니다. 홈페이지 오른쪽 상단에서 이름을 클릭하고 드롭다운 메뉴에서 관리 링크를 클릭합니다.

관리 대시보드로 이동합니다. 왼쪽 메뉴에서 2FA 기능을 선택하고 활성화합니다. 기본 설정이 잘 작동하므로 아무것도 변경할 필요가 없습니다.

포럼의 중재자에게 2FA를 활성화하려면 Mods 버튼을 클릭하고 2FA 필수 설정을 활성화합니다. 변경 사항 저장 버튼을 클릭하여 완료합니다.

계정에 대해 2FA를 활성화하려면 포럼 홈페이지의 오른쪽 상단 메뉴에서 설정 페이지를 엽니다. 왼쪽 사이드바에서 보안 페이지를 선택합니다.

2FA 활성화 버튼을 클릭하면 다음 팝업이 열립니다.

QR 코드를 스캔하거나 2FA 앱을 사용하여 수동 옵션을 선택하고 생성된 코드를 입력합니다. 완료되면 확인 버튼을 클릭합니다. 백업 코드가 표시됩니다. 이를 저장하고 진행 버튼을 클릭합니다.

다시 확인을 요청받습니다. 진행하려면 확인 버튼을 클릭합니다. 이제 프로세스가 완료되었습니다.

이메일 설정 구성
관리 패널에서 이메일 설정도 구성해야 합니다. Flarum은 기본적으로 Mailgun SMTP 서비스를 지원하며, 외부 SMTP 공급자를 사용할 수도 있습니다.

우리는 Amazon SES 서비스를 사용하고 있으며, 이메일 페이지의 이메일 드라이버 드롭다운 메뉴에서 smtp를 선택했습니다. 변경 사항 저장 버튼을 클릭한 후 보내기 버튼을 클릭하여 테스트 이메일을 보냅니다. 페이지는 이메일이 성공적으로 전송되었는지 알립니다. 다음과 같은 이메일을 받아야 합니다.

Mailgun을 사용하려면 드롭다운 메뉴에서 mailgun을 선택하고 필수 필드를 입력한 후 설정을 저장합니다.

테스트 이메일을 보내기 전에 작동하도록 composer 패키지를 설치해야 합니다. 서버의 Flarum 디렉토리로 전환합니다.
$ cd /var/www/flarum
composer 패키지를 설치합니다.
$ composer require guzzlehttp/guzzle:^7.0
확인을 위해 테스트 이메일을 보냅니다.
결론
이로써 Debian 12 서버에 Flarum 커뮤니티 포럼 소프트웨어를 설치하는 튜토리얼이 마무리되었습니다. 질문이나 피드백이 있으면 아래 댓글로 남겨주세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.