Краткое руководство по установке и первоначальной настройке системы управления собственной веб-библиотекой BookStack в связке с веб-сервером nginx и СУБД MariaDB на ОС Debian GNU/Linux 11.6.
В первую очередь устанавливаем необходимые для работы системы пакеты
# apt install gnupg git unzip curl
Затем устанавливаем веб-сервер nginx и СУБД MariaDB
# apt install nginx mariadb-server mariadb-client
После этого запускаем утилиту первоначальной настройки MariaDB
# /usr/bin/mysql_secure_installation
Далее устанавливаем репозиторий PHP 8.1
# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list # wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
и обновляем репозитории системы
# apt update && apt upgrade -y
Затем устанавливаем PHP с необходимыми расширениями
# apt install php8.1 php8.1-curl php8.1-mbstring php8.1-ldap php8.1-xml php8.1-mysql php8.1-zip php8.1-gd php8.1-fpm
Теперь нам необходимо создать базу данных и пользователя. Для этого переходим в консоль mysql
# mysql -u root -p
и выполняем следующие SQL-запросы:
CREATE DATABASE bookstack; CREATE USER 'bookstack'@'%' IDENTIFIED WITH mysql_native_password AS PASSWORD('youRpassWORD'); GRANT ALL ON bookstack.* TO 'bookstack'@'%'; FLUSH PRIVILEGES; EXIT;
После этого необходимо установить PHP Composer
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Консоль должна показать:
Installer verified
Далее запускаем установку Композера
# php composer-setup.php
По окончании установки консоль покажет сообщение:
Composer (version 2.5.4) successfully installed to: /home/username/composer.phar Use it: php composer.phar
Затем убираем скрипт установки Композера
# php -r "unlink('composer-setup.php');"
и перемещаем файл composer.phar в директорию /usr/local/bin/
# mv composer.phar /usr/local/bin/composer
Теперь приступаем к установке BookStack.
Переходим в директорию /var/www/
# cd /var/www/
и склонируем git-репозиторий на машину
# git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
В консоли отобразится:
Клонирование в «BookStack»… remote: Enumerating objects: 50641, done. remote: Counting objects: 100% (154/154), done. remote: Compressing objects: 100% (154/154), done. remote: Total 50641 (delta 0), reused 154 (delta 0), pack-reused 50487 Получение объектов: 100% (50641/50641), 29.13 MiB | 9.27 MiB/s, готово. Определение изменений: 100% (37432/37432), готово.
Далее переходим в директорию BookStack
# cd BookStack/
и с помощью Композера запускаем установку
# composer install --no-dev
Затем скопируем файл конфигурации из экзампла
# cp .env.example .env
открываем его
# nano .env
и исправляем его в соответствии с настройками сервера, а именно:
- APP_URL — URL-адрес (имя хоста или IP-адрес), по которому будет доступна библиотека
- Доступ к базе данных
- Почтовые параметры (при необходимости)
После этого выдадим права на необходимые директории
# chown -R www-data:www-data storage bootstrap/cache public/uploads
Далее сгенерируем ключ приложения
# php artisan key:generate
и обновим базу данных BookStack
# php artisan migrate
Теперь переходим к конфигурированию nginx. Уберём файл конфигурации по умолчанию
# unlink /etc/nginx/sites-enabled/default
и создадим конфиг BookStack
# touch /etc/nginx/sites-available/bookstack # nano /etc/nginx/sites-available/bookstack
с таким содержимым:
server { #This config is for HTTPS setup # listen 443 ssl; listen 80; server_name your_servers_name.domain.com; #SSL Cert Location # ssl_certificate /etc/ssl/certs/self-sign-SSL-or-public-ssl.crt; # ssl_certificate_key /etc/ssl/private/self-sign-SSL-or-public-ssl.key; #Force strong TLS ssl_protocols TLSv1.3; ssl_prefer_server_ciphers on; #Disable weak ciphers ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; #Increase Upload Size client_max_body_size 12M; root /var/www/BookStack/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } }
При использовании SSL раскомментируем строку
listen 443 ssl;
и закомментируем
listen 80;
а также пути к сертификатам в ssl_certificate и ssl_certificate_key
После этого создаём ссылку включения конфигурации в nginx
# ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/bookstack
проверяем конфиг на ошибки
# nginx -t
и если всё окей, рестартуем nginx
# systemctl restart nginx
Готово!
На другой машине в сети в адресной строке браузера вводим адрес сервера с BookStack и попадаем на форму входа:
Вводим логин: admin@admin.com и пароль: password и попадаем на дашборд:
Здесь уже можно управлять книжными полками, книгами, главами и страницами в книгах.