Перейти к содержанию

Требования

Grav намеренно спроектирован так, чтобы предъявлять минимум требований. Вы можете без труда запустить Grav на своём локальном компьютере, как и на 99 % хостинг-провайдеров. Если под рукой есть ручка, запишите следующие системные требования Grav:

  1. Веб-сервер (Apache, Nginx, LiteSpeed, Lightly, IIS и т. д.)

  2. PHP 8.3.11 или выше

  3. хм… собственно, это всё (но для комфортной работы всё же ознакомьтесь с требованиями к PHP)!

Grav построен на обычных текстовых файлах для вашего контента. База данных не нужна.

Внимание

Для оптимальной производительности настоятельно рекомендуется пользовательский кэш PHP, например APCu, Memcached или Redis. Впрочем, не волнуйтесь: обычно они уже входят в ваш хостинговый пакет!

Веб-серверы

Grav настолько прост и универсален, что для него даже не нужен веб-сервер. Его можно запустить прямо на встроенном веб-сервере PHP, если у вас установлен PHP 8.3.11 или более поздняя версия.

Тестирование на встроенных веб-серверах — полезный способ проверить установку Grav и немного поработать над разработкой, но он не рекомендуется для действующего сайта и даже для сложных задач разработки. Мы описали этот способ в руководстве по установке.

Хотя технически отдельный веб-сервер не обязателен, лучше всё же использовать его — даже для локальной разработки. Есть много отличных вариантов:

macOS

  • MAMP/MAMP Pro поставляется с Apache, MySQL и, конечно, PHP. Это отличный способ получить больше контроля над версией PHP, настраивать виртуальные хосты и пользоваться другими полезными фичами, например автоматической обработкой динамического DNS.
  • DDEV — среды разработки PHP на Docker.
  • AMPPS — программный стек от Softaculous, включающий Apache, PHP, Perl, Python… В нём есть всё необходимое (и даже больше) для разработки на Grav.
  • Brew Apache/PHP — альтернативный подход, позволяющий получить полностью настраиваемую установку с различными версиями PHP.

Windows

  • Laragon — портативная, изолированная, быстрая и мощная универсальная среда разработки для PHP, Node.js и многого другого. Она быстрая, лёгкая, простая в использовании и легко расширяется.
  • XAMPP предоставляет Apache, PHP и MySQL в одном простом пакете.
  • EasyPHP предлагает пакет для персонального веб-хостинга, а также более мощную версию для разработчиков.
  • MAMP для Windows — давний фаворит на Mac, теперь доступный и для Windows.
  • IIS с PHP — быстрый способ запустить PHP в Windows.
  • DDEV — среды разработки PHP на Docker.
  • AMPPS — программный стек от Softaculous, включающий Apache, PHP, Perl, Python… В нём есть всё необходимое (и даже больше) для разработки на Grav.
  • Подсистема Linux — отличный способ запустить окружение, похожее на Linux, в Windows.

Примечание переводчика

Из собственного опыта могу порекомендовать Open Server Panel (Windows) и Laravel Herd (Windows, MacOS)

Linux

  • Многие дистрибутивы Linux уже включают Apache и PHP. Если нет, дистрибутив обычно предоставляет менеджер пакетов, через который их можно установить без особых хлопот. Более сложные конфигурации стоит искать с помощью хорошей поисковой системы.

Требования к Apache

Хотя большинство дистрибутивов Apache поставляются со всем необходимым, для полноты приведём список требуемых модулей Apache:

  • mod_rewrite
  • mod_ssl (если вы хотите запускать Grav под SSL)
  • mod_mpm_itk_module (если вы хотите запускать Grav под отдельной учётной записью пользователя)

Также убедитесь, что в блоках <Directory> и/или <VirtualHost> установлено AllowOverride All, чтобы файл .htaccess обрабатывался правильно и правила перезаписи вступали в силу.

Требования к IIS

Хотя IIS считается веб-сервером, готовым к работе «из коробки», некоторые изменения всё же нужно внести.

