Для запуска одной установленной копии GetSimple CMS со специфичными настройками, применяемыми в разных окружениях, можно каждый раз вручную редактировать файл настроек gsconfig.php или создать для каждого окружения свой вариант файла gsconfig.php и подменять им уже существующий. Нахожу оба варианта не удобными, поэтому предлагаю рассмотреть альтернативный способ с использованием переменной окружения (переменной среды).
Переменные окружения (Environment Variable) это текстовые переменные операционной системы, хранящие информацию о настройках системы и программ. В зависимости от операционной системы переменные окружения могут задаваться разными способами. Но важно, что их можно задать самостоятельно в рамках запущенной сессии командного интерпретатора. Заданные таким способом переменные перестанут существовать после завершения сессии, что и требуется для предлагаемого мною способа запуска и автоматической настройки GetSimple CMS.
Работа со встроенным веб-сервером PHP
Уже долгое время моим основным инструментом при локальной работе с веб-приложениями является встроенный веб-сервер PHP. Он не требует настройки и доступен для использования как в Windows, так и в Linux, сразу после установки PHP. И именно с ним использование переменных окружения особенно удобно.
Для примера предлагаю использовать переменную окружения с именем GS_CONFIG
, установить ей значение debug
, что будет соответствовать запуску GetSimple CMS в режиме отладки. Сразу после установки переменной запускается встроенный веб-сервер PHP, обрабатывающий запросы по адресу http://127.0.0.1:8000.
В зависимости от выбранной операционной системы и командного интерпретатора, переменная окружения устанавливается разными способами. Однако результат будет одинаковым.
Пример для командной строки Windows
set GS_CONFIG=debug
php -S 127.0.0.1:8000
Пример для PowerShell
Set-Item -Path Env:GS_CONFIG -Value debug
# или
# $Env:GS_CONFIG = 'debug'
php -S 127.0.0.1:8000
Пример для Bash
export GS_CONFIG=debug
php -S 127.0.0.1:8000
Если вы не хотите, чтобы переменная GS_CONFIG
была доступна для дочерних процессов текущей сессии, её следует передать непосредственно PHP, без использования команды export
.
GS_CONFIG=debug php -S 127.0.0.1:8000
Теперь, когда значение переменной окружения установлено, надо получить его в файле gsconfig.php и включить режим отладки GetSimple CMS. Делается это при помощи стандартной функции PHP getenv()
.
<?php
if (getenv('GS_CONFIG') == 'debug') {
define('GSDEBUG', true);
}
Аналогично определяются остальные стандартные константы GetSimple CMS или задаются глобальные переменные.
Работа с веб-сервером Apache
Apache это основный веб-сервер, с которым работает GetSimple CMS. При его использовании рассмотренные варианты установки переменной окружения не подходят. Однако Apache имеет свой собственный механизм для работы с переменными окружения при помощи модуля mod_env.
Для получения аналогичного результата, как в случае использования встроенного веб-сервера PHP, в корневом файле .htaccess установите значение переменной GS_CONFIG
. При этом PHP код в файле gsonfig.php остаётся без изменений.
SetEnv GS_CONFIG debug
Рассмотренный способ запуска и автоматической настройки GetSimple CMS в разных окружениях универсален. Переменные окружения и их значения могут использоваться не только в файле gsonfig.php, но и в коде компонентов, для включения и отключения плагинов, для отладки тем оформления и в других случаях локальной работы с системой управления контентом. Главное преимущество такого подхода состоит в отсутствии необходимости создавать копии установок системы управления контентом, файла настроек или ручного изменения настроек для каждого окружения.