새해가 밝았다.
개인위키를 만들자 ><

BookStack
Multi-Lingual BookStack users can set their preferred language. Thanks to great community contributors, current languages built into BookStack include EN, FR, DE, ES, IT, JA, NL, PL, RU and many more. Integrated Authentication As well as the default email/
www.bookstackapp.com
준비물
⭐ XAMPP Control Panel
https://www.apachefriends.org/download.html
Download XAMPP
Includes: Apache 2.4.58, MariaDB 10.4.32, PHP 8.0.30 & PEAR + SQLite 2.8.17/3.38.5 + multibyte (mbstring) support, Perl 5.34.1, ProFTPD 1.3.6, phpMyAdmin 5.2.1, OpenSSL 1.1.1w, GD 2.2.5, Freetype2 2.4.8, libpng 1.6.37, gdbm 1.8.3, zlib 1.2.11, expat 2.0.1,
www.apachefriends.org
⭐PHP Composer
https://getcomposer.org/download/
Composer
Download Composer Latest: v2.8.4 To quickly install Composer in the current directory, run the following script in your terminal. To automate the installation, use the guide on installing Composer programmatically. php -r "copy('https://getcomposer.org/ins
getcomposer.org
Composer-Setup.exe 다운로드 하고 setup 에서 Apache, MySQL, PHP, PHPMyAdmin 이렇게만 체크
⭐MySQL 또는 MariaDB
⭐Git Version Control
1. XAMPP 테스트

1-1. Apache
웹서버 시작할 수 있는지 테스트하기
Apache Start 클릭하고 브라우저에서 주소창에 localhost 입력
아래처럼 뜨면 Apache 가 우리의 요청에 잘 응답하고 있는 것

1-2. phpMyAdmin
다시 XAMPP 로 돌아와서 MySQL 스타트

브라우저로 가서 상단 탭에서 phpMyAdmin 클릭

아래와 같은 화면이 뜨면 성공
이제 여기서 DB 제어를 할 수 있다.

2. BookStack 설치
htdocs에 BookStack 연결하기

Apache 웹 서버는 기본적으로 htdocs 디렉토리를 웹사이트의 루트 디렉토리로 사용한다.
여기서 웹 컨텐츠를 저장하고 제공하기 때문에 BookStack API를 이 위치로 연결해 줄것이다.
참고로 현재 Xampp를 `C:\xampp` 위치로 설치했는데 여기 가면 htdocs 폴더가 있다.
Shell 클릭

아래 명령어로 현재 위치를 htdocs로 바꾸기
# cd htdocs

https://www.bookstackapp.com/docs/admin/installation/#requirements
Installation · BookStack
Installation Below you can find details on how to install BookStack on your own hosting. There are a number of installation options available depending on your setup. The install process will require some knowledge of hosting a PHP web application & databa
www.bookstackapp.com
이제 북스택 Installation 웹사이트 가서 아래 작업을 순서대로 진행해 준다.

2-1. BookStack GitHub 저장소의 릴리즈 브랜치를 폴더에 클론하기
여기 있는 코드를 복사해준다.

git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
그리고 XAMPP Shell 에 붙여넣기 하면 된다.

htdocs 폴더를 열고 BookStack 이 설치되어 있으면 성공이다.

폴더명 소문자로 바꿔주기
이렇게 해야 명령어 입력할 때 헷갈리지 않고 편하다.

2-2. 애플리케이션 폴더로 이동한 후, composer install --no-dev 명령 실행

다시 Shell 로 가서
# cd bookstack

그리고 아래 명령어를 Shell 에 붙여넣기
composer install --no-dev

에러 남
Problem 1
- Root composer.json requires PHP extension ext-gd * but it is missing from your system. Install or enable PHP's gd extension.
PHP 프로젝트에서 ext-gd 확장이 필요하다고 함
현재 시스템에 이 확장이 설치되어 있지 않거나 비활성화되어 있음.
gd 활성화 시키는 법

XAMPP로 와서 Apache > Config > PHP(php.ini) 가면 메모장이 뜬다
여기서 스크롤을 쭉 내리면 확장 기능을 활성화 할 수 있는 목록이 뜬다.
;는 PHP 설정 파일에서 주석(comment)이다.
PHP 확장에서 특정 기능을 활성화하려면 ;를 없애야 한다.