Чтобы Grav работал на сервере IIS, необходимо установить URL Rewrite. Это можно сделать с помощью Microsoft Web Platform Installer прямо из IIS. Также URL Rewrite можно установить, зайдя на iis.net.

Требования к PHP

Большинство хостинг-провайдеров и даже локальных установок LAMP имеют PHP, предварительно настроенный со всем необходимым для работы Grav «из коробки». Однако некоторые установки Windows и даже дистрибутивы Linux — локальные или на VPS (это я смотрю на тебя, Debian!) — поставляются с очень минимальной сборкой PHP. Поэтому вам может потребоваться установить или включить следующие модули PHP:

  • curl (клиент для работы с URL, используется GPM)
  • ctype (проверка классов символов, используется валидацией и symfony/yaml)
  • dom (используется для разбора и очистки HTML)
  • gd (графическая библиотека для обработки изображений)
  • json (используется Symfony/Composer/GPM)
  • libxml (базовый XML-парсер для dom и simplexml)
  • mbstring (поддержка многобайтовых строк)
  • openssl (библиотека защищённых сокетов, используется GPM)
  • session (используется для входа и flash-сообщений)
  • simplexml (используется для разбора и очистки медиафайлов SVG)
  • zip (используется Composer и GPM для распаковки пакетов)

Необязательные, но рекомендуемые:

  • fileinfo (точное определение MIME-типа для загрузок и медиафайлов)
  • intl (форматирование с учётом локали на многоязычных сайтах)
  • exif (чтение ориентации и данных камеры из изображений)
  • pdo_sqlite (включает более быстрое хранилище индекса страниц на больших сайтах)

Чтобы включить поддержку openssl и (рас)паковки zip, найдите в файле php.ini вашего дистрибутива Linux строки вроде:

;extension=openssl.so
;extension=zip.so

и удалите ведущую точку с запятой.

Необязательные модули
  • apcu для повышения производительности кэша
  • opcache для повышения производительности PHP
  • yaml — PECL Yaml обеспечивает нативную обработку YAML и может значительно повысить производительность
  • xdebug полезен для отладки в среде разработки

Права доступа

Чтобы Grav работал корректно, ваш веб-сервер должен иметь соответствующие права доступа к файлам для записи журналов, кэша и т. д. При использовании CLI (интерфейса командной строки) или GPM (менеджера пакетов Grav) пользователь, запускающий PHP из командной строки, также должен иметь соответствующие права на изменение файлов.

По умолчанию Grav устанавливается с правами 644 для файлов и 755 для папок. У большинства хостинг-провайдеров конфигурация обеспечивает веб-серверу, работающему с PHP, возможность создавать и изменять файлы в вашей учётной записи. Это значит, что Grav работает из коробки у подавляющего большинства хостинг-провайдеров.

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

  1. В локальной среде разработки обычно можно настроить веб-сервер так, чтобы он работал под вашим профилем пользователя. Тогда веб-сервер всегда будет разрешать вам создавать и изменять файлы.

  2. Измените права группы для всех файлов и папок, чтобы группа веб-сервера имела доступ на запись к файлам и папкам при сохранении стандартных прав. Для этого потребуется несколько команд.

Сначала выясните, под каким пользователем работает Apache, выполнив следующую команду:

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

Теперь узнайте, к какой группе принадлежит этот пользователь, выполнив эту команду (примечание: замените USERNAME на имя пользователя Apache, найденное в предыдущей команде):

groups USERNAME

(примечание: замените GROUP на группу, под которой работает ваш Apache, найденную в предыдущей команде: [www-data, apache, nobody и т. д.]):

1
2
3
4
5
6
chgrp -R GROUP .
find . -type f | xargs chmod 664
find ./bin -type f | xargs chmod 775
find . -type d | xargs chmod 775
find . -type d | xargs chmod +s
umask 0002

Если нужно использовать права суперпользователя, вместо этого выполните find … | sudo xargs chmod ….

PhpStorm

Grav разрабатывается с использованием PhpStorm, что делает его лучшей IDE для Grav. Однако он не бесплатный.

