웹사이트 검색

CentOS 7에서 Nginx로 Phorum을 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. 1단계 - PHP 설치
  5. 2단계 - MariaDB 설치 및 데이터베이스 만들기
  6. 3단계 - acme.sh 클라이언트를 설치하고 Let">을 얻습니다.\n
  7. 4단계 - NGINX 설치 및 구성
  8. 4단계 - Phorum 설치

Phorum은 PHP 및 MySQL 기반 오픈 소스 포럼 소프트웨어입니다. 이 가이드에서는 Nginx를 웹 서버로, MariaDB를 데이터베이스로, acme.sh 및 Lets Encrypt for HTTPS를 사용하여 CentOS 7 운영 체제에서 Phorum 설치 프로세스를 단계별로 안내합니다.

요구 사항

Phorum을 실행하기 위한 요구 사항은 다음과 같습니다.

  • 엔진엑스
  • PHP 버전 5.2 이상
  • MySQL/MariaDB 버전 5.0 이상

전제 조건

  • CentOS 7 운영 체제.
  • sudo 권한이 있는 루트가 아닌 사용자.\n

초기 단계

CentOS 버전 확인:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

시간대 설정:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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

sudo yum update -y

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

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

1단계 - PHP 설치

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

sudo yum install -y php php-cli php-fpm php-common php-mysql

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

php -m

ctype
curl
exif
fileinfo
. . .
. . .

PHP 버전 확인:

php --version

# PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.10-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

PHP-FPM 서비스 시작 및 활성화:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

2단계 - MariaDB 설치 및 데이터베이스 만들기

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

sudo yum install -y mariadb-server

MariaDB 버전 확인:

mysql --version

MariaDB 서비스 시작 및 활성화:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

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

빈 MariaDB 데이터베이스 및 사용자를 만들고 사용자 인증 정보를 기억하세요.

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

MariaDB에서 종료:

MariaDB> exit

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

3단계 - 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.0

도메인/호스트 이름에 대한 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

4단계 - NGINX 설치 및 구성

NGINX 설치:

sudo yum install -y nginx

NGINX 버전 확인:

sudo nginx -v
# nginx version: nginx/1.12.2

Nginx 서비스 시작 및 사용 설정:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Phorum용 NGINX를 구성합니다. sudo vim /etc/nginx/conf.d/phorum.conf를 실행하고 다음 구성을 추가합니다.

server {
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/phorum;
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;
index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } }

NGINX 구성에서 구문 오류를 확인하세요.

sudo nginx -t

NGINX 서비스 다시 로드:

sudo systemctl reload nginx.service

4단계 - Phorum 설치

Phorum에 대한 문서 루트 디렉토리를 만듭니다.

sudo mkdir -p /var/www/phorum

/var/www/phorum 디렉토리의 소유권을 [jour_user]:로 변경합니다.

sudo chown -R [your_user]:[your_user] /var/www/phorum

문서 루트 디렉토리로 이동합니다.

cd /var/www/phorum

공식 웹사이트에서 안정적인 최신 Phorum 배포판을 다운로드합니다.

wget https://www.phorum.org/downloads/phorum-5.2.23.tar.gz

다운로드한 아카이브의 압축을 풀고 파일을 문서 루트로 이동합니다.

tar xvzf phorum-5.2.23.tar.gz
rm phorum-5.2.23.tar.gz
mv Core-phorum_5_2_23/* . && mv Core-phorum_5_2_23/.* .
rmdir Core-phorum_5_2_23

데이터베이스 액세스를 구성합니다.

cp include/db/config.php.sample include/db/config.php

include/db/config.php 파일을 편집하여 데이터베이스 설정을 구성합니다.

vim include/db/config.php

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

sudo chown -R nginx:nginx /var/www/phorum

sudo vim /etc/php-fpm.d/www.conf를 실행하고 사용자 및 그룹을 nginx:로 설정합니다.

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

PHP-FPM 서비스를 다시 시작합니다.

sudo systemctl restart php-fpm.service

설치를 완료하려면 웹 브라우저에서 http://forum.example.com/admin.php를 방문하여 웹 기반 설치 프로그램을 실행하세요.