Найти тему

Как создать красивую базу знаний с помощью wiki-системы BookStack

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

Нашу систему мы будем разворачивать на CentOS 7, под пользователем root (главный пользователь системы). Все команды будет вноситься через консоль по ssh.

Первым делом проверяем что все обновления установлены.

#yum update –y

Устанавливаем необходимые программные пакеты.

#yum install -y curl git wget vim unzip bash-completion

#yum install nano

Устанавливаем пакет php 8 (обязательно 8 либо выше, с более поздними версиями новый BookStack не работает), внося поочередно команды.

#yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

#yum install epel-release

#yum install yum-utils

#yum-config-manager --enable remi-php80

#yum install php80 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip php-imagick

Проверяем версию.

#php –v

Включаем php-fpm.

#systemctl start php-fpm.service

#systemctl enable php-fpm.service

-2

Устанавливаем и настраиваем MariaDB.

#yum install mariadb-server

#systemctl start mariadb.service

#systemctl enable mariadb.service

Проверяем статус

#systemctl status mariadb.service

-3

Настраиваем базу данных.

#mysql_secure_installation

пароль по умолчанию пустой

Set root password? [Y/n] Y

необходимо назначить свой пароль для базы данных, далее со всем соглашаемся

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

#mysql -u root –p

CREATE DATABASE bookstack_data;

CREATE USER 'bookstack_user'@'localhost' IDENTIFIED BY 'пароль к БД';

GRANT ALL PRIVILEGES ON bookstack_data.* TO 'bookstack_user'@'localhost';

FLUSH PRIVILEGES;

Exit

-4

Устанавливаем Nginx

# yum install -y nginx

Запускаем Nginx и делаем что бы служба стартовала при перезагрузки системы.

#sudo systemctl start nginx.service

#sudo systemctl enable nginx.service

Устанавливаем composer

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

#mv composer.phar /usr/bin/composer

#composer -v

-5

Устанавливаем BookStack

Ставим git

#yum -y install git

Создаем папку www

#mkdir -p /var/www

Переходим в нашу папку

#cd /var/www

Клонируем программу из git

#git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

Запускаем контейнер

#cd BookStack/

#composer install

-6

Копируем и редактируем файл конфигурации

#cp .env.example .env

#nano .env

Вносим следующие изменения в файл и сохраняем (Ctrl+x)

APP_URL=http://ставим либо ip либо имя вашего сервера

# Database details

APP_LANG=ru

DB_HOST=localhost

DB_DATABASE=bookstack_data

DB_USERNAME=bookstack_user

DB_PASSWORD=ваш пароль к бд

-7

Меняем права на каталог и генерируем ключ php

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

Генерируем ключ

#php artisan key:generate

#php artisan migrate

-8

Редактируем конфигурационный файл Nginx

#nano /etc/nginx/conf.d/bookstack.conf

заменяем содержимое

server {

listen 80;

server_name localhost;

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.sock;

}

location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {

expires 30d;

access_log off;

}

}

-9

Редактируем php.ini

#nano /etc/php.ini

Находим строку #cgi.fix_pathinfo=1, снимаем символ комментария # и значение меняем на 0

cgi.fix_pathinfo=0

-10

Редактируем www.conf

#nano /etc/php-fpm.d/www.conf

Находим и меняем значение следующих строк

user = nginx

group = nginx

Находим и меняем значение строк

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

Находим и меняем значение следующих строк и снимаем символ комментария #

listen.owner = nginx

listen.group = nginx

listen.mode = 0660

Находим и снимаем символ комментария #

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

-11
-12

Проверяем и перезагружаем Nginx, добавляем правила

#nginx -t

#systemctl restart nginx

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

#firewall-cmd --reload

-13

Далее мы открываем любой браузер и загружаем сайт либо по ip либо по доменному имени, логин администратора по умолчанию admin@admin.com, а пароль password

-14