웹사이트 검색

Nginx로 MyBB 포럼을 설치하고 Debian 10에서 암호화하자


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. 1단계 - PHP 및 필수 PHP 확장 설치\n
  5. 2단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)\n
  6. 3단계 - MariaDB 설치 및 MyBB용 데이터베이스 만들기
  7. 4단계 - Nginx 설치 및 구성
  8. 5단계 - MyBB 설치
  9. 6단계 - MyBB 설정 완료

MyBB는 직관적이고 확장 가능한 무료 오픈 소스 포럼 프로그램입니다. MyBB는 새로운 기능이나 새로운 모습을 쉽게 추가할 수 있는 수백 개의 플러그인과 테마로 사용이 간편하고 확장 가능합니다.

MyBB 소스 코드는 GitHub에서 호스팅됩니다. 이 튜토리얼은 Debian 10(buster) 시스템에 MyBB 포럼 소프트웨어를 설치하는 방법을 보여줍니다.

요구 사항

MyBB 1.8 및 Merge System 1.8에는 몇 가지 최소 시스템 요구 사항이 있습니다.

  • PHP, 버전 5.2 이상. PHP 7.3을 적극 권장합니다.\n
  • MySQL 버전 5.0 이상, PostgreSQL 버전 8.1 이상 또는 SQLite 버전 3 이상. PostgreSQL 10.0 또는 MySQL 8.0을 적극 권장합니다.\n
  • Apache, Nginx, Lighttpd 또는 IIS 웹서버
  • 다음 PHP 확장도 필요합니다.\n
  • 심플XML\n
  • mbstring
  • gd
  • 각 공급업체별 데이터베이스 PHP 확장\n

참고: example.com의 모든 인스턴스를 도메인 이름으로 바꾸세요.

전제 조건

  • Debian 10(버스터) 운영체제입니다.
  • sudo 권한이 있는 루트가 아닌 사용자.\n

초기 단계

Debian 버전 확인:

lsb_release -ds
# Debian GNU/Linux 10 (buster)

시간대 설정:

sudo dpkg-reconfigure tzdata

운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 필수적인 첫 번째 단계입니다.

sudo apt update && sudo apt upgrade -y

Debian 운영 체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

1단계 - PHP 및 필수 PHP 확장 설치

PHP와 필수 PHP 확장을 설치합니다.

sudo apt install -y php php-cli php-fpm php-gd php-mbstring php-xml php-mysql php-pgsql

모듈로 컴파일된 PHP를 표시하려면 다음을 실행할 수 있습니다.

php -m

ctype
curl
exif
fileinfo
. . .
. . .

버전 확인:

php --version

# PHP 7.3.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

PHP-FPM 서비스는 Debian 10 시스템에서 재부팅 시 자동으로 시작되고 활성화되므로 수동으로 시작하고 활성화할 필요가 없습니다. 다음 단계로 넘어갈 수 있습니다.

2단계 - acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)

HTTPS로 포럼을 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 TLS 인증서를 얻기 위해 acme.sh 클라이언트를 사용합니다. Acme.sh는 종속성이 없는 Lets Encrypt에서 TLS 인증서를 얻기 위한 간단한 UNIX 셸 소프트웨어입니다.

acme.sh 다운로드 및 설치:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~

acme.sh 버전 확인:

acme.sh --version
# v2.8.2

도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:<br>

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

테스트를 위해 가짜 인증서를 원하는 경우 위 명령에 --staging 플래그를 추가할 수 있습니다.

위 명령을 실행하면 인증서가 다음 위치에 있게 됩니다.

  • RSA의 경우: /home/username/example.com 디렉토리.
  • ECC/ECDSA의 경우: /home/username/example.com_ecc 디렉터리.

발급된 인증서를 나열하려면 다음을 실행할 수 있습니다.

acme.sh --list

인증서를 저장할 디렉터리를 만듭니다. /etc/letsencrypt 디렉토리를 사용하겠습니다.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

인증서를 /etc/letsencrypt 디렉토리에 설치/복사합니다.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

모든 인증서는 60일마다 자동으로 갱신됩니다.

인증서를 얻은 후 루트 사용자에서 종료하고 일반 sudo 사용자로 돌아갑니다.

exit

3단계 - MariaDB 설치 및 MyBB용 데이터베이스 만들기

MariaDB 데이터베이스 서버 설치:

sudo apt install -y mariadb-server

MariaDB 버전을 확인합니다.

mysql --version
# mysql  Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

mysql_secure 설치 스크립트를 실행하여 MariaDB 보안을 개선하고 MariaDB root 사용자의 비밀번호를 설정합니다.

sudo mysql_secure_installation

각 질문에 답하십시오.

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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

루트 사용자로 MariaDB 셸에 연결합니다.

sudo mysql -u root -p
# Enter password

MyBB 포럼에 대한 빈 MariaDB 데이터베이스 및 사용자를 만들고 사용자 인증 정보를 기억합니다.

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;

MariaDB에서 종료:

mariadb> exit

dbname, usernamepassword를 자신의 이름으로 바꾸세요.

4단계 - Nginx 설치 및 구성

Debian 저장소에서 NGINX를 다운로드하고 설치합니다.

sudo apt install -y nginx

NGINX 버전 확인:

sudo nginx -v
# nginx version: nginx/1.14.2

Nginx를 구성합니다. sudo vim /etc/nginx/sites-available/mybb.conf를 실행하고 파일을 다음으로 채웁니다.

server {

listen 80;
listen 443 ssl;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name forum.example.com; root /var/www/mybb; location / { index index.php; } # Deny access to internal files. location ~ /(inc|uploads/avatars) { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

파일을 sites-enabled 디렉토리에 연결하여 새 mybb.conf 구성을 활성화합니다.

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

구문 오류에 대한 NGINX 구성 확인:

sudo nginx -t

Nginx를 다시 로드합니다.

sudo systemctl reload nginx.service

5단계 - MyBB 설치

문서 루트 디렉터리를 만듭니다.

sudo mkdir -p /var/www/mybb

MyBB의 최신 릴리스를 다운로드하고 압축을 풉니다.

cd /var/www/mybb
sudo wget https://resources.mybb.com/downloads/mybb_1821.zip
sudo unzip mybb_1821.zip
sudo mv /var/www/mybb/Upload/* /var/www/mybb

다운로드한 .zip 파일을 제거합니다.

sudo rm mybb_1821.zip
sudo rmdir Upload

/var/www/mybb 디렉토리의 소유권을 www-data:로 변경합니다.

sudo chown -R www-data:www-data /var/www/mybb

마지막 단계로 도메인을 열고 MyBB의 설치 마법사를 따릅니다. 설치 프로그램에 액세스하려면 웹 브라우저에서 사이트의 /install 디렉토리로 이동해야 합니다. 예를 들어 도메인이 example.com이고 루트 디렉토리에 MyBB 파일을 업로드한 경우 http://example.com/install로 이동합니다. MyBB 관리자에 액세스하려면 사이트 URL에 /admin을 추가하십시오. MyBB를 성공적으로 설치했습니다.

설치 후 다른 사람이 설치를 다시 실행하지 못하도록 서버에서 /install 디렉토리를 제거해야 합니다.

sudo rm -rf /var/www/mybb/install/

6단계 - MyBB 설정 완료

설치 프로그램에 액세스하려면 웹 브라우저에서 사이트의 install/ 디렉토리로 이동해야 합니다.

MyBB 설치 마법사를 열면 다음과 같은 페이지가 표시됩니다. 이 페이지에서 "다음"을 클릭하기만 하면 됩니다.

MyBB 라이선스를 확인하고 "다음"을 클릭합니다.

이 페이지는 서버가 MyBB 실행을 위한 요구 사항을 충족하는지 확인합니다. 그렇지 않은 경우 이 페이지에 알림이 표시됩니다. 모든 것이 올바르게 작동하면 이 페이지에서 "다음" 버튼을 클릭하기만 하면 됩니다.

이 페이지는 데이터베이스 구성을 위한 것입니다. 요청된 데이터베이스 세부 정보를 입력하고 "다음"을 클릭합니다.

이 단계에서는 데이터베이스 테이블이 삽입됩니다. 이 페이지에는 사용자 입력이 필요하지 않으므로 표시되면 "다음" 버튼을 클릭하세요.

이 단계에서는 위에서 만든 데이터베이스 테이블에 기본 데이터가 삽입됩니다. "다음"을 클릭합니다.

이 단계에서는 테마 데이터가 포럼에 로드됩니다. 이 페이지에서는 사용자 입력이 필요하지 않습니다. 표시되면 "다음" 버튼을 클릭합니다.

다음으로 포럼 이름, URL 등과 같은 기본 설정을 구성합니다.

MyBB 관리자 계정을 만듭니다. 이 계정에는 관리자 제어판의 모든 섹션에 대한 권한이 있습니다.

관리자 계정이 생성되면 "설정 완료" 페이지가 표시됩니다. 해당 페이지는 설치가 완료되었음을 보여줍니다.

관리 인터페이스에 액세스하려면 URL에 /admin을 추가하십시오.

MyBB 관리자는 다음과 같이 표시됩니다.

다음은 MyBB 프런트엔드의 스크린샷입니다.

축하합니다! MyBB를 성공적으로 설치했습니다.

연결

  • https://mybb.com
  • https://github.com/mybb/mybb