Как установить BookStack на Debian 12

BookStack — это бесплатная вики-программа с открытым исходным кодом, написанная на PHP с использованием веб-фреймворка Laravel. BookStack представляет собой простую и самодостаточную платформу для хранения и организации информации.

В этом руководстве мы шаг за шагом проведем вас через процесс установки BookStack на сервер Debian 12, чтобы у вас появилась собственная wiki-платформа для размещения информации.

Предварительные условия

Прежде чем приступить к работе, убедитесь, что у вас есть следующее:

  • Сервер Debian 12.
  • Пользователь не root с правами администратора sudo.
  • Доменное имя, указывающее на IP-адрес сервера.

Установка зависимостей

BookStack — это вики-платформа, написанная на PHP и MySQL/MariaDB. На данный момент она полностью поддерживается в версии PHP 8.2. На этом этапе вы установите зависимости для BookStack, которые включают пакеты LAMP Stack (Apache2, MariaDB, PHP), Git и Composer.

Обновите индекс пакетов Debian с помощью следующей команды.

sudo apt update

После обновления репозитория установите зависимости пакетов для BookStack, выполнив следующую команду apt install. С помощью этой команды вы установите пакет LAMP Stack, Composer и Git.

sudo apt install apache2 mariadb-server composer curl php php-xml libapache2-mod-php php-fpm php-curl php-mbstring php-ldap php-tidy php-zip php-gd php-mysql git

Введите y для продолжения установки.

После установки зависимостей проверьте каждую зависимость, выполнив следующую команду.

Проверьте службу apache2 с помощью приведенной ниже команды systemctl, чтобы убедиться, что служба запущена и включена.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Следующий вывод подтвердит, что служба apache2 запущена и включена.

Теперь проверьте работу службы mariadb с помощью следующей команды.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

В результате должно быть показано, что служба mariadb запущена и включена в вашей системе.

Далее проверьте версию PHP и список включенных расширений с помощью следующей команды.

php -v
php -m

Судя по приведенному ниже результату, PHP 8.2 установлен в вашей системе.

Наконец, проверьте Composer с помощью следующей команды. В результате будет найден бинарный файл Composer и проверена его версия.

which composer
sudo -u www-data composer -v

Вы должны увидеть, что Composer 2.5.5 установлен по адресу /usr/bin/composer.

Настройка PHP

После установки зависимостей следующим шагом будет настройка установки PHP путем внесения изменений в файл php.ini на машине Debian.

Откройте стандартную конфигурацию PHP /etc/php/8.2/apache2/php.ini с помощью следующей команды редактора nano.

sudo nano /etc/php/8.2/apache2/php.ini

Измените некоторые параметры по умолчанию с помощью следующей конфигурации. Обязательно настройте параметры date.timezone и memory_limit в соответствии с окружением вашего сервера.

date.timezone = Europe/Amsterdam
memory_limit = 512M

Сохраните файл и по завершении работы выйдите из редактора.

Теперь выполните следующую команду systemctl для перезапуска службы apache2 и применения сделанных изменений.

sudo systemctl restart apache2

Настройка сервера MariaDB

Теперь, когда PHP настроен, следующим шагом будет настройка установки сервера MariaDB с помощью утилиты mariadb-secure-installation, которая позволяет настроить базовую безопасность для MariaDB. Также будет создана новая база данных и пользователь, который будет использоваться в BookStack.

Для защиты установки MariaDB выполните следующую команду mariadb-secure-installlation.

sudo mariadb-secure-installation

В процессе работы вам будет задан вопрос о некоторых конфигурациях. Введите Y, чтобы согласиться и применить новые изменения, или n для No, чтобы отклонить конфигурацию.

  1. Для установки сервера MariaDB по умолчанию без пароля корневого пользователя нажмите ENTER, когда вас спросят о пароле.
  2. Локальная аутентификация для корневых пользователей MariaDB по умолчанию защищена, введите ‘n’, когда вас попросят изменить метод аутентификации на ‘unix_socket’.
  3. Введите ‘Y’ для создания нового пароля пользователя MariaDB root. Затем введите надежный пароль для корневого пользователя MariaDB и повторите процедуру.
  4. На вопрос об отключении удаленной аутентификации для корневого пользователя MariaDB введите «Y», чтобы согласиться.
  5. По умолчанию сервер MariaDB устанавливается с базой данных ‘test’ и позволяет анонимному пользователю получить к ней доступ. Введите «Y» для обоих параметров, чтобы удалить базу данных по умолчанию ‘test’ и убрать привилегии анонимного пользователя.
  6. Наконец, введите ‘Y’ для подтверждения прав на перезагрузку таблиц.

После настройки MariaDB с помощью команды mariadb client необходимо создать новую базу данных MariaDB и пользователя, которые будут использоваться BookStack.

Войдите на сервер MariaDB, используя следующую команду mariadb. При появлении запроса введите пароль пользователя MariaDB root.

sudo mariadb -u root -p

Теперь выполните следующие запросы для создания новой базы данных и пользователя BookStack. В данном примере будет создана новая база данных и пользователь bookstack с паролем p4ssword.

CREATE DATABASE bookstack;
CREATE USER bookstack@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON bookstack.* TO bookstack@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

Далее выполните следующий запрос для проверки привилегий пользователя bookstack.

SHOW GRANTS FOR bookstack@localhost;

Вы должны увидеть, что пользователю bookstack разрешен доступ и управление базой данных bookstack, которая будет использоваться BookStack.

Введите quit для выхода из сервера MariaDB.

Загрузка Bookstack

