Создаем базу знаний на GRAV + Learn2

Grav CMS — файловая (не использующая БД) система управления сайтами. В сочетании с шаблоном Learn2 отлично подходит для создания базы знаний и\или документации к какому-либо продукту. По оформлению близка к известному ReadTheDocs.

Установка веб-сервера подробно описана тут, в листингах ниже приведу только необходимые в текущей настройке команды и конфиги.

Обновляемся и ставим пакеты Nginx и php-fpm.

$ apt-get update
$ apt-get install nginx php-fpm unzip

Устанавливаем дополнительные библиотеки PHP.

$ apt-get install php-curl php-dompdf php-gd php-mbstring php-xml php-zip

Создаем конфиг Nginx; указанную директорию (/var/www/grav) создадим позже, при распаковке архива.

$ nano /etc/nginx/sites-available/grav.koobik.lan
server {
    listen 80;
    root /var/www/grav/;
    index index.php index.html;
    server_name grav.koobik.lan;

          location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
    location ~* /(system|vendor)/.*\.(txt|xml|md|html|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return >
    location ~* /user/.*\.(txt|md|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htacc>

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        }
}
$ ln -s /etc/nginx/sites-available/grav.koobik.lan /etc/nginx/sites-enabled/grav.koobik.lan
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ systemctl reload nginx.service

Качаем GRAV с официального сайта (версию Core + Admin Plugin), закидываем на сервер и распаковываем.

$ unzip grav-admin-v1.7.32.zip -d /var/www/
$ ls -1 /var/www
grav-admin
html

Как видно выше, внутри архива с CMS все файлы спрятаны в директорию grav-admin, а мы в конфиге nginx указали grav. Можно или поменять название в конфиге, или переименовать директорию, я пойду по второму пути.

$ mv /var/www/grav-admin /var/www/grav

Меняем владельца на файлах и директориях, проверяем.

$ chown -R www-data:root /var/www/*
$ ls -l /var/www/grav/
total 544
-rw-r--r--  1 www-data root 214288 Mar 28 17:38 CHANGELOG.md
-rw-r--r--  1 www-data root   5476 Mar 28 17:38 CODE_OF_CONDUCT.md
-rw-r--r--  1 www-data root   7098 Mar 28 17:38 CONTRIBUTING.md
-rw-r--r--  1 www-data root   1071 Mar 28 17:38 LICENSE.txt
-rw-r--r--  1 www-data root   7664 Mar 28 17:38 README.md
-rw-r--r--  1 www-data root    996 Mar 28 17:38 SECURITY.md
drwxr-xr-x  2 www-data root   4096 Apr  6 06:44 assets
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 backup
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 bin
drwxr-xr-x  5 www-data root   4096 Apr  6 06:44 cache
-rw-r--r--  1 www-data root   4551 Mar 28 17:38 composer.json
-rw-r--r--  1 www-data root 241339 Mar 28 17:38 composer.lock
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 images
-rw-r--r--  1 www-data root   1500 Mar 28 17:38 index.php
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 logs
-rw-r--r--  1 www-data root     72 Mar 28 17:38 now.json
-rw-r--r--  1 www-data root    274 Mar 28 17:38 robots.txt
drwxr-xr-x 10 www-data root   4096 Mar 28 17:38 system
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 tmp
drwxr-xr-x  8 www-data root   4096 Mar 28 17:38 user
drwxr-xr-x 29 www-data root   4096 Mar 28 17:38 vendor
drwxr-xr-x  2 www-data root   4096 Mar 28 17:38 webserver-configs

Теперь в браузере по адресу, сконфигурированному в nginx (в примере — http://grav.koobik.lan), будет доступен интерфейс установки CMS. Если все необходимые модули найдены и нет проблем с правами на директории — откроется окно со скриншота ниже (в противном случае — появится сообщение о нехватке тех или иных пакетов \ прав). Заполните форму для создания учетной записи администратора.

После создания учетной записи браузер перенаправит вас в админ-панель.

Теперь нам необходимо установить шаблон оформления. Нет необходимости скачивать его вручную, все темы и модули для CMS Grav могут быть установлены одним кликом в панели администрирования. Перейдите в раздел Themes, в поиске введите Learn2.

Под темой кликните на Install. CMS проверит зависимости, загрузит и установит тему. Останется только нажать Activate Learn2.

Внешний вид клиентской части изменится. На дефолтной странице Typography можно найти примеры визуального оформления.

На этом установка завершена, информацию по администрированию CMS Grav можно найти тут.

Также рекомендую «допилить» веб-сервер с точки зрения безопасности:
Установка сертификата SSL в NGINX
Ограничение доступа в NGINX

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *