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

Требования⚓︎

Grav специально разработан с небольшими требованиями. Вы можете легко запустить Grav на своем локальном компьютере, а также на 99% хостингов. Требования такие:

  1. Веб-сервер (Apache, Nginx, LiteSpeed, Lightly, IIS и т. п.)
  2. PHP 7.3.6 или выше
  3. Вот и всё!

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

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

Веб-серверы⚓︎

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

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

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

Mac⚓︎

  • MacOS 12.0 Monterey уже поставляется с веб-сервером Apache и PHP актуальной версии. При желании можно использовать несколько версий PHP.
  • MAMP/MAMP Pro поставляется с Apache, MySQL и, конечно, с PHP. Это отличный способ получить больше контроля над тем, какую версию PHP вы используете, настраивая виртуальные хосты, а также другие полезные функции, такие как автоматическая обработка динамических DNS.
  • AMPPS это программный стек от Softaculous, позволяющий использовать Apache, PHP, Perl и Python. Это включает в себя всё, что вам нужно (и даже больше) для разработки Grav.

Windows⚓︎

  • Open Server Panel это портативная серверная платформа и программная среда, созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий.
  • Laragon портативная, изолированная, быстрая и мощная универсальная среда разработки для PHP, Node.js и многое другое. Быстрая, легкая, простая в использовании и легко расширяется.
  • XAMPP предоставляет Apache, PHP и MySQL в одном простом пакете.
  • EasyPHP предоставляет персональный пакет веб-хостинга, а также более мощную версию для разработчиков.
  • Подсистема Linux это отличный способ запустить Linux-подобную среду на Windows
  • WinNMP - для любителей чего-то уж совсем простого

Linux⚓︎

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

Требования Apache⚓︎

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

  • mod_rewrite
  • mod_ssl (если вы хотите запустить Grav с поддержкой SSL)

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

Требования IIS⚓︎

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

Для работы Grav на IIS-сервере необходимо установить модуль URL Rewrite. Это может быть достигнуто с помощью установщика веб-платформы Microsoft изнутри IIS. Вы также можете установить URL Rewrite, перейдя по ссылке iis.net.

Требования PHP⚓︎

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

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

Для включения поддержки openssl и zip вам нужно найти в файле php.ini такие строки:

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

и удалить символы точек с запятой.

Дополнительные модули⚓︎

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

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

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

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

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

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

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

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

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

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

groups USERNAME

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

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.

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

Хотя вы можете использовать Notepad, 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. MarkdownPad - Windows - бесплатная и профессиональная версии. Даже имеет поддержку YAML. Отличное решение для пользователей Windows.
  3. Mark Text - Бесплатный редактор Markdown с открытым исходным кодом для Windows/Linux/MacOS.

FTP-клиенты⚓︎

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

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

Git⚓︎

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

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