CentOS7에서 APM + GNU Board 설치하기

SW·2023년 1월 12일

APM + GNU Board 설치하기 참고 : https://cafe.naver.com/linuxmasternet/60

GNU board 란 PHP로 만든 누구나 무료로 사용할 수 있는 공개 게시판이다.

GNU board를 설치하기 위해서는 APM 연동 설치를 해야 하며 이글에서는 LAMP(Linux+Apache+Php+Mysql)에 설치하고 GNU board를 설치하는 과정이다.

클라이언트/서버 환경의 통신 구조

아래 그림은 클라이언트가 서버와 통신하는 구조를 설명한 그림이다.

APM : Apache + PHP + MariaDB(MySQL)

APM의 실행 파일

A : /usr/sbin/httpd

P : /usr/bin/php

M : /usr/libexec/mysqld

CentOS 7 에서 APM을 설치하는 두 가지 방법중 하나를 사용한다.

첫 번째 방법 : 소스 설치 (장점 : 다양하게 설치가 가능하다. 단점 : 어렵다.)

두 번째 방법 : yum 설치 (장점 : 편리하다. 단점 : 입맛에 맞게 설치를 못한다.)

여기서는 두 번째 방법인 yum으로 설치하는 방법을 사용한다.

또한 PHP 버전을 7이나 8로 설치할 수도 있지만 여기서는 기본 저장소에 있는 5 버전을 설치하는 것으로 한다.

실습> APM + GNU Board 설치하기

1. APM 설치

[root@localhost ~]# yum -y install httpd php mariadb mariadb-server

[root@localhost ~]# systemctl enable httpd

[root@localhost ~]# systemctl enable mariadb

2. 설정파일 수정

apache 웹서버 설정

[root@localhost ~]# vi /etc/httpd/conf.d/php.conf

<FilesMatch .(php|html)$>

SetHandler application/x-httpd-php

DirectoryIndex index.php index.html

php 설정

211번 라인에 short_open_tag 를 On 으로 변경한다.

[root@localhost ~]# vi /etc/php.ini

short_open_tag = On

display_errors = On

mariadb 설정

utf-8 언어셋으로 설정한다.

[root@localhost ~]# vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

[root@localhost ~]# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

collation-server = utf8_general_ci

character-set-server = utf8

skip-character-set-client-handshake

:

:

3. GD 라이브러리 설치

[root@localhost ~]# yum -y install php-gd gd gd-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel freetype freetype-devel

4. DBMS 라이브러리 설치

[root@localhost ~]# yum -y install php-mysql

5. DBMS 시작

mariadb 를 시작한다.

[root@localhost ~]# systemctl start mariadb

6. DBMS 비번 설정

mysqladmin : MariaDB 관리 프로그램

mysqladmin 으로 비번 변경 형식 :

mysqladmin -u <사용자> -p<비밀번호> password <새로운비밀번호>

비밀번호와 새로운비밀번호는 생략한다.

mysql의 관리자(root) 비밀번호를 설정한다.

[root@localhost ~]# mysqladmin -u root -p password

Enter password: <-- 엔터

New password: <-- 111111

Confirm new password: <-- 111111

7. DataBase 생성

[root@localhost ~]# mysql -u root -p

Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 5

Server version: 5.5.68-MariaDB MariaDB Server

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)]> create database gnuboard;

Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> show databases;

5 rows in set (0.00 sec)

MariaDB [(none)]> quit

8. 웹서버 시작

/usr/sbin/httpd : 웹서버 실행파일

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl status httpd

방화벽을 중지시킨다.
[root@localhost ~]# systemctl stop firewalld

9. 웹페이지 생성

APM연동이 잘 되었는지 테스트 파일을 생성한다.

phpinfo() 함수 : APM 연동 정보를 출력하는 함수

[root@localhost ~]# cd /var/www/html

[root@localhost ~]# vi p.html

연동 확인 후 p.html 파일은 삭제한다.

[root@localhost ~]# rm -f p.html

10. 그누보드 다운로드

그누보드 : 공개형 무료 게시판

실제 운영 서버에서 git을 설치하지 말고 gnuboard를 winscp로 업로드하는

것이 좋다. 여기서는 테스트 서버이므로 git 패키지를 설치하고 git으로

gnuboard를 설치하는 것으로 한다.

[root@localhost ~]# cd /var/www/html

[root@localhost ~]# mkdir bbs

[root@localhost ~]# cd bbs

[root@localhost ~]# yum -y install git

[root@localhost ~]# git clone https://github.com/gnuboard/gnuboard5.git .

[root@localhost ~]# rm -rf .git .gitattributes .gitignore

data 디렉토리를 777 권한으로 생성한다.

웹 사용자가 DB접속 파일(dbconfig.php)들을 data 디렉터리에 저장하기 때문에

이 디렉터리를 일반유저가 write 할 수 있어야 한다.

이 디렉터리는 그누보드 설치가 완료된 후에 보안상 701로 변경해준다.

[root@localhost ~]# mkdir -m 777 data

[root@localhost ~]# ls -ld

drwxrwxrwx. 2 root root 6 1월 7 11:46 data

SELinux 를 잠시 중지한다.

실무에서는 중지하면 보안상 좋지않고 SELinux를 설정하는게 좋다.

[root@localhost ~]# setenforce 0

11. 그누보드 설치

이제 그누보드를 설치하기 위해서 http://웹서버IP주소/bbs/ 로 접근하면

아래와 같이 설치 화면이 나온다.

오른쪽 아래쪽에 그누보드5 설치하기 버튼을 클릭해서 그누보드를 설치한다.

데이터베이스 정보를 입력하고 다음을 클릭한다.

참고로 여기서는 연습이므로 DB 사용자를 관리자인 root 로 넣어주지만

실제 운영할 경우에는 보안상 root가 아닌 일반유저를 생성해서 넣어줘야

한다는 점을 꼭 기억해야한다.

설치가 완료되면 data 디렉터리를 701로 설정한다.

[root@localhost ~]# chmod -c 701 data

profile
정보보안 전문가

0개의 댓글