
북스택(BookStack API) 설치하기 1편
https://awesomepossum.tistory.com/480
북스택(BookStack API) 설치하기 for Window 1편
새해가 밝았다.개인위키를 만들자 > https://www.bookstackapp.com/ BookStackMulti-Lingual BookStack users can set their preferred language. Thanks to great community contributors, current languages built into BookStack include EN, FR, DE, ES,
awesomepossum.tistory.com
1편에 이어서 오늘은 2편이다.
2. 북스택 설치
2-5. 고유키 설정하기

터미널에 아래 명령어로 유니크 key 설정하기
php artisan key:generate
대신 이 명령어는 한 번만 입력해야 한다! 다중인증자격증명처럼 특정한 세부 정보를 암호화 하는 데 사용되는 중요한 키이기 때문에 이 명령을 재수행하면 큰 문제가 발생할 수 있다.

명령어 입력하고 엔터치면 끝이 아니고 yes / no 옵션이 뜨기 때문에 이것까지 yes를 입력해서 진행을 해야 한다.

만약 위 과정이 잘 적용된거라면 bookstack 폴더의 `.env` 파일을 메모장으로 열어서 확인 해 볼 수 있다.
APP_KEY 부분에 상당히 긴 랜덤키가 생성되어 있으면 성공이다. 이 키와 키가 담긴 .env 파일은 절대 누구와도 공유해서는 안 된다. 그리고 이 파일은 복사본도 만들어서 별도로 보관하는 것이 좋다. 설정을 다른 곳으로 옮기거나 복원할 때 필요할 수 있다.

2-6. 우리가 Apache를 사용하지 않는 경우 설정

나는 Apache를 이용하고 있기 때문에 이 단계는 스킵
2-7. 웹 루트를 BookStack public 로 설정하기



Apache 폴더가 팝업으로 뜨는데 안에 conf > extra 폴더로 가자
아래 `httpd-vhosts.conf` 파일을 메모장으로 열기


BookStack Installation 웹사이트로 돌아와서 Example Apache VirtualHost configuration 열기


소스를 `httpd-vhosts.conf` 파일 최하단에 붙여넣는다.
하지만 이 소스는 리눅스 사용자용이므로 Window에서는 수정을 해 줄 필요가 있다.
<VirtualHost *:80>
# This is a simple example of an Apache VirtualHost configuration
# file that could be used with BookStack.
# This assumes mod_php has been installed and is loaded.
#
# Change the "docs.example.com" usage in the "ServerName" directive
# to be your web domain for BookStack.
#
# Change the "/var/www/bookstack/public/", used twice below, to the
# location of the "public" folder within your BookStack installation.
#
# This configuration is only for HTTP, Not HTTPS.
# For HTTPS we recommend using https://certbot.eff.org/
ServerName docs.example.com
DocumentRoot /var/www/bookstack/public/
<Directory /var/www/bookstack/public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
** 포트번호 수정
<VirtualHost *:8080>
bookstack은 다른 포트 번호에 두어서 Apache와 phpMyAdmin이랑 충돌 방지
** 서버이름 수정
ServerName localhost
로컬호스트로 수정
** 루트 폴더 수정
DocumentRoot "C:\xampp\htdocs\bookstack\public"
내 PC의 bookstack\public 폴더로 연결
** 아래 태그도 같은 주소로 수정하기
반드시 큰따옴표 안에 넣자
<Directory "C:\xampp\htdocs\bookstack\public">
이렇게 변경 후 저장한다.
XAMPP에서 Apache 서버 Stop 후 Start

에러 발생
다시 httpd-vhosts.conf 파일을 열고 맨 하단에 있는 아래 코드 수정해주기

표현식 지우고 그냥 logs 입력

다시 에러가 발생했다.
httpd-vhosts.conf 에서 오타 찾기 작업
<Directory "DocumentRoot "C:\xampp\htdocs\bookstack\public"> 이 부분이 잘못됨
<Directory "C:\xampp\htdocs\bookstack\public"> 로 수정하고 재실행
이제 서버 잘 돌아간다

