설치 가이드 · 6 min read · Dec 08, 2025

CentOS 7에 BookStack 문서 위키 설치하는 방법

BookStack은 프로젝트를 위한 문서/위키 콘텐츠를 생성하기 위한 오픈 소스 플랫폼입니다. PHP 프로그래밍 언어로 작성되었으며 Laravel 웹 프레임워크를 사용합니다. 기본적으로 프로젝트 문서/위키는 BookStack에 ‘책’으로 저장되며, 그 뒤에 ‘장’과 ‘페이지‘가 이어집니다. 이는 장과 페이지를 기반으로 문서를 책으로 작성하고 읽는 것을 더 쉽게 만들어 줍니다.

이 튜토리얼에서는 LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB) 스택 하에 CentOS 7에서 BookStack을 설치하고 구성하는 방법을 단계별로 보여드리겠습니다. 이 튜토리얼에서는 PHP Composer 설치 및 명령줄을 사용한 MySQL 데이터베이스 생성과 같은 주제를 다룰 것입니다.

필수 조건

  • CentOS 7
  • 루트 권한

우리가 할 일

  1. EPEL 리포지토리 설치
  2. Nginx 설치
  3. PHP-FPM 설치 및 구성
  4. MySQL/MariaDB 설치 및 구성
  5. PHP Composer 설치
  6. BookStack 설치
  7. Nginx 가상 호스트 BookStack 구성
  8. 테스트

1단계 - EPEL 리포지토리 설치

시스템에 새로운 서드파티 리포지토리를 추가합니다. Nginx 및 기타 패키지를 설치할 수 있도록 CentOS 7 시스템에 EPEL (Enterprise Linux용 추가 패키지) 리포지토리를 추가해야 합니다.

아래의 yum 명령어를 사용하여 EPEL 리포지토리를 설치합니다.

sudo yum -y install epel-release

2단계 - CentOS 7에 Nginx 설치

이 튜토리얼에서는 LEMP 스택 하에 ‘BookStack’ 플랫폼을 실행할 것이며, EPEL 리포지토리에서 Nginx 웹 서버를 설치할 것입니다.

아래의 yum 명령어를 사용하여 Nginx 웹 서버를 설치합니다.

sudo yum -y install nginx

설치가 완료되면 서비스를 시작하고 시스템 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start nginx  
systemctl enable nginx

이제 netstat 명령어를 사용하여 확인합니다.

netstat -plntu

목록에서 포트 80이 표시되고 Nginx 서비스에서 사용되고 있는지 확인합니다.

Nginx 설치

이제 CentOS 7 시스템에 Nginx 웹 서버가 설치되었습니다.

추가: 시스템에서 firewalld를 실행 중인 경우 아래 명령어를 실행하여 구성에 새로운 HTTP 서비스를 추가합니다.

firewall-cmd --add-service=http --permanent  
firewall-cmd --reload

3단계 - PHP 및 PHP-FPM 설치

이 단계에서는 PHP-FPM 7.0을 설치하고 구성합니다. ‘BookStack’ 플랫폼에 필요한 몇 가지 확장 기능을 포함하여 ‘webtatic’ 리포지토리에서 PHP 및 PHP-FPM을 설치합니다. 여기에는 PDO, Tokenizer, GD, Tidy, MBString 및 OpenSSL이 포함됩니다.

PHP 및 PHP-FPM을 설치하기 전에 아래의 rpm 명령어를 사용하여 CentOS 7 시스템에 새로운 ‘webtatic’ 리포지토리를 추가합니다.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

이제 아래의 yum 명령어를 사용하여 필요한 모든 확장 기능과 함께 PHP 및 PHP-FPM을 설치합니다.

sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl

설치가 완료되면 ‘php.ini’ 구성 파일을 편집하고 php-fpm 풀 구성 ‘www.conf’를 편집해야 합니다.

vim 편집기를 사용하여 ‘php.ini’ 구성 파일을 편집합니다.

vim /etc/php.ini

‘cgi.fix_pathinfo’ 줄의 주석을 제거하고 값을 ‘0’으로 변경합니다.

cgi.fix_pathinfo=0

저장하고 종료합니다.

다음으로 풀 구성 파일 ‘www.conf’를 편집합니다.

vim /etc/php-fpm.d/www.conf

PHP-FPM 서비스를 실행할 기본 사용자를 ‘nginx’ 사용자 및 그룹으로 변경합니다.

user = nginx  
group = nginx

‘listen’ 줄에서 값을 아래와 같이 sock 파일로 변경합니다. PHP-fpm을 sock 파일 아래에서 실행할 것입니다.

listen = /var/run/php-fpm/php-fpm.sock

