Установка · 7 min read · Dec 08, 2025

Как установить документацию Wiki BookStack на CentOS 7

BookStack — это платформа с открытым исходным кодом для создания документации/вики-контента для вашего проекта. Она написана на языке программирования PHP и использует веб-фреймворк Laravel. В основном, ваша документация/вики будет храниться в BookStack как ‘Книга’, за которой следуют ‘Глава’ и ‘Страницы’. Это упрощает создание и чтение документации в виде Книги, основанной на Главах и Страницах.

В этом руководстве я покажу вам шаг за шагом, как установить и настроить BookStack на CentOS 7 в стеке LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Это руководство охватывает такие темы, как установка PHP Composer и создание базы данных MySQL с помощью командной строки.

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

  • CentOS 7
  • Привилегии root

Что мы будем делать

  1. Установить репозиторий EPEL
  2. Установить Nginx
  3. Установить и настроить PHP-FPM
  4. Установить и настроить MySQL/MariaDB
  5. Установить PHP Composer
  6. Установить BookStack
  7. Настроить виртуальный хост Nginx для BookStack
  8. Тестирование

Шаг 1 - Установить репозиторий EPEL

Добавьте новый сторонний репозиторий в систему. Нам нужно добавить репозиторий EPEL (Дополнительные пакеты для корпоративного Linux) в нашу систему CentOS 7, чтобы мы могли установить Nginx и другие пакеты.

Установите репозиторий EPEL с помощью команды yum ниже.

sudo yum -y install epel-release

Шаг 2 - Установить Nginx на CentOS 7

В этом руководстве мы будем запускать платформу ‘BookStack’ в стеке LEMP и установим веб-сервер Nginx из репозитория EPEL.

Установите веб-сервер Nginx с помощью команды yum ниже.

sudo yum -y install nginx

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

systemctl start nginx  
systemctl enable nginx

Теперь проверьте это с помощью команды netstat.

netstat -plntu

Убедитесь, что порт 80 есть в списке, и он используется службой Nginx.

Установить Nginx

Веб-сервер Nginx теперь установлен на системе CentOS 7.

Дополнительно: Если вы используете firewalld на своей системе, добавьте новую HTTP-службу в конфигурацию, выполнив команды ниже.

firewall-cmd --add-service=http --permanent  
firewall-cmd --reload

Шаг 3 - Установить PHP и PHP-FPM

На этом этапе мы установим и настроим PHP-FPM 7.0. Мы установим PHP и PHP-FPM из репозитория ‘webtatic’ - установим PHP с некоторыми расширениями, которые необходимы платформе ‘BookStack’, включая PDO, Tokenizer, GD, Tidy, MBString и OpenSSL.

Перед установкой PHP и PHP-FPM добавьте новый репозиторий ‘webtatic’ в систему CentOS 7 с помощью команды rpm ниже.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Теперь установите PHP и PHP-FPM со всеми необходимыми расширениями с помощью команды yum следующим образом.

sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl

После завершения установки нам нужно отредактировать файл конфигурации ‘php.ini’ и отредактировать конфигурацию пула php-fpm ‘www.conf’.

Отредактируйте файл конфигурации ‘php.ini’ с помощью редактора vim.

vim /etc/php.ini

Уберите комментарий с строки ‘cgi.fix_pathinfo’ и измените значение на ‘0’.

cgi.fix_pathinfo=0

Сохраните и выйдите.

Далее отредактируйте файл конфигурации пула ‘www.conf’.

vim /etc/php-fpm.d/www.conf

Измените пользователя по умолчанию для запуска службы PHP-FPM на пользователя и группу ‘nginx’.

user = nginx  
group = nginx

На строке ‘listen’ измените значение на сокетный файл, как показано ниже. Мы будем запускать PHP-fpm под сокетным файлом.

listen = /var/run/php-fpm/php-fpm.sock

Теперь для конфигурации разрешений и владельца сокета. Уберите комментарий с этих строк и измените значение, как показано ниже.

listen.owner = nginx  
 listen.group = nginx  
 listen.mode = 0660

Наконец, уберите комментарий с переменной окружения PHP-FPM.

env[HOSTNAME] = $HOSTNAME  
env[PATH] = /usr/local/bin:/usr/bin:/bin  
env[TMP] = /tmp  
env[TMPDIR] = /tmp  
env[TEMP] = /tmp

Сохраните и выйдите.

Если конфигурация завершена, запустите службу PHP-FPM и включите ее, чтобы она запускалась каждый раз при загрузке.

systemctl start php-fpm  
systemctl enable php-fpm

Теперь проверьте это с помощью команды netstat.

netstat -pl | grep php

И убедитесь, что вы получили сокетный файл PHP-FPM.

PHP и PHP-FPM 7.0 со всеми необходимыми расширениями для платформы ‘BookStack’ были установлены на системе CentOS 7.

Шаг 4 - Установить и настроить MySQL/MariaDB

BookStack поддерживает только базу данных MySQL и будет работать только под MySQL версии >= 5.6. Для этого руководства мы будем использовать MariaDB (последняя версия), которую можно установить из репозитория Ubuntu.

Выполните команду yum ниже, чтобы установить базу данных MariaDB.

yum install -y mariadb mariadb-server

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

systemctl start mariadb  
systemctl enable mariadb

Теперь нам нужно настроить пароль ‘root’ для базы данных.

Выполните команду ниже, чтобы установить пароль ‘root’ для базы данных.

mysql_secure_installation

Настроить MariaDB

И вам будет предложено ввести новый пароль root MySQL - введите свой пароль для пользователя root и нажмите Enter. Для остальных просто введите ‘Y’ для подтверждения и снова нажмите Enter.

Установить пароль root? [Y/n] Y  
 Удалить анонимных пользователей? [Y/n] Y  
 Запретить удаленный вход root? [Y/n] Y  
 Удалить тестовую базу данных и доступ к ней? [Y/n] Y  
 Перезагрузить таблицы привилегий сейчас? [Y/n] Y

Пароль root MySQL теперь установлен.

Далее нам нужно создать новую базу данных MySQL для установки BookStack. Мы создадим новую базу данных с именем ‘bookstackdb’ с пользователем ‘bookstack’ и паролем ‘bookstack@’.

Войдите в оболочку MySQL с пользователем root.

mysql -u root -p

Выполните все запросы MySQL ниже в оболочке.

create database bookstackdb;  
create user bookstack@localhost identified by 'bookstack@';  
grant all privileges on bookstackdb.* to bookstack@localhost identified by 'bookstack@';  
flush privileges;  
exit;

Создать базу данных в MariaDB для BookStack

MySQL/MariaDB была установлена на системе CentOS 7, и база данных для установки ‘BookStack’ была создана.

Шаг 5 - Установить PHP Composer на CentOS 7

Composer — это менеджер зависимостей для PHP. Он позволяет вам управлять зависимостями PHP, которые вам нужны для вашего проекта. На этом этапе мы установим Composer с помощью скрипта установщика. Composer будет использоваться для загрузки всех библиотек PHP, необходимых для ‘BookStack’.

Перейдите в домашний каталог и загрузите установщик с помощью curl.

cd ~/  
curl -sS https://getcomposer.org/installer | php

И вы получите файл ‘composer.phar’ в своем домашнем каталоге. Переместите файл в директорию ‘/usr/bin’ и попробуйте команду ‘composer’, как показано ниже.

mv composer.phar /usr/bin/composer  
composer -v

И вы получите версию composer, установленную на вашей системе.

Установить PHP Composer

PHP Composer теперь установлен на системе CentOS 7.

Шаг 6 - Установить BookStack на CentOS 7

На этом этапе мы установим BookStack в директории ‘/var/www’ - эта директория будет корневой директорией приложения.

Перед установкой ‘BookStack’ установите git на своей системе.

yum -y install git