2-8. 데이터베이스 마이그레이션

php artisan migrate 명령어로 데이터베이스 마이그레이션을 수행하는 절차이다. 데이터베이스 스키마를 업데이트하거나 변경하는 작업이고 이 명령어를 실행하면, database/migrations 디렉토리에 있는 마이그레이션 파일들이 DB에 적용된다.
터미널에 아래 명령어 복붙하고 yes 입력하기
php artisan migrate

이제 phpMyAdmin 가 보면 DB에 테이블 구조가 생성된 걸 확인할 수 있다.

2-9. 관리자 계정으로 로그인

드디어 마지막 단계
성공적으로 설치가 완료됨!
이제 기본 관리자 계정(admin@admin.com)과 비밀번호(password)를 사용하여 로그인할 수 있고 보안을 위해 첫 번째 로그인 후에는 비밀번호를 변경해야 한다는 안내이다.
`httpd-vhosts.conf` 열고 `Listen 8080` 추가

C:\xampp\htdocs\bookstack 에서`env` 열고 APP_URL 수정하기

아래처럼 수정하고 저장
APP_URL=http://localhost
이제 주소창에 아래 주소 입력하면
http://localhost:8080
http://localhost:8080/login 이렇게 로그인 페이지로 리디렉션 된다.


드디어 그럴싸한데?

Test


일단 오늘은 여기까지!
'ETC_Software' 카테고리의 다른 글
[개발 관련 용어] 이걸 이렇게 읽는거였어? 프로그래밍 용어 발음 정리 (20) | 2025.01.07 |
---|---|
WSL와 Docker(도커) 설치하기 for Window (6) | 2025.01.05 |
북스택(BookStack API) 설치하기 for Window 1편 (50) | 2025.01.02 |
[React] 리액트 설치 npm install 실패 해결법 (42) | 2025.01.01 |
JSON vs XML, JSON 배열 (48) | 2024.12.26 |

북스택(BookStack API) 설치하기 1편
https://awesomepossum.tistory.com/480
북스택(BookStack API) 설치하기 for Window 1편
새해가 밝았다.개인위키를 만들자 > https://www.bookstackapp.com/ BookStackMulti-Lingual BookStack users can set their preferred language. Thanks to great community contributors, current languages built into BookStack include EN, FR, DE, ES,
awesomepossum.tistory.com
1편에 이어서 오늘은 2편이다.
2. 북스택 설치
2-5. 고유키 설정하기

터미널에 아래 명령어로 유니크 key 설정하기
php artisan key:generate
대신 이 명령어는 한 번만 입력해야 한다! 다중인증자격증명처럼 특정한 세부 정보를 암호화 하는 데 사용되는 중요한 키이기 때문에 이 명령을 재수행하면 큰 문제가 발생할 수 있다.

명령어 입력하고 엔터치면 끝이 아니고 yes / no 옵션이 뜨기 때문에 이것까지 yes를 입력해서 진행을 해야 한다.

만약 위 과정이 잘 적용된거라면 bookstack 폴더의 .env
파일을 메모장으로 열어서 확인 해 볼 수 있다.
APP_KEY 부분에 상당히 긴 랜덤키가 생성되어 있으면 성공이다. 이 키와 키가 담긴 .env 파일은 절대 누구와도 공유해서는 안 된다. 그리고 이 파일은 복사본도 만들어서 별도로 보관하는 것이 좋다. 설정을 다른 곳으로 옮기거나 복원할 때 필요할 수 있다.

2-6. 우리가 Apache를 사용하지 않는 경우 설정

나는 Apache를 이용하고 있기 때문에 이 단계는 스킵
2-7. 웹 루트를 BookStack public 로 설정하기



Apache 폴더가 팝업으로 뜨는데 안에 conf > extra 폴더로 가자
아래 httpd-vhosts.conf
파일을 메모장으로 열기


BookStack Installation 웹사이트로 돌아와서 Example Apache VirtualHost configuration 열기