이제 소켓 권한 및 소유자 구성을 위해 이러한 줄의 주석을 제거하고 값을 아래와 같이 변경합니다.

listen.owner = nginx  
 listen.group = nginx  
 listen.mode = 0660

마지막으로 PHP-FPM 환경의 주석을 제거합니다.

env[HOSTNAME] = $HOSTNAME  
env[PATH] = /usr/local/bin:/usr/bin:/bin  
env[TMP] = /tmp  
env[TMPDIR] = /tmp  
env[TEMP] = /tmp

저장하고 종료합니다.

구성이 완료되면 PHP-FPM 서비스를 시작하고 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start php-fpm  
systemctl enable php-fpm

이제 netstat 명령어를 사용하여 확인합니다.

netstat -pl | grep php

그리고 PHP-FPM sock 파일이 있는지 확인합니다.

‘BookStack’ 플랫폼에 필요한 모든 확장 기능과 함께 PHP 및 PHP-FPM 7.0이 CentOS 7 시스템에 설치되었습니다.

4단계 - MySQL/MariaDB 설치 및 구성

BookStack은 MySQL 데이터베이스만 지원하며 MySQL 버전 >= 5.6에서만 실행됩니다. 이 튜토리얼에서는 Ubuntu 리포지토리에서 설치할 수 있는 최신 버전의 MariaDB를 사용할 것입니다.

아래의 yum 명령어를 실행하여 MariaDB 데이터베이스를 설치합니다.

yum install -y mariadb mariadb-server

설치가 완료되면 서비스를 시작하고 부팅 시마다 자동으로 시작되도록 설정합니다.

systemctl start mariadb  
systemctl enable mariadb

이제 데이터베이스의 ‘root’ 비밀번호를 구성해야 합니다.

아래 명령어를 실행하여 ‘root’ 데이터베이스 비밀번호를 설정합니다.

mysql_secure_installation

MariaDB 구성

새 MySQL root 비밀번호를 입력하라는 메시지가 표시됩니다. root 사용자 비밀번호를 입력하고 Enter 키를 누릅니다. 나머지 항목은 ‘Y’를 입력하고 Enter 키를 다시 누릅니다.

Set root password? [Y/n] Y  
 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

이제 MySQL root 비밀번호가 설정되었습니다.

다음으로 BookStack 설치를 위한 새로운 MySQL 데이터베이스를 생성해야 합니다. ‘bookstackdb’라는 이름의 새로운 데이터베이스를 사용자 ‘bookstak’와 비밀번호 ‘bookstack@’로 생성할 것입니다.

root 사용자로 MySQL 셸에 로그인합니다.

mysql -u root -p

셸에서 아래의 모든 MySQL 쿼리를 실행합니다.

create database bookstackdb;  
create user bookstack@localhost identified by 'bookstack@';  
grant all privileges on bookstackdb.* to bookstack@localhost identified by 'bookstack@';  
flush privileges;  
exit;

BookStack용 MariaDB에서 데이터베이스 생성

MySQL/MariaDB가 CentOS 7 시스템에 설치되었으며 ‘BookStack’ 설치를 위한 데이터베이스가 생성되었습니다.

5단계 - CentOS 7에 PHP Composer 설치

Composer는 PHP의 종속성 관리자입니다. 프로젝트에 필요한 PHP 종속성을 관리할 수 있게 해줍니다. 이 단계에서는 설치 스크립트를 사용하여 Composer를 설치합니다. Composer는 ‘BookStack’에 필요한 모든 PHP 라이브러리를 다운로드하는 데 사용됩니다.

홈 디렉토리로 이동하여 curl을 사용하여 설치 프로그램을 다운로드합니다.

cd ~/  
curl -sS https://getcomposer.org/installer | php

그리고 홈 디렉토리에 ‘composer.phar’ 파일이 생성됩니다. 이 파일을 ‘/usr/bin’ 디렉토리로 이동하고 아래와 같이 ‘composer’ 명령어를 시도합니다.

mv composer.phar /usr/bin/composer  
composer -v

그리고 시스템에 설치된 composer 버전을 확인할 수 있습니다.

PHP Composer 설치

이제 PHP Composer가 CentOS 7 시스템에 설치되었습니다.

6단계 - CentOS 7에 BookStack 설치

이 단계에서는 ‘/var/www’ 디렉토리 아래에 BookStack을 설치할 것입니다. 해당 디렉토리는 루트 애플리케이션 디렉토리가 됩니다.

‘BookStack’을 설치하기 전에 시스템에 git을 설치합니다.

yum -y install git

이제 새로운 ‘/var/www’ 디렉토리를 생성합니다.

mkdir -p /var/www

해당 디렉토리로 이동하여 git 명령어를 사용하여 BookStack 소스 코드를 클론합니다.

cd /var/www  
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

‘BookStack/‘ 디렉토리로 이동하여 아래와 같이 composer 명령어를 사용하여 필요한 모든 PHP 종속성을 설치합니다.

cd BookStack/  
composer install

오류가 없고 완료되면 아래와 같은 결과를 확인할 수 있습니다.

Composer로 BookStack 설치

이제 환경 구성 파일 ‘.env.example’을 복사하고 vim을 사용하여 편집합니다.

cp .env.example .env  
vim .env

데이터베이스 세부 정보 줄에서 아래와 같이 데이터베이스 정보를 모두 변경합니다.

# 데이터베이스 세부 정보  
 DB_HOST=localhost  
 DB_DATABASE=bookstackdb  
 DB_USERNAME=bookstack  
 DB_PASSWORD=bookstack@

저장하고 종료합니다.

그리고 ‘BookStack’ 디렉토리의 소유권을 ‘nginx’ 사용자 및 그룹으로 변경합니다.

chown -R nginx:nginx /var/www/BookStack

다음으로 BookStack에 대한 고유한 애플리케이션 키를 생성하고 PHP artisan 명령어를 사용하여 데이터베이스 스키마를 업데이트해야 합니다.

루트 애플리케이션 디렉토리 ‘/var/www/BookStack’에서 아래 명령어를 실행합니다.

php artisan key:generate  
php artisan migrate

확인을 요청받으면 ‘yes’를 입력하고 Enter 키를 누릅니다.

PHP artisan

테이블 마이그레이션이 성공할 때까지 기다립니다.

BookStack 애플리케이션이 설치되었으며, 고유한 비밀 키 애플리케이션이 생성되고 BookStack에 대한 데이터베이스 스키마가 업데이트되었습니다.

7단계 - BookStack에 대한 Nginx 가상 호스트 구성

이 단계에서는 BookStack에 대한 nginx 가상 호스트를 구성합니다. ‘book.hakase-labs.co’를 BookStack URL의 도메인 이름으로 사용할 것입니다.

‘/etc/nginx’ 디렉토리로 이동하여 vim 편집기를 사용하여 ‘conf.d/‘ 디렉토리 아래에 새로운 가상 호스트 파일 ‘bookstack.conf’를 생성합니다.

cd /etc/nginx  
vim conf.d/bookstack.conf

아래 구성을 붙여넣습니다.

server {  
   listen 80;  
   server_name book.hakase-labs.co;  
   root /var/www/BookStack/public;  
   
   access_log  /var/log/nginx/bookstack_access.log;  
   error_log  /var/log/nginx/bookstack_error.log;  
   
   client_max_body_size 1G;  
   fastcgi_buffers 64 4K;  
   
   index  index.php;  
   
   location / {  
     try_files $uri $uri/ /index.php?$query_string;  
   }  
   
   location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {  
     deny all;  
   }  
   
   location ~ \.php(?:$|/) {  
     fastcgi_split_path_info ^(.+\.php)(/.+)$;  
     include fastcgi_params;  
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
     fastcgi_param PATH_INFO $fastcgi_path_info;  
     fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  
   }  
   
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {  
     expires 30d;  
     access_log off;  
   }  
 }

저장하고 종료합니다.

이제 nginx 구성을 테스트하고 오류가 없는지 확인한 후 nginx 서비스를 재시작합니다.

ginx -t  
systemctl restart nginx

BookStack 애플리케이션에 대한 Nginx 가상 호스트가 생성되고 활성화되었습니다.

Nginx 가상 호스트 구성

8단계 - 테스트

웹 브라우저를 열고 주소 표시줄에 BookStack URL을 입력합니다. 제 URL은: http://book.hakase-labs.co/

그리고 아래와 같이 ‘login/‘ 페이지로 리디렉션됩니다.

BookStack 로그인

기본 관리자 사용자 ‘[email protected]’와 비밀번호 ‘password’를 입력한 후 ‘로그인’ 버튼을 누릅니다.

BookStack 사용자 대시보드를 확인할 수 있습니다.

대시보드

‘설정’ 메뉴를 클릭하면 설정 페이지로 이동합니다.

설정

이제 ‘사용자’를 클릭한 후 ‘관리자’ 사용자를 클릭합니다. 기본 이메일을 자신의 이메일 주소로 변경하고 비밀번호를 자신의 비밀 비밀번호로 변경합니다.

BookStack 사용자

그런 다음 ‘저장’ 버튼을 클릭합니다.

CentOS 7에서 LEMP (Linux, Nginx, MariaDB 및 PHP-FPM) 스택으로 BookStack 설치가 성공적으로 완료되었습니다.

참고

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.