Теперь создайте новую директорию ‘/var/www’.

mkdir -p /var/www

Перейдите в эту директорию и клонируйте исходный код BookStack с помощью команды git.

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

Перейдите в директорию ‘BookStack/‘ и установите все необходимые зависимости PHP с помощью команды composer, как показано ниже.

cd BookStack/  
composer install

Убедитесь, что вы не получили ошибок, и когда это будет завершено, вы увидите результат, как показано ниже.

Установить BookStack с помощью Composer

Теперь скопируйте файл конфигурации окружения ‘.env.example’ и отредактируйте его с помощью vim.

cp .env.example .env  
vim .env

На строке с данными базы данных измените все на вашу информацию о базе данных, как показано ниже.

# Данные базы данных  
 DB_HOST=localhost  
 DB_DATABASE=bookstackdb  
 DB_USERNAME=bookstack  
 DB_PASSWORD=bookstack@

Сохраните и выйдите.

И измените права собственности на директорию ‘BookStack’ на пользователя и группу ‘nginx’.

chown -R nginx:nginx /var/www/BookStack

Далее нам нужно сгенерировать уникальный ключ приложения для BookStack и обновить схему базы данных с помощью команд PHP artisan.

В корневой директории приложения ‘/var/www/BookStack’ выполните следующие команды.

php artisan key:generate  
php artisan migrate

Вам будет предложено подтвердить, введите ‘yes’ и нажмите Enter.

PHP artisan

Подождите, пока миграция таблиц не будет успешной.

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

Шаг 7 - Настроить виртуальный хост Nginx для BookStack

На этом этапе мы настроим виртуальный хост nginx для BookStack. Мы будем использовать ‘book.hakase-labs.co’ в качестве доменного имени для нашего URL BookStack.

Перейдите в директорию ‘/etc/nginx’ и создайте новый файл виртуального хоста ‘bookstack.conf’ в директории ‘conf.d/‘ с помощью редактора vim.

cd /etc/nginx  
vim conf.d/bookstack.conf

Вставьте конфигурацию ниже.

server {  
   listen 80;  
   server_name book.hakase-labs.co;  
   root /var/www/BookStack/public;  
   
   access_log  /var/log/nginx/bookstack_access.log;  
   error_log  /var/log/nginx/bookstack_error.log;  
   
   client_max_body_size 1G;  
   fastcgi_buffers 64 4K;  
   
   index  index.php;  
   
   location / {  
     try_files $uri $uri/ /index.php?$query_string;  
   }  
   
   location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {  
     deny all;  
   }  
   
   location ~ \.php(?:$|/) {  
     fastcgi_split_path_info ^(.+\.php)(/.+)$;  
     include fastcgi_params;  
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
     fastcgi_param PATH_INFO $fastcgi_path_info;  
     fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  
   }  
   
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {  
     expires 30d;  
     access_log off;  
   }  
 }

Сохраните и выйдите.

Теперь протестируйте конфигурацию nginx и убедитесь, что нет ошибок, затем перезапустите службу nginx.

nginx -t  
systemctl restart nginx

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

Настроить виртуальный хост Nginx

Шаг 8 - Тестирование

Откройте веб-браузер и введите URL BookStack в адресной строке, мой: http://book.hakase-labs.co/

И вы будете перенаправлены на страницу ‘login/‘, как показано ниже.

Вход в BookStack

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

Вы должны получить панель управления пользователем BookStack.

Панель управления

Нажмите на меню ‘Настройки’, и вы получите страницу настроек.

Настройки

Теперь нажмите ‘Пользователи’, а затем нажмите на пользователя ‘Admin’. Измените адрес электронной почты по умолчанию на свой адрес электронной почты и пароль на свой собственный секретный пароль.

Пользователи BookStack

Затем нажмите кнопку ‘Сохранить’.

Установка BookStack с использованием стека LEMP (Linux, Nginx, MariaDB и PHP-FPM) на CentOS 7 была успешно завершена.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.