아래 목록에서 gd랑 ldap만 세미콜론 지워서 활성화하고 파일 저장하기

이제 변경사항을 적용하기 위해서 XAMPP에서 Apache서버를 Stop하고 재시작한다.

Shell 로 돌아가서 위 방향키누르면 마지막으로 실행한 명령어 자동완성됨.

아래처럼 BookStack 에 필요한 요구사항이 모두 다운로드 됨

이번에는 php Composer 버전 문제가 발생했다. 8.1.0 이상 버전을 써야 하는데 나는 8.0.30 버전이라서 에러가 뜸.

php 새로 다운 받아서 `C:\xampp\php` 경로에 받아주었다.
(PHP 공식 다운로드 페이지 "Downloads" 섹션에서 Thread Safe 버전 중에 VC16 다운받고 압축 풀었음)
이렇게 하는게 맞나 싶다. 기존 XAMPP 에 있던 PHP 폴더는 백업 해 놓았다.
아래 명령어로 버전 확인해보니까 맞게 뜬다.
php -v

또 에러나서 실패함.... 이번에는 난리남...;
다시 다 삭제하고 백업해놓았던 파일 받았다.
윈도우에서 XAMPP는 한 번에 하나의 PHP 버전만을 사용할 수 있다
그래서 PHP 버전을 새로 다운 받아주어야 하는데 아래 블로그 가서 해결했다.
그냥 쉽게 말해서 다운받을 때 zip형식으로 받는데
압축을 풀 때 XAMPP 설치 폴더 내의 PHP 폴더에 PHP 압축 해제 한 후, 덮어 쓰기하면 된다.
https://blog.mydepot.kr/20210621_289#gsc.tab=0
[PHP] XAMPP PHP 업그레이드 – webDev
blog.mydepot.kr
또 안됨....
이번에는 extension=zip 를 활성화 하라고 함

php.ini 파일에 해당 extension이 없어서 그냥 extension=zip를 수동으로 추가했다.
드디어 성공 ㅠㅠ

2-3. .env.example 파일을 복사해서 .env로 바꾸고 데이터베이스 설정

C:\xampp\htdocs\bookstack 로 간다.

복사해서 같은 폴더에 붙여넣기 함



연결 프로그램 > 메모장

localhost 는 이미 연결되어 있고
새로운 데이터베이스랑 유저랑 유저 패스워드가 필요하다.
# Database details
DB_HOST=localhost
DB_DATABASE=database_database
DB_USERNAME=database_username
DB_PASSWORD=database_user_password
다시 http://localhost/phpmyadmin/ 로 가기
새로운 데이터베이스 만들기
왼쪽 New(새로운) 클릭 > db이름 적고(bookstack) > 만들기
테이블은 bookstack 에서 알아서 만들어줄 것이기 때문에 일단 db만 구축하면 된다.

유저 생성하는법
홈 아이콘 클릭 > 사용자계정 > 사용자 추가


비밀번호는 비밀번호 생성기에서 특수문자 빼고 최대 20자로 해서 랜덤 생성하면 매우 안전

생성한 DB이름, 유저네임, 비밀번호을 .env에 입력해준다.

이제 이 계정에 대해서 DB 사용권한을 부여해야 한다.
홈 > 사용자계정 > 권한 수정(Edit Privileges)




2-4. 저장소, 부트스트랩/캐시 등 폴더에 대한 웹서버 접근 권한 문제

이건 따로 설정안해줘도 될 거 같다
이미 웹사이트에서 접근할 수 있는 위치에 디렉터리 만들었기 때문이다.
이 다음부터는 다음 포스팅에 이어서
'ETC_Software' 카테고리의 다른 글
WSL와 Docker(도커) 설치하기 for Window (6) | 2025.01.05 |
---|---|
북스택(BookStack API) 설치하기 for Window 2편 (35) | 2025.01.03 |
[React] 리액트 설치 npm install 실패 해결법 (42) | 2025.01.01 |
JSON vs XML, JSON 배열 (48) | 2024.12.26 |
[웹사이트 추천] 페이스북, 인스타그램 오류 났는지 확인하는 사이트 (73) | 2024.12.20 |
새해가 밝았다.
개인위키를 만들자 ><

