Поиск по сайту:

Как установить Grav CMS с Nginx на Ubuntu 16.04


На этой странице

  1. Предпосылки
  2. Что мы будем делать:
  3. Шаг 1. Установите веб-сервер Nginx
  4. Шаг 2. Установка и настройка PHP-FPM
  5. Шаг 3. Установите PHP Composer
  6. Шаг 4. Загрузите и установите Grav
  7. Шаг 5. Настройка виртуального хоста Grav
  8. Шаг 6. Тестирование
  9. Справочник

Grav — это современное веб-приложение, которое не требует базы данных. Это файловая веб-платформа, простая, быстрая и не требующая установки. Grav использует современные технологии, включая Twig Templating для создания шаблонов, Markdown для создания контента, YAML для простой настройки, Parsedown и кэш Doctrine для уровня производительности и т. д. Инструмент написан на PHP и поставляется с мощной системой управления пакетами, которая позволяет вам управлять Система Grav, включая установку и обновление самого Grav, а также тем и плагинов.

В этом уроке я пошагово покажу вам, как установить и настроить Grav CMS в Ubuntu 16.04. Поскольку Grav основан на веб-приложении PHP, нам необходимо установить PHP в системе, а для повышения производительности мы будем использовать PHP-FPM с веб-браузером Nginx.

Предпосылки

  • Убунту 16.04
  • Привилегии root

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

  1. Установите Nginx
  2. Установка и настройка PHP-FPM
  3. Установите PHP Composer
  4. Загрузить и установить Grav CMS
  5. Настройка виртуального хоста Nginx для Grav
  6. Тестирование

Шаг 1 — Установите веб-сервер Nginx

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

sudo apt update
sudo apt upgrade

Теперь установите веб-сервер Nginx.

sudo apt install nginx -y

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

systemctl start nginx
systemctl enable nginx

Веб-сервер Nginx был установлен в Ubuntu 16.04 и работает на HTTP-порту 80 по умолчанию. Проверьте его с помощью команды netstat следующим образом.

netstat -plntu

И вы получите результат, как показано ниже.

Шаг 2 — Установите и настройте PHP-FPM

Теперь мы установим и настроим PHP-FPM для нашей установки Grav. Установите пакеты PHP и PHP-FPM (включая все необходимые расширения), используя следующую команду.

sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml php7.0-zip

Теперь нам нужно настроить PHP-FPM.

- Установить дополнительные расширения

Это необязательно, но лучше всего подходит для производительности Grav. Мы установим некоторые дополнительные расширения вручную из репозитория расширений PHP с помощью команды PECL.

Установите расширение apcu (для увеличения производительности кэша) с помощью приведенной ниже команды pecl.

sudo pecl install apcu

Теперь создайте новую конфигурацию расширения apcu.ini в каталоге /etc/php/7.0/mods-available/.

sudo vim /etc/php/7.0/mods-available/apcu.ini

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

extension=apcu.so

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

Затем активируйте расширение с помощью приведенных ниже команд.

sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/cli/conf.d/20-apcu.ini

Теперь мы установим расширение YAML для дальнейшего повышения производительности Grav. Но перед установкой расширения нам нужно установить некоторые пакеты, используя следующую команду apt.

sudo apt install libyaml-dev unzip -y

Затем установите расширения yaml с помощью команды pecl.

sudo pecl install yaml-2.0.0

После завершения установки создайте новый файл конфигурации yaml.ini.

sudo vim /etc/php/7.0/mods-available/yaml.ini

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

extension=yaml.so

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

Теперь активируйте расширение YAML.

sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/cli/conf.d/20-yaml.ini

Добавлены новые дополнительные расширения PHP для Grav.

- Настроить пул PHP-FPM для Grav

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

useradd -m -s /bin/bash grav
passwd grav

Теперь перейдите в каталог /etc/php/7.0/fpm/pool.d и сделайте резервную копию конфигурации www.conf по умолчанию.

cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak

Затем создайте новую конфигурацию пула PHP-FPM — grav.conf — для Grav.

vim grav.conf

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

[grav]

user = grav
group = grav

listen = /run/php/php7.0-fpm.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

chdir = /

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

Перезапустите службу PHP-FPM и включите ее запуск при загрузке системы.

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

PHP-FPM теперь работает под файлом php7.0-fpm.sock — проверьте его с помощью команды netstat следующим образом.

netstat -pl | grep php

И вы должны получить результат, как показано ниже.

Примечание:

Если вы хотите проверить расширения apcu и yaml, вы можете использовать следующие команды php.

sudo php -m | grep apcu
sudo php -m | grep yaml

Установка и настройка PHP-FPM завершена.

Шаг 3 — Установите PHP Composer

Композитор — это менеджер пакетов уровня приложения для PHP. Он используется для управления зависимостями PHP.

Установите PHP Composer с помощью следующей команды.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

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

composer --version

Компоновщик PHP установлен.

Шаг 4 - Загрузите и установите Grav

Мы установим и запустим инструмент от имени пользователя grav. Пользователь был создан на одном из предыдущих шагов.

Во-первых, войдите в систему как пользователь grav.

su - grav

Теперь создайте новый каталог www.

mkdir -p ~/www
cd ~/www

Загрузите последнюю версию grav с помощью wget и добавьте к имени файла расширение .zip.

wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip

Извлеките файл last.zip и переименуйте каталог grav в html.

unzip latest.zip
mv grav/ html/

Теперь вернитесь к привилегиям root и измените владельца группы на www-data.

exit
cd /home/grav/www
sudo chown -R grav:www-data html/

Теперь Grav загружается и устанавливается пользователем grav в каталоге /home/grav/www/html.

Шаг 5. Настройте виртуальный хост Grav.

На этом этапе мы настроим виртуальный хост Nginx для Grav. Мы создадим новый файл виртуального хоста с именем grav в каталоге, доступном для сайтов, а затем активируем виртуальный хост Grav.

Перейдите в каталог конфигурации /etc/nginx и создайте новый файл grav с помощью редактора vim.

cd /etc/nginx
vim sites-available/grav

Вставьте туда следующую конфигурацию виртуального хоста Grav Nginx.

server {
    ## Define Index
    #listen 80;
    index index.html index.php;

    ## Web root and Domain Name
    root /home/grav/www/html;
    server_name grav.hakase-labs.co;

    ## Begin - Index
    # for subfolders, simply adjust the rewrite:
    # to use `/subfolder/index.php`
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    ## End - Index

    ## Begin - PHP-FPM Configuration
    location ~ \.php$ {
        # Choose either a socket or TCP/IP address
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        # fastcgi_pass 127.0.0.1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }
    ## End - PHP

    ## Begin - Security
    # deny all direct access for these folders
    location ~* /(.git|cache|bin|logs|backups)/.*$ { return 403; }
    # deny running scripts inside core system folders
    location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny running scripts inside user folder
    location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny access to specific files in the root folder
    location ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
    ## End - Security
}

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

Затем активируйте виртуальный хост и проверьте конфигурацию nginx.

ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t

Примечание. Убедитесь, что вы не получили ошибку Nginx после тестирования конфигурации.

Теперь перезапустите службы Nginx и PHP-FPM.

systemctl restart nginx
systemctl restart php7.0-fpm

Настройка виртуального хоста Nginx Grav завершена.

Шаг 6 — Тестирование

Откройте веб-браузер и введите доменное имя своего сайта Grav, мое — http://grav.hakase-labs.co/

И вы получите домашнюю страницу Grav по умолчанию, как показано ниже.

Установка Grav Flat CMS с использованием PHP-FPM и веб-сервера Nginx на Ubuntu 16.04 успешно завершена.

Ссылка

  • https://learn.getgrav.org/