Теперь, когда вы настроили сервер PHP и MariaDB, вы готовы к установке BookStack. В этом разделе мы установим BookStack с помощью Git и Composer.

Сначала создайте новые каталоги /var/www/.config и /var/www/.cache, которые будут использоваться Composer для хранения кэша зависимостей и конфигурации. Затем необходимо также изменить права собственности на оба каталога на пользователя www-data.

mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data /var/www/{.config,.cache}

Перейдите в каталог /var/www и загрузите исходный код BookStack в каталог bookstack. Ваш каталог установки BookStack должен иметь вид /var/www/bookstack.

cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack

Теперь измените право собственности на каталог /var/www/bookstack на пользователя www-data и перейдите в него.

sudo chown -R www-data:www-data /var/www/bookstack
cd /var/www/bookstack

Далее скопируйте файл .env.example в .env и откройте новый файл с помощью следующей команды редактора nano.

sudo -u www-data cp .env.example .env
sudo -u www-data nano .env

Введите имя вашего домена в параметр APP_URL и введите данные о вашей базе данных MariaDB в параметры DB_ ниже.

# The application URL
APP_URL=http://bookstack.hwdomain.io    

# Database values also need to be modified
# If you follow previous command, you only need to add your DB_PASSWORD
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=p4ssword

После завершения работы сохраните и закройте файл.

Далее выполните следующую команду для установки зависимостей PHP через Composer.

sudo -u www-data composer install --no-dev --no-plugins

Во время установки на экран будет выведено следующее сообщение.

После установки зависимостей PHP выполните следующую команду для генерации секретного ключа и миграции базы данных.

sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force

Секретный ключ в файле .env будет обновлен, и ниже приведен процесс миграции базы данных.

После завершения работы выполните следующую команду, чтобы изменить права собственности на некоторые каталоги на пользователя www-data и убедиться, что эти каталоги доступны для записи.

sudo chown www-data:www-data -R bootstrap/cache public/uploads storage
sudo chmod u+rw bootstrap/cache public/uploads storage

Наконец, выполните приведенную ниже команду, чтобы изменить разрешение файла .env на 640. В результате только пользователь www-data сможет вносить изменения в этот файл.

sudo chmod -R 640 /var/www/bookstack/.env

Настройка виртуального хоста Apache2

В следующем разделе будет создана новая конфигурация виртуального хоста Apache2, который будет использоваться для работы BookStack. Для этого необходимо подготовить доменное имя и убедиться, что оно указывает на IP-адрес сервера.

Перед созданием конфигурации виртуального хоста выполните следующую команду для включения модуля перезаписи на Apache2.

sudo a2enmod rewrite

Теперь создайте новую конфигурацию виртуального хоста /etc/apache2/sites-available/bookstack.conf с помощью следующей команды редактора nano.

sudo nano /etc/apache2/sites-available/bookstack.conf

Вставьте следующую конфигурацию и не забудьте изменить имя домена в опции ServerName. В следующем примере для установки BookStack будет использоваться домен bookstack.hwdomain.io.

<VirtualHost *:80>
    ServerName bookstack.hwdomain.io
    ServerAdmin webmaster@localhost
    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}/bookstack-error.log
    CustomLog ${APACHE_LOG_DIR}/bookstack-access.log combined
</VirtualHost>

После завершения работы сохраните и закройте файл.

Далее выполните следующую команду для активации файла виртуального хоста bookstack.conf и проверки синтаксиса Apache2.

sudo a2ensite bookstack.conf
sudo apachectl configtest

Если вы используете правильный синтаксис, то в терминал будет выведен вывод «Syntax OK».

Наконец, выполните приведенную ниже команду systemctl для перезапуска службы aapche2 и применения сделанных изменений.

sudo systemctl restart apache2

Защита Bookstack с помощью SSL/TLS-сертификатов

В этом руководстве мы обеспечим безопасность Bookstack с помощью SSL/TLS-сертификатов, которые могут быть сгенерированы в Letsencrypt с помощью инструмента Certbot.

Установите Certbot и плагин Certbot Apache с помощью команды apt install, приведенной ниже. Введите y для подтверждения и продолжения установки.

sudo apt install certbot python3-certbot-apache

Теперь выполните приведенную ниже команду certbot для генерации SSL/TLS-сертификатов и обеспечения безопасности установки BookStack. Обязательно измените доменное имя и адрес электронной почты в следующей команде.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d bookstack.hwdomain.io

После завершения процесса ваши SSL/TLS-сертификаты будут доступны в каталоге /etc/letsencrypt/live/bookstack.hwdomain.io. Кроме того, в вашей установке BookStack будет автоматически настроен HTTPS, который конфигурируется с помощью плагина Certbot Apache.

Доступ к Bookstack

На этом этапе все настроено, и установка BookStack завершена. Теперь вы можете получить доступ к своей установке BookStack.

Запустите веб-браузер и перейдите на доменное имя вашей установки BookStack, например https://bookstack.hwdomain.io/, после чего вы будете перенаправлены на страницу входа в систему BookStack.

Введите указанный по умолчанию адрес электронной почты [email protected] и пароль password, затем нажмите кнопку Login.

В случае успеха вы увидите приборную панель BookStack, как показано ниже:

Заключение

В заключение можно сказать, что вы успешно установили BookStack на сервер Debian 12, выполнив пошаговую инструкцию. Вы установили BookStack через Git, Composer и с помощью пакетов LAMP Stack (Apache2, MariaDB и PHP). Вы также защитили BookStack сертификатами SSL/TLS от Letsencrypt. Теперь можно заполнять информацию и создавать собственную документацию.

Поделитесь с друзьями

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

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x