설치 가이드 · 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
- 루트 권한
우리가 할 일
- EPEL 리포지토리 설치
- Nginx 설치
- PHP-FPM 설치 및 구성
- MySQL/MariaDB 설치 및 구성
- PHP Composer 설치
- BookStack 설치
- Nginx 가상 호스트 BookStack 구성
- 테스트
1단계 - EPEL 리포지토리 설치
시스템에 새로운 서드파티 리포지토리를 추가합니다. Nginx 및 기타 패키지를 설치할 수 있도록 CentOS 7 시스템에 EPEL (Enterprise Linux용 추가 패키지) 리포지토리를 추가해야 합니다.
아래의 yum 명령어를 사용하여 EPEL 리포지토리를 설치합니다.
sudo yum -y install epel-release2단계 - 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 서비스에서 사용되고 있는지 확인합니다.

이제 CentOS 7 시스템에 Nginx 웹 서버가 설치되었습니다.
추가: 시스템에서 firewalld를 실행 중인 경우 아래 명령어를 실행하여 구성에 새로운 HTTP 서비스를 추가합니다.
firewall-cmd --add-service=http --permanent
firewall-cmd --reload3단계 - 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.confPHP-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
새 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;
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가 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오류가 없고 완료되면 아래와 같은 결과를 확인할 수 있습니다.

이제 환경 구성 파일 ‘.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 키를 누릅니다.

테이블 마이그레이션이 성공할 때까지 기다립니다.
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 nginxBookStack 애플리케이션에 대한 Nginx 가상 호스트가 생성되고 활성화되었습니다.

8단계 - 테스트
웹 브라우저를 열고 주소 표시줄에 BookStack URL을 입력합니다. 제 URL은: http://book.hakase-labs.co/
그리고 아래와 같이 ‘login/‘ 페이지로 리디렉션됩니다.

기본 관리자 사용자 ‘[email protected]’와 비밀번호 ‘password’를 입력한 후 ‘로그인’ 버튼을 누릅니다.
BookStack 사용자 대시보드를 확인할 수 있습니다.

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

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

그런 다음 ‘저장’ 버튼을 클릭합니다.
CentOS 7에서 LEMP (Linux, Nginx, MariaDB 및 PHP-FPM) 스택으로 BookStack 설치가 성공적으로 완료되었습니다.
참고
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.