Всего на свете не возможно запомнить, но можно это записать, как раз для таких случаев на помощь приходят такие сервисы как база знаний, они облегчат работу нового специалиста, только пришедшего в компанию, и напомнят бывалому админу как он смог это сделать в прошлом.
Нашу систему мы будем разворачивать на 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
Устанавливаем и настраиваем MariaDB.
#yum install mariadb-server
#systemctl start mariadb.service
#systemctl enable mariadb.service
Проверяем статус
#systemctl status mariadb.service
Настраиваем базу данных.
#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
Устанавливаем 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
Устанавливаем 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
Копируем и редактируем файл конфигурации
#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=ваш пароль к бд
Меняем права на каталог и генерируем ключ php
#chown -R nginx:nginx /var/www/BookStack
Генерируем ключ
#php artisan key:generate
#php artisan migrate
Редактируем конфигурационный файл 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;
}
}
Редактируем php.ini
#nano /etc/php.ini
Находим строку #cgi.fix_pathinfo=1, снимаем символ комментария # и значение меняем на 0
cgi.fix_pathinfo=0
Редактируем 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
Проверяем и перезагружаем Nginx, добавляем правила
#nginx -t
#systemctl restart nginx
#firewall-cmd --add-service=http --permanent
#firewall-cmd --reload
Далее мы открываем любой браузер и загружаем сайт либо по ip либо по доменному имени, логин администратора по умолчанию admin@admin.com, а пароль password