PhpStorm лучше всего подходит PHP-разработчикам, в том числе тем, кто пишет сложные плагины Grav. Он предлагает автоматическую компиляцию кода для Grav (достаточно добавить Grav и используемые плагины в includes), а также множество других инструментов для помощи в разработке. У него также хорошая поддержка форматирования twig, yaml, html, js, scss и tailwind.

Текстовые редакторы

Хотя можно обойтись Блокнотом, Textedit, Vi или любым другим текстовым редактором по умолчанию в вашей системе, мы рекомендуем использовать хороший текстовый редактор с подсветкой синтаксиса, чтобы упростить работу. Вот несколько рекомендуемых вариантов:

  1. Visual Studio Code — подобно Atom, он построен на Electron, Node, а также HTML/CSS. Он довольно лёгкий и имеет множество плагинов, включая очень хорошую поддержку PHP и JavaScript. Это текущий рекомендуемый редактор для разработки под Grav.
  2. SublimeText — MacOS/Windows/Linux — коммерческий редактор для разработчиков, но вполне стоит своих денег. Очень мощный, особенно в сочетании с такими плагинами, как Markdown Extended, Pretty YAML и PHP-Twig.
  3. Notepad++ — Windows — бесплатный и очень популярный редактор для разработчиков под Windows.
  4. Bluefish — MacOS/Windows/Linux — бесплатный текстовый редактор с открытым исходным кодом, ориентированный на программистов и веб-разработчиков.
  5. Kate — MacOS/Windows/Linux — лёгкий, но мощный и универсальный открытый текстовый редактор и инструмент программирования с подсветкой более 300 языков (включая Markdown).

Редакторы Markdown

Ещё один вариант, если вы в основном работаете только с созданием контента, — использовать специальный редактор Markdown. Они часто ориентированы на контент и обычно обеспечивают живой предпросмотр вашего контента, отрендеренного в HTML. Их буквально сотни, но среди хороших вариантов:

  1. MacDown — MacOS — бесплатный, простой и лёгкий редактор Markdown с открытым исходным кодом.
  2. LightPaper — MacOS — $17.99, чистый и мощный. Наш выбор редактора Markdown на Mac. Скидка 25 % по промокоду: GET_GRAV_25
  3. MarkDrop — MacOS — $5, но очень чистый и со встроенной поддержкой Droplr.
  4. MarkdownPad — Windows — бесплатная и Pro-версии. Поддерживает даже метаданные страницы в YAML. Отличное решение для пользователей Windows.
  5. Mark Text — бесплатный редактор Markdown с открытым исходным кодом для Windows / Linux / MacOS.

FTP-клиенты

Хотя существует множество способов развернуть Grav, по сути вам нужно только скопировать локальный сайт на хостинг. Самый простой способ — использовать FTP-клиент. Их много, но среди рекомендуемых:

  1. Transmit — MacOS — де-факто FTP/SFTP-клиент на MacOS. Простой в использовании, быстрый, с синхронизацией папок и практически всем, что только можно пожелать.
  2. FileZilla — MacOS/Windows/Linux — вероятно, лучший вариант для пользователей Windows и Linux. Бесплатный и очень мощный (но очень некрасивый на Mac!).
  3. Cyberduck — MacOS/Windows — достойный бесплатный вариант для пользователей MacOS и Windows. Не такой функциональный, как другие.
  4. ForkLift — MacOS — надёжная альтернатива Transmit, к тому же немного дешевле.

Git

Если вы используете распределённую систему контроля версий Git на своих средах разработки и серверах, можно настроить простой рабочий процесс через хостинговый сервис Git, например Github или GitLab. Это требует немного больше усилий при настройке, но обеспечивает более чистый и надёжный рабочий процесс, который заодно берёт на себя резервное копирование. Пробуйте это только если вы уверенно владеете Git и его клиентскими инструментами.

Примечание

Подробнее об использовании Git в рабочем процессе мы расскажем позже в разделе Развёртывание с помощью Git главы Веб-серверы и хостинг.