Як встановити 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