BookStack
Multi-Lingual BookStack users can set their preferred language. Thanks to great community contributors, current languages built into BookStack include EN, FR, DE, ES, IT, JA, NL, PL, RU and many more. Integrated Authentication As well as the default email/
www.bookstackapp.com
준비물
⭐ XAMPP Control Panel
https://www.apachefriends.org/download.html
Download XAMPP
Includes: Apache 2.4.58, MariaDB 10.4.32, PHP 8.0.30 & PEAR + SQLite 2.8.17/3.38.5 + multibyte (mbstring) support, Perl 5.34.1, ProFTPD 1.3.6, phpMyAdmin 5.2.1, OpenSSL 1.1.1w, GD 2.2.5, Freetype2 2.4.8, libpng 1.6.37, gdbm 1.8.3, zlib 1.2.11, expat 2.0.1,
www.apachefriends.org
⭐PHP Composer
https://getcomposer.org/download/
Composer
Download Composer Latest: v2.8.4 To quickly install Composer in the current directory, run the following script in your terminal. To automate the installation, use the guide on installing Composer programmatically. php -r "copy('https://getcomposer.org/ins
getcomposer.org
Composer-Setup.exe 다운로드 하고 setup 에서 Apache, MySQL, PHP, PHPMyAdmin 이렇게만 체크
⭐MySQL 또는 MariaDB
⭐Git Version Control
1. XAMPP 테스트

1-1. Apache
웹서버 시작할 수 있는지 테스트하기
Apache Start 클릭하고 브라우저에서 주소창에 localhost 입력
아래처럼 뜨면 Apache 가 우리의 요청에 잘 응답하고 있는 것

1-2. phpMyAdmin
다시 XAMPP 로 돌아와서 MySQL 스타트

브라우저로 가서 상단 탭에서 phpMyAdmin 클릭

아래와 같은 화면이 뜨면 성공
이제 여기서 DB 제어를 할 수 있다.

2. BookStack 설치
htdocs에 BookStack 연결하기

Apache 웹 서버는 기본적으로 htdocs 디렉토리를 웹사이트의 루트 디렉토리로 사용한다.
여기서 웹 컨텐츠를 저장하고 제공하기 때문에 BookStack API를 이 위치로 연결해 줄것이다.
참고로 현재 Xampp를 C:\xampp
위치로 설치했는데 여기 가면 htdocs 폴더가 있다.
Shell 클릭

아래 명령어로 현재 위치를 htdocs로 바꾸기
# cd htdocs

https://www.bookstackapp.com/docs/admin/installation/#requirements
Installation · BookStack
Installation Below you can find details on how to install BookStack on your own hosting. There are a number of installation options available depending on your setup. The install process will require some knowledge of hosting a PHP web application & databa
www.bookstackapp.com
이제 북스택 Installation 웹사이트 가서 아래 작업을 순서대로 진행해 준다.

2-1. BookStack GitHub 저장소의 릴리즈 브랜치를 폴더에 클론하기
여기 있는 코드를 복사해준다.

git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
그리고 XAMPP Shell 에 붙여넣기 하면 된다.

htdocs 폴더를 열고 BookStack 이 설치되어 있으면 성공이다.

폴더명 소문자로 바꿔주기
이렇게 해야 명령어 입력할 때 헷갈리지 않고 편하다.

2-2. 애플리케이션 폴더로 이동한 후, composer install --no-dev 명령 실행

다시 Shell 로 가서
# cd bookstack

그리고 아래 명령어를 Shell 에 붙여넣기
composer install --no-dev

에러 남
Problem 1
- Root composer.json requires PHP extension ext-gd * but it is missing from your system. Install or enable PHP's gd extension.
PHP 프로젝트에서 ext-gd 확장이 필요하다고 함
현재 시스템에 이 확장이 설치되어 있지 않거나 비활성화되어 있음.
gd 활성화 시키는 법

XAMPP로 와서 Apache > Config > PHP(php.ini) 가면 메모장이 뜬다
여기서 스크롤을 쭉 내리면 확장 기능을 활성화 할 수 있는 목록이 뜬다.
;는 PHP 설정 파일에서 주석(comment)이다.
PHP 확장에서 특정 기능을 활성화하려면 ;를 없애야 한다.