소스를 httpd-vhosts.conf
파일 최하단에 붙여넣는다.
하지만 이 소스는 리눅스 사용자용이므로 Window에서는 수정을 해 줄 필요가 있다.
<VirtualHost *:80> # This is a simple example of an Apache VirtualHost configuration # file that could be used with BookStack. # This assumes mod_php has been installed and is loaded. # # Change the "docs.example.com" usage in the "ServerName" directive # to be your web domain for BookStack. # # Change the "/var/www/bookstack/public/", used twice below, to the # location of the "public" folder within your BookStack installation. # # This configuration is only for HTTP, Not HTTPS. # For HTTPS we recommend using https://certbot.eff.org/ ServerName docs.example.com DocumentRoot /var/www/bookstack/public/ <Directory /var/www/bookstack/public/> Options Indexes FollowSymLinks AllowOverride None Require all granted <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
** 포트번호 수정
<VirtualHost *:8080>
bookstack은 다른 포트 번호에 두어서 Apache와 phpMyAdmin이랑 충돌 방지
** 서버이름 수정
ServerName localhost
로컬호스트로 수정
** 루트 폴더 수정
DocumentRoot "C:\xampp\htdocs\bookstack\public"
내 PC의 bookstack\public 폴더로 연결
** 아래 태그도 같은 주소로 수정하기
반드시 큰따옴표 안에 넣자
<Directory "C:\xampp\htdocs\bookstack\public">
이렇게 변경 후 저장한다.
XAMPP에서 Apache 서버 Stop 후 Start

에러 발생
다시 httpd-vhosts.conf 파일을 열고 맨 하단에 있는 아래 코드 수정해주기

표현식 지우고 그냥 logs 입력

다시 에러가 발생했다.
httpd-vhosts.conf 에서 오타 찾기 작업
<Directory "DocumentRoot "C:\xampp\htdocs\bookstack\public"> 이 부분이 잘못됨
<Directory "C:\xampp\htdocs\bookstack\public"> 로 수정하고 재실행
이제 서버 잘 돌아간다

2-8. 데이터베이스 마이그레이션

php artisan migrate 명령어로 데이터베이스 마이그레이션을 수행하는 절차이다. 데이터베이스 스키마를 업데이트하거나 변경하는 작업이고 이 명령어를 실행하면, database/migrations 디렉토리에 있는 마이그레이션 파일들이 DB에 적용된다.
터미널에 아래 명령어 복붙하고 yes 입력하기
php artisan migrate

이제 phpMyAdmin 가 보면 DB에 테이블 구조가 생성된 걸 확인할 수 있다.

2-9. 관리자 계정으로 로그인

드디어 마지막 단계
성공적으로 설치가 완료됨!
이제 기본 관리자 계정(admin@admin.com)과 비밀번호(password)를 사용하여 로그인할 수 있고 보안을 위해 첫 번째 로그인 후에는 비밀번호를 변경해야 한다는 안내이다.
httpd-vhosts.conf
열고 Listen 8080
추가

C:\xampp\htdocs\bookstack 에서env
열고 APP_URL 수정하기

아래처럼 수정하고 저장
APP_URL=http://localhost
이제 주소창에 아래 주소 입력하면
http://localhost:8080
http://localhost:8080/login 이렇게 로그인 페이지로 리디렉션 된다.


드디어 그럴싸한데?

Test


일단 오늘은 여기까지!
'ETC_Software' 카테고리의 다른 글
[개발 관련 용어] 이걸 이렇게 읽는거였어? 프로그래밍 용어 발음 정리 (20) | 2025.01.07 |
---|---|
WSL와 Docker(도커) 설치하기 for Window (6) | 2025.01.05 |
북스택(BookStack API) 설치하기 for Window 1편 (50) | 2025.01.02 |
[React] 리액트 설치 npm install 실패 해결법 (42) | 2025.01.01 |
JSON vs XML, JSON 배열 (48) | 2024.12.26 |