Переменные окружения
Веб-сервер
Для настройки компонентов используются переменные окружения. Веб-сервер nginx использует директиву fastcgi_param для задания значений переменным. Для удобства, все необходимые директивы необходимо записать в отдельный файл и использовать директиву include в обработчике php. В nginx пути для include вычисляются от корневого каталога с настройками /etc/nginx, а не от текущего файла!
Пример конфигурации сервера приведён в разделе Установка системы.
Настройка соединения с PostgreSQL
Переменные окружения:
DATABASE_URL
- URL базы данных, всегда должен быть указан!!!
DATABASE_URL
представляет из себя строку вида postgres://shcc:PASSWORD@localhost/shcc
, где postgres - имя драйвера БД (не используется), shcc:PASSWORD
- имя пользователя и пароль для подключения в БД, localhost
- адрес сервера базы данных,shcc
(после /) - имя базы данных.
Настройка хранилища Redis
При настройке Redis по умолчанию никаких настроек производить не требуется.
Переменные окружения:
REDIS_URL
- URL сервера Redis, по умолчанию 127.0.0.1:6379;
Параметр работает аналогично DATABASE_URL
. Для TLS соединения необходимо указать драйвер rediss
, например, rediss://127.0.0.1/
.
Настройка механизма сессий
Переменные окружения:
SESSION_NAME
- имя сессии (по умолчанию “neuron”);SESSION_TIME
- длительность долгосрочной сессии (по умолчанию 2592000 секунд=30 дней);SESSION_PATH
- путь для куки, менять не рекомендуется, по умолчанию “/”;SESSION_DOMAIN
- домен для куки, можно использовать значение по умолчанию “”;SESSION_SECURE
- передача куки только через соединение https, по умолчанию отключено, для включения необходимо установить переменной любое значение;SITE_ADMINS
- список логинов администраторов SHCC, они будут иметь доступ к любым разделам сайта не зависимо от групп доступа, которые заданы для пользователя в БД, а также в закрытые разделы, недоступные обычным пользователям.
Общие настройки системы
Переменные окружения:
TZ
- ваш часовой пояс, по умолчанию, настройка часового пояса SHCC не происходит и используется системный часовой пояс;DEBUG
- режим отладки, включает отображение сообщений о системных ошибках вместо страницы с кодом ошибки 500, необходимо присвоить переменной любое значение.
Включать режим отладки на сервере нет необходимости, т.к. сообщения об ошибках записываются в системный журнал.
Рекомендации по настройке
Минимально необходимые настройки:
fastcgi_param DATABASE_URL "postgres://shcc:PASSWORD@localhost/shcc";
fastcgi_param APP_ADMINS my_user;
где PASSWORD
- пароль для доступа к базе данных shcc; my_user
- логин вашего пользователя SHCC, который будет иметь полный доступ к системе, можно указать несколько логинов через запятую. Поскольку пароль в отрытом виде отображается через phpinfo() не рекомендуется размещать файл с данной командой на сайте SHCC.
Рекомендуемые настройки:
fastcgi_param SESSION_NAME shcc;
fastcgi_param TZ Asia/Uekaterinburg;
В качестве SESSION_NAME
необходимо указать уникальную строку. Она будет использована в именах куки.
При явном указании часового пояса будет произведена соответствующая настройка PHP и PostgreSQL не зависимо от их настроек по умолчанию.
Системные сервисы
Для системных сервисов, при необходимости, создаётся отдельный ENV файл /etc/sysconfig/shcc
.
Данный файл будет использован для установки переменных окружения для процессов, запущенных в виде системных сервисов. Непосредственно сервисы не обращаются к базе данных и хранилищу Redis, поэтому, в большинстве случаев необходимости создавать файл нет.
Переменные окружения, характерные только для системных сервисов:
SERVER_URL
- адрес http сервера для взаимодействия с системой, по умолчаниюhttp://127.0.0.1
.
Если по какой-то причине SHCC по данному адресу недоступен и должен использоваться другой, например http://shcc.local
, то необходимо задать переменную окружения:
SERVER_URL=http://shcc.local
Если ваш экземпляр SHCC установлен на вашей основной машине и сервисы работают от имени вашего пользователя, то для доступа сервиса к pulseaudio/pipewire необходимо задать переменную окружения:
XDG_RUNTIME_DIR=/run/user/1000
где 1000 - UID вашего пользователя.