아래 목록에서 gd랑 ldap만 세미콜론 지워서 활성화하고 파일 저장하기

이제 변경사항을 적용하기 위해서 XAMPP에서 Apache서버를 Stop하고 재시작한다.

Shell 로 돌아가서 위 방향키누르면 마지막으로 실행한 명령어 자동완성됨.

아래처럼 BookStack 에 필요한 요구사항이 모두 다운로드 됨

이번에는 php Composer 버전 문제가 발생했다. 8.1.0 이상 버전을 써야 하는데 나는 8.0.30 버전이라서 에러가 뜸.

php 새로 다운 받아서 C:\xampp\php
경로에 받아주었다.
(PHP 공식 다운로드 페이지 "Downloads" 섹션에서 Thread Safe 버전 중에 VC16 다운받고 압축 풀었음)
이렇게 하는게 맞나 싶다. 기존 XAMPP 에 있던 PHP 폴더는 백업 해 놓았다.
아래 명령어로 버전 확인해보니까 맞게 뜬다.
php -v

또 에러나서 실패함.... 이번에는 난리남...;
다시 다 삭제하고 백업해놓았던 파일 받았다.
윈도우에서 XAMPP는 한 번에 하나의 PHP 버전만을 사용할 수 있다
그래서 PHP 버전을 새로 다운 받아주어야 하는데 아래 블로그 가서 해결했다.
그냥 쉽게 말해서 다운받을 때 zip형식으로 받는데
압축을 풀 때 XAMPP 설치 폴더 내의 PHP 폴더에 PHP 압축 해제 한 후, 덮어 쓰기하면 된다.
https://blog.mydepot.kr/20210621_289#gsc.tab=0
[PHP] XAMPP PHP 업그레이드 – webDev
blog.mydepot.kr
또 안됨....
이번에는 extension=zip 를 활성화 하라고 함

php.ini 파일에 해당 extension이 없어서 그냥 extension=zip를 수동으로 추가했다.
드디어 성공 ㅠㅠ

2-3. .env.example 파일을 복사해서 .env로 바꾸고 데이터베이스 설정

C:\xampp\htdocs\bookstack 로 간다.

복사해서 같은 폴더에 붙여넣기 함



연결 프로그램 > 메모장

localhost 는 이미 연결되어 있고
새로운 데이터베이스랑 유저랑 유저 패스워드가 필요하다.
# Database details DB_HOST=localhost DB_DATABASE=database_database DB_USERNAME=database_username DB_PASSWORD=database_user_password
다시 http://localhost/phpmyadmin/ 로 가기
새로운 데이터베이스 만들기
왼쪽 New(새로운) 클릭 > db이름 적고(bookstack) > 만들기
테이블은 bookstack 에서 알아서 만들어줄 것이기 때문에 일단 db만 구축하면 된다.

유저 생성하는법
홈 아이콘 클릭 > 사용자계정 > 사용자 추가


비밀번호는 비밀번호 생성기에서 특수문자 빼고 최대 20자로 해서 랜덤 생성하면 매우 안전

생성한 DB이름, 유저네임, 비밀번호을 .env에 입력해준다.

이제 이 계정에 대해서 DB 사용권한을 부여해야 한다.
홈 > 사용자계정 > 권한 수정(Edit Privileges)




2-4. 저장소, 부트스트랩/캐시 등 폴더에 대한 웹서버 접근 권한 문제

이건 따로 설정안해줘도 될 거 같다
이미 웹사이트에서 접근할 수 있는 위치에 디렉터리 만들었기 때문이다.
이 다음부터는 다음 포스팅에 이어서
'ETC_Software' 카테고리의 다른 글
WSL와 Docker(도커) 설치하기 for Window (6) | 2025.01.05 |
---|---|
북스택(BookStack API) 설치하기 for Window 2편 (35) | 2025.01.03 |
[React] 리액트 설치 npm install 실패 해결법 (42) | 2025.01.01 |
JSON vs XML, JSON 배열 (48) | 2024.12.26 |
[웹사이트 추천] 페이스북, 인스타그램 오류 났는지 확인하는 사이트 (73) | 2024.12.20 |