Запуск BookStack на Debian 11

Краткое руководство по установке и первоначальной настройке системы управления собственной веб-библиотекой 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 и попадаем на дашборд:

Здесь уже можно управлять книжными полками, книгами, главами и страницами в книгах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *