Самая первая глава
1 / 278

Немного информации, которая поможет вам в изучении нашего продукта. Где взять дополнительную информацию, ссылки на частые задачи, видео и другое.

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2020 1С-Битрикс


Справочная информация
2 / 278

Где получать информацию

Научиться работать с продуктами компании «1С-Битрикс» не сложно, но потребуется внимание и определённая мера усидчивости. А поможет в этом различного вида справочная информация, ссылки на которую расположены на сайте компании в разделе Документация.

Разные виды документации

Нажмите на рисунок, чтобы увеличить

  • Онлайн документация для пользователей - описание интерфейса системы управления сайтом, ее основных модулей и наиболее типичных операций. Также в ней содержится полное описание прикладного программного интерфейса.
  • Онлайн документация для разработчиков по старому ядру, по ядру D7 и по Rest_API. Предназначена для технических специалистов со знанием PHP и HTML. В ней содержатся сведения о технологиях и основных принципах, заложенных в систему, описание классов и функций по всем продуктам.

Учебные курсы

Нажмите на рисунок, чтобы увеличить

Онлайн Курсы - это методические пособия по работе с продуктом, которые включают в себя описание и примеры работы с системой.

Контекстная справка

Нажмите на рисунок, чтобы увеличить

Контекстная справка выводит в Административной части системы информацию, относящуюся к открытому в данный момент разделу или странице. Доступна как в 1С-Битрикс: Управление сайтом , так и в коробочном Битрикс24 .

Мастер магазина

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

FAQ - Частые вопросы

Частые вопросы - подборка решений наиболее часто встречающихся проблем при работе с продуктом в удобном представлении.

Документация в файлах формата .chm

Для изучения документации в оффлайн (при отсутствии интернета) созданы файлы в формате справки Windows. Они содержат копию онлайн документации, эти файлы обновляются реже, чем источник на сайте. По возможности рекомендуем использовать онлайн документацию.

Если не видно содержание файла CHM
Внимание! Если вы не видите содержимое файла формата .chm, то причина - настройки безопасности операционной системы: скачанные из интернета файлы находятся под наблюдением системы, которая ограничивает доступ к ним.

Чтобы отключить подобное отношение к файлу необходимо:

  • перейти в свойства файла на вкладку Общие. Внизу у Вас отобразится сообщение о том, что этот файл был заблокирован системой с целью защиты компьютера.

  • нажать кнопку Разблокировать.

Отсутствие кнопки Разблокировать возможно в двух случаях:

  1. Файл лежит не локально, а на сетевом ресурсе.
  2. Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).

Файлы можно скачать с главной страницы учебного курса, либо с описания курса или документации на сайте компании.

Внимание! В файлах формата .chm нет возможности просматривать видеоролики и не работают всплывающие подсказки. Это ограничения формата. Поэтому рекомендуем пользоваться онлайн версией курсов.

Примечание: В дополнение к документации, информацию, касающуюся продуктов компании «1С-Битрикс», можно получить на сайте в разделе форум .

Для администраторов и разработчиков также рекомендуется познакомиться с опытом разработок сайтов на Bitrix Framework, который описывается в блогах разработчиков и в группах Социальной сети сайта компании 1С-Битрикс.


Как отформатирован текст в курсе
3 / 278

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

Вкладки

Текст урока разбивается на тематические вкладки. Сделано это с целью избавить читателя от прокрутики экрана, или минимизировать их. Если вам неудобно пользоваться вкладками, то их можно отключить, тогда весь текст урока будет выводится в виде единого массива.

Внимание! При использовании вкладок не работают ссылки-якоря и поиск в браузере ищет только по открытой вкладке, а не по всему уроку.

Форматирование текста

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

  • Ключевое смысловое слово, фраза.
  • Термины, названия элементов интерфейса: кнопки, вкладки, поля, горячие клавиши, формат или название файла.
  • Название курса, глав курса, разделов и страниц сайтов. (Как правило, название глав или курсов даются ссылкой, но иногда это бывает излишним).
Примеры использования жирного шрифта
Пример названия курса или главы | Изучение курса позволяет освоить основные методы администрирования системы, а так же пополнить знания по темам, изученным в курсе Контент-менеджер.
Пример названий элементов интерфейса: | При этом у компонента Список новостей нужно настроить входные параметры так, чтобы он мог формировать ссылки на страницу детальной новости (с кодом новости). Для этого нужно в группе параметров Шаблоны ссылок в поле URL страницы детального просмотра задать путь к этой странице, а также название параметра, в котором будет передаваться код новости для показа.
Пример ключевой фразы, слова | При регистрации сервера обязательно укажите Домен для NTLM авторизации. Он должен полностью (включая регистр) совпадать с названием домена.

и Курсив и подчёркивание используются для выделения:

  • Названия продуктов компании 1С-Битрикс, других программ и технологических платформ.
  • Названия методов, классов, функций и событий, если нет их описания в API доке. (Если описание есть, то название метода или класса оформляется ссылкой на страницу документации.)
  • Пространство имён в новом ядре D7.
  • Ключевое слово, фраза, термин, если использование жирного шрифта не желательно по каким-то причинам.

Примеры использования курсива
Пример названия метода: | Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически. (Если страница метода в документации есть, то будет так: Перед подключением компонента ко всем значениям параметров применяется функция htmlspecialcharsEx )
Пример названий продуктов и платформ: | Чтобы научиться эффективно работать в Bitrix Framework, нужно не сравнивать то, что вы знаете по другим системам, а стараться понять как то или иное реализуется в этой системе. В плане обучения «сравнительный» подход не работает. Просто отвлекитесь от старых знаний и изучите новую систему, используя только знания PHP и сайтостроения, а не сравнивая идеологии и технологии.
Пример пространства имён в D7: | При необходимости модуль может организовывать подпространства внутри своего пространства имен. Например, Bitrix\Main\IO, Bitrix\Forum\SomeName\SomeNameTwo.

Серый фон текста используется для выделения:

  • путей в рамках файловой системы.
  • атрибутов, тегов html, параметров функций, переменных, значения полей и настроек и листинга кода, который нет смысла помещать в стиль для листинга.
Примеры использования серого фона
Пример выделения путей в рамках файловой системы: | Результаты кеширования сохраняются в виде файлов в каталоге /bitrix/cache/.
Пример выделения атрибутов, тегов и так далее: | Если в компоненте написать код: $arParams = & $arSomeArray; то переменная $arParams будет отвязана от члена класса компонента и привязана к массиву $arSomeArray.

Синий курсив с > используется для подсветки путей в продукте. То есть пути выглядят так же как они оформлены в административном отделе системы.

Примеры использования синего курсива
Пример оформления путей в административном отделе системы: Файлы кеша можно удалить в административной части на закладке Очистка файлов кеша страницы Настройки > Настройки продукта > Автокеширование.

Синий шрифт используется для подсветки УРЛ без создания собственно ссылки - псевдо УРЛ.

Примеры использования синего шрифта
Пример псевдо УРЛ: При помощи access_token приложение совершает запросы к REST-сервису до его истечения.
https://имя_портала.bitrix24.ru/rest/user.current?auth=код_авторизации

Форматирование текста цветом используется в случаях, когда надо выделять информацию, относящуюся к разным сущностям в параллельных процессах.

Примеры использования цветного шрифта
Цветной шрифт:
  • Настроить инфоблок на контроллере:

    ........

  • На подключенном сайте надо создать инфоблок с таким же значением внешнего кода, как и на контроллере. Кроме привязки к сайту, названия и внешнего кода необходимо настроить и права доступа к инфоблоку.

    ......

Форматирование абзацев текста

Форматирование целых абзацев текста используется для выделения какой-либо информации с целью указать направленность этой информации.

Определения каких-либо сущностей, явлений, терминов и так далее выводятся в абзацах такого вида:

Статическая информация – это информация, которая редко изменяется с течением времени. Например, рекламные тексты, история компании, контактная информация и т.п. Статическая информация создается, редактируется, дополняется и удаляется пользователями, обладающими правом на редактирование страниц сайта. Такое редактирование производится, как правило, в визуальном редакторе непосредственно в тексте самой страницы.

В Примечании размещается информация, поясняющая текст на странице, на которую стоит обратить внимание. Это могут быть примеры, расширенное объяснение, уточнение, ссылка на дополнительную информацию. Например:

Примечание. В ядре D7 настройки кеширования производятся в специальном файле

Предупреждения - это информация, имеющая критическое значение для работы того или иного функционала продукта. Например:

Важно! Если курс был деактивирован, то результаты тестов и сертификаты по этому курсу будут недоступны пользователям. Если курс был удален, то результаты тестов и сертификаты этого курса будут также удалены.

В особо важных случаях в этом виде форматирования может использоваться красный шрифт.

Всплывающие подсказки

Всплывающие подсказки обозначаются цветом шрифта и пунктирным подчёркиванием. Такие подсказки используются там, где:

  • Нужно пояснить какой-то термин.
    Пример: Как правило, все сайты имеют возможность авторизации из публичного раздела .
  • Дать наглядное представление о команде интерфейса.
    Пример: При включённом режиме Правки откройте на редактирование элемент инфоблока , например, новость.
  • Дать дополнительную, но не относящуюся напрямую к выполняемым работам, информацию.
    Пример: Этот инструмент создаст ссылку с одним единственным слешом после домена сайта .
  • Дать описание и ссылку на страницу компонента в пользовательской документации.
    Пример: Простую фотогалерею в публичном разделе выводит комплексный компонент Фотогалерея 2.0 .
Внимание! Всплывающие подсказки не работают в файлах формата CHM. Интернет на мобильных устройствах на сегодняшний день - не проблема, используйте эти файлы документации только в крайнем случае.

Спойлеры, скрывающие текст

В спойлерах размещается информация, которая имеет вторичное значение, но может быть полезна "для общего развития". Для открытия спойлера надо просто кликнуть на "+" в спойлере:

Задание окна для открытия ссылки при редактировании в режиме кода (для ознакомления)

В коде каждый из пунктов этого списка задается с помощью атрибута target тега <a>. Атрибут target может принимать соответственно следующие значения:

  • _blank;
  • _parent;
  • _self;
  • _top.

Чтобы избежать лишней прокрутки экрана, в спойлерах может быть размещена большая по объёму информация.

Видеоролики

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


Если нет времени на изучение
4 / 278

Если нет времени на изучение...

Вам, конечно же, встречалась ситуация, когда дали на исполнение задачу, которую надо сделать "вчера", а вы пока не знакомы с системой. Эта страница - для таких случаев.

Здесь приводятся ссылки на уроки, в которых описаны некоторые типовые операции при администрировании сайтов, созданных на "1С-Битрикс: Управление сайтом". Также проводится информация о решении редких задач.

Из курса Администратор.Базовый Из других курсов
Общая работа с сайтом
  • Как применять шаблоны дизайна к сайту
  • Как добавить новый сайт
  • Как создать или отредактировать страницу/раздел в административной части
  • Как импортировать пользователей
  • Как добавить новый язык в систему
  • Как быстро закрыть доступ к публичной части, как сделать страницу "для своих"
  • Как добавить пункт меню в административный раздел
  • Как создать резервную копию сайта
  • Как обеспечить безопасность сайта
  • Как очистить кеш
  • Google Sitemap
  • Как добавить смайлы
  • Как активировать купон для перехода на новую редакцию
  • Как перенести сайт на удаленный сервер
  • Как создавать и использовать шаблоны сайта
  • Как протестировать веб-проект
Решение возможных проблем
  • Что делать, если пропадает авторизация пользователя
  • Как восстановить пароль администратора
  • Вероятные причины ошибки 500 - Internal Server Error
  • Как сделать сайт быстрым
Разное
  • Как регистрировать пользователей и задавать им права
  • Как ограничить использование компонентов для пользователя
  • Как использовать произвольный php-скрипт
  • Как создать группу пользователей "Контент-менеджер"
  • Как отключить просмотр физической структуры сайта и установить права на файлы и папки
  • Рейтинги. Примеры работы
  • Как управлять форумами сайта
  • Как организовать службу техподдержки


Видеоматериалы к курсу "Администратор. Базовый"
5 / 278

Лучше один раз увидеть...

Визуалам (людям, которые лучше воспринимает информацию зрительно, чем на слух или в текстовой форме) помогут учебные видеоматериалы. В настоящее время ведется активная работа по созданию и добавлению новых видеороликов, демонстрирующих основные возможности продукта. Поэтому рекомендуем во время прохождения курса Администратор. Базовый периодически возвращаться на эту страничку и просматривать новые видеоролики.

Название видеоролика | Длительность, мин:сек | Относится к уроку
Основы администрирования
Создание раздела в административной части | 2:14 | Создание и редактирование новых страниц и разделов
Настройка прав доступа к разделам (папкам) и страницам (файлам) | 2:22 | Управление правами доступа
Как ограничить доступ к разделу и скрыть пункт меню | 1:50 | Расширенный режим настройки меню
Основные настройки визуального редактора | 2:15 | Визуальный редактор
Добавление пункта меню в административный раздел | 2:12 | Добавление пункта меню в административный раздел
Как добавить сайт | 2:32 | Управление сайтами и пример создания
Как сделать страницу, видимую для сотрудников, но не для пользователей | 3:42 | Управление доступом
Пример добавления языка в административный интерфейс | 2:28 | Управление языками
Как добавить пользовательское поле | 1:38 | Пример добавления поля
Проверка настроек правил обработки адресов | 1:06 | Проверка настроек
Как добавить смайлы | 2:32 | Смайлы
Пользователи и авторизация
Как добавить пользователей на сайт | 1:45 | Импорт пользователей
Группы пользователей: добавление новой группы | 3:53 | Управление группами пользователей
Настройка минимальных прав доступа для группы контент-редакторов новостей | 3:56 | Управление группами пользователей
Требования законодательства РФ
Персональные данные | 0:58 | Согласие на обработку персональных данных
Резервное копирование
Резервное копирование | 2:26 | Регулярное резервное копирование
Облако 1С-Битрикс
Инспектор сайтов | 1:41 | Инспектор сайтов


Основные сведения о системе
6 / 278
В главе опишем основные сведения о системе, дадим глоссарий терминов и схему работы продукта.


Модульная структура
7 / 278

Что такое модуль?

Продукты "1С-Битрикс: Управление сайтом" и "Битрикс24" имеют модульную структуру.

Модуль - объёмная часть программного кода, отвечающая за определённый функционал на сайте. Каждый модуль отвечает за управление определенными элементами и параметрами портала: информационным наполнением и структурой, форумами, рекламой, рассылкой, распределением прав между группами пользователей, сбором статистики посещений, оценкой эффективности рекламных кампаний и так далее.
Возможности редакции (лицензии) продукта, что она может, а что - нет, определяется набором модулей. Проверить состав вашей редакции можно на странице Лицензии.

Модули системы, главным образом, работают независимо друг от друга. Но есть и зависимости, функционал одних модулей основан на возможностях других. Например:

  • Модуль Торговый каталог расширяет возможности модуля Информационные блоки и позволяет выполнять настройку цен товара в зависимости от различных условий, применять к товарам наценку и скидки и т.п.
  • Модуль Документооборот позволяет организовать последовательную коллективную работу с содержимым модулей Информационные блоки и Управление структурой.

Список модулей

Список используемых модулей выводится на странице Управление модулями (Настройки > Настройки продукта > Модули) в административном разделе системы:

Нажмите на рисунок, чтобы увеличить

Таблица содержит название и описание модулей, информацию о версии и дате последнего обновления, а также текущий статус в системе:

  • Установлен – модуль и его элементы доступны для использования .
  • Не установлен – модуль не доступен для использования в системе.

Функционал модулей

Функционал установленных модулей виден в соответствующей секции административного меню системы.

Для некоторых модулей данные в меню загружаются динамически. Например:

  • для модуля Информационные блоки выполняется динамическая загрузка списка типов инфоблоков;
  • для модуля Веб-формы выполняется динамическая загрузка списка веб-форм;
  • для модуля Управления структурой выполняется динамическая загрузка файловой структуры.

В зависимости от прав на доступ к модулям системы не всем доступен тот или иной функционал модуля. Управление уровнем прав пользователей на доступ к модулям системы осуществляется отдельно для каждого модуля на странице его настроек.

Настройка модулей

Страница настроек модуля имеет различное число вкладок и полей, в зависимости от функционала модуля. Перейти к ней можно следующими способами:

  • с помощью административного меню: Настройки > Настройки продукта > Настройки модулей > имя_модуля;
  • с помощью кнопки Настройки Кнопка, расположенной на административной панели. По этой кнопке вы перейдете к настройкам модуля, страницы (формы) которого открыты в текущий момент в основной рабочей области.

Документация по теме

  • Пользовательская документация по продукту


Глоссарий
8 / 278

Что есть что?

Каждая платформа имеет свои термины, используемые в работе. Чтобы без проблем ориентироваться в документации, учебных курсах, при общении с разработчиками желательно объяснять ваши трудности не «на пальцах», а на языке понятном специалистам. Ниже в помощь вам приведен глоссарий терминов системы и несколько общих терминов, активно используемых в системе.

  • Административная часть
  • Публичная часть
  • Режим Правка
  • Сайт
  • Шаблон сайта
  • Раздел сайта
  • Компоненты
  • Путь к компоненту
  • Включаемые области
  • Навигационная цепочка
  • Индексная страница (файл)
  • Пользователь
  • Группа пользователей
  • Почтовое событие
  • Тип почтового события
  • Почтовый шаблон
  • Путь относительно корня
  • Полный путь
  • Абсолютный путь
  • DocumentRoot
  • Система обновлений
  • Язык
  • Языковой файл
  • Многоязычный интерфейс
  • Локализация
  • Мета-тэг
  • Доменное имя (домен)
  • Хост
  • IP адрес
  • Сессия
  • Время в Unix-формате
  • Права в Unix системах
  • Пролог
  • Эпилог
  • Тело страницы
  • Шаблон страницы
  • Сабмит
  • HTML-безопасный вид
  • Связывание переменных
  • Дамп
  • cron (крон)
  • Буферизация
  • Постоянное соединение (persistent)
  • Accept-Language
  • Кастомизация
  • API
  • Экземпляр программы
  • Портал

Термин | Описание
Административная часть Раздел системы, содержащий интерфейс для управления модулями системы, структурой, содержанием, посетителями и другими составляющими сайта. Страницы, в которых подключен административный пролог и эпилог. Эти страницы:
  • не принадлежат ни одному сайту;
  • принадлежат какому-либо модулю;
  • имеют строго определённый административный интерфейс;
  • отображаются в выбранном языке интерфейса;
  • дополнительно проверяются по правам, задаваемым в настройках соответствующего модуля.
Публичная часть Раздел системы, доступный для отображения посетителям сайта.На страницах раздела подключается пролог и эпилог одного из шаблонов сайта. Эти страницы:
  • принадлежат какому либо сайту;
  • имеют интерфейс текущего шаблона сайта;
  • отображаются на языке текущего сайта.
Режим Правка | Режим, при котором текущая страница публичного раздела отображается в особом виде: выделены используемые компоненты, включаемые области, редактируемые области и т.д. Каждая такая область имеет набор кнопок для быстрого перехода к редактированию данного элемента страницы.
Сайт Совокупность параметров:
  • учетная запись в базе данных - создаётся в административном меню Сайты, включает в себя:
    • идентификатор - набор символов, идентифицирующий сайт;
    • доменное имя - одно или более доменное имя сайта;
    • папка сайта - путь к каталогу в котором будет храниться публичная часть сайта;
    • язык сайта;
    • формат даты и времени;
    • URL - протокол и доменное имя по умолчанию (например, http://www.site.ru);
    • DocumentRoot - если многосайтовость организована на разных доменах, то в данном параметре должен храниться путь в файловой системе сервера к корню сайта;
    • условия подключения шаблонов - каждый сайт может иметь один или более шаблонов для отображения скриптов своей публичной части, каждый такой шаблон может быть подключен по тому или иному условию;
  • публичная часть - совокупность страниц, лежащих в папке сайта и принадлежащих этому сайту;
  • настройки - каждый модуль может иметь ряд настроек, связанных с сайтом, например у модуля Информационные блоки эти настройки представляют из себя привязку информационного блока к тому или иному сайту, у модуля Техподдержка - привязку статуса, категории и т.п. к сайту.
Шаблон сайта Синонимы: дизайн сайта, скин сайта. Для показа одного сайта можно использовать несколько различных шаблонов. Шаблон сайта - это набор файлов в каталоге /bitrix/templates/ID_шаблона/, где ID_шаблона - поле ID в форме редактирования шаблона сайта. Структура каталога:
  • /components/ - каталог с компонентами, принадлежащими тому или иному модулю;
  • /lang/ - языковые файлы, принадлежащие как шаблону в целом, так и отдельным компонентам;
  • /images/ - каталог с изображениями шаблона;
  • /page_templates/ - каталог с шаблонами страниц и их описанием, хранящимся в файле .content.php;
  • /include_areas/ - каталог с файлами - содержимым включаемых областей;
  • header.php - пролог шаблона;
  • footer.php - эпилог шаблона;
  • styles.css - CSS стили, используемые на страницах сайта, когда используется шаблон;
  • template_styles.css - CSS стили, используемые в самом шаблоне;
  • .тип меню.menu_template.php - шаблон вывода меню соответствующего типа;
  • chain_template.php - шаблон по умолчанию для вывода навигационной цепочки;
  • а также ряд других вспомогательных произвольных файлов и папок, входящих в данный шаблон.
Раздел сайта | Каталог в файловой системе сервера. В Bitrix Framework структура сайта - это файловая структура сервера, поэтому страницы сайта - это файлы, а разделы сайта - соответственно каталоги.
Компонент | Часть какого-либо модуля, логически завершенный код, хранящийся в одном файле. Принимает ряд параметров, выполняет ряд действий и выводит результат этих действий (например, в виде HTML кода). Использование компонента - предпочтительный способ вывода информации как в публичной, так и в административной частях. Компонент подключается методом IncludeComponent Рабочая версия компонентов - 2.0. Использование компонентов 1.0 не рекомендуется, но их ещё можно встретить на сайтах, построенных на ранних версиях системы.
Путь к компоненту | Устаревшее. Используется в функции CMain::IncludeFile в качестве первого параметра и представляет из себя путь к основному файлу компонента 1.0.
Включаемые области | Это специально выделенная область на странице сайта, которую можно редактировать отдельно от основного содержания страницы. Реализуется с помощью специального компонента.
Навигационная цепочка | Это элемент дизайна, предназначенный для навигации по сайту. Выводится в визуальной части пролога и состоит из заголовков разделов сайта с соответствующими ссылками на них. Помимо заголовков разделов, добавляемых автоматически, вы также можете добавлять произвольные пункты в навигационную цепочку.
Индексная страница (файл) Это имя файла, который будет использован веб-сервером в случае, если запрашиваемый URL заканчивается на слэш и не содержит в себе имени файла. Порядок, в котором будут искаться индексные страницы для различных веб-серверов, задается по разному, например:
  • Apache - в файле httpd.conf, параметр DirectoryIndex;
  • IIS - в свойствах сайта, закладка Documents > Enable default content page;
К сожалению, в PHP значение данного параметра недоступно, поэтому для определения индексной страницы в коде необходимо пользоваться функцией GetDirIndex.
Пользователь Запись в базе данных с параметрами зарегистрированного пользователя, обязательные поля:
  • логин;
  • пароль;
  • E-Mail.
А также ряд дополнительных полей, содержащих личную информацию о пользователе, информацию по его работе, административные заметки.

Регистрационные данные (логин и пароль) в дальнейшем используются для авторизации в системе. Пользователь привязывается к определенной группе и получает право на доступ к ресурсам портала в соответствии с правами данной группы.

Группа пользователей | Совокупность пользователей, обладающих определенными правами на доступ и управление ресурсами (например, пользователи группы Модераторы обладают правом на чтение и редактирование сообщений форума). Управление группами пользователей осуществляется на странице Группы пользователей в административном разделе (Настройки > Пользователи > Группы пользователей).
Почтовое событие Это почтовое сообщение, имеющее свой тип и отправляемое по соответствующему почтовому шаблону. Почтовое событие инициализирует поля типа почтового события конкретными значениями. Порядок расположения этих полей в письме, а также текст письма, определяется почтовым шаблоном.
Для создания почтового события предназначен класс CEvent.
Почтовый шаблон Определяет текст почтового сообщения, а также порядок расположения полей (placeholder'ов), заданных в типе почтового события.
Почтовые шаблоны доступны в административном разделе на странице Почтовые шаблоны (Настройки > Настройки продукта > Почтовые события > Почтовые шаблоны).
Для манипуляции почтовыми шаблонами предназначен класс CEventMessage.
Тип почтового события Определяет набор специальных полей (placeholder'ов), которые могут быть использованы в почтовом шаблоне. В момент создания почтового события эти поля будут инициализированы конкретными значениями.
Типы почтовых событий доступны в административном разделе на странице Типы почтовых событий (Настройки > Настройки продукта > Почтовые события > Типы почтовых событий).
Для манипуляции типами почтовых событий предназначен класс CEventType.
Путь относительно корня | Путь к файлу, начинающийся от каталога, указанного в параметре DocumentRoot в настройках веб-сервера, заданный по правилам формирования URL-адресов. Пример:/ru/about/index.php
Полный путь | Включает в себя протокол, домен, порт и путь относительно корня к странице (каталогу). Пример: http://www.bitrixsoft.ru/ru/about/index.php
Абсолютный путь | Абсолютный путь к файлу включает в себя DocumentRoot и путь относительно корня.
DocumentRoot Путь к корню сайта в файловой системе сервера. Задается в настройках веб-сервера, например:
  • для Apache - в файле httpd.conf, параметр DocumentRoot;
  • для IIS - в свойствах сайта, закладка Home Directory > Local Path.
Система обновлений Технология SiteUpdate позволяет:
  • скачивать обновления продукта;
  • загружать новые модули и обновления для имеющихся модулей, расширяющие их функциональные возможности;
  • загружать языковые файлы и устанавливать новые языки;
  • выполнять регистрацию лицензий на дополнительные сайты.
В процессе обновления выполняется модификация только ядра продукта (файлы папок /bitrix/modules/, /bitrix/tools/, /bitrix/admin/ и /bitrix/components/bitrix/). Обновление не затрагивает публичную часть портала, полностью исключая возможность потери данных.

Обновление системы осуществляется в несколько шагов:

  • система обновлений автоматически запрашивает лицензионный ключ продукта;
  • затем выполняется проверка наличия доступных обновлений;
  • далее пользователю предлагается выбрать обновления для загрузки;
  • после этого происходит загрузка выбранных обновлений.
Язык Это учетная запись в базе данных, доступная для редактирования в административном меню на странице Языки интерфейса, со следующими полями:
  • Идентификатор;
  • Название;
  • Формат даты;
  • Формат времени;
  • Кодировка;
  • и т. д..
Как в публичной, так и административной частях, язык в первую очередь используется в работе с языковыми файлами.
В административной части язык определяет формат времени, даты, кодировку страниц (в публичной - данные параметры определяются настройками сайта).
Языковой файл Файл, хранящий переводы языковых фраз на тот или иной язык. Данный скрипт состоит из массива $MESS, ключи которого - идентификаторы языковых фраз, а значения - переводы на соответствующий язык. Для каждого языка существует свой набор языковых файлов, хранящихся как правило в каталогах /lang/.
Языковые файлы, как правило, используются в административных скриптах модулей и в компонентах.
Для работы с языковыми файлами предназначен модуль Перевод.
Многоязычный интерфейс Возможность реализуется за счет использования языковых файлов, хранящих перевод фраз на соответствующие языки для:
  • административного раздела;
  • сообщений об ошибках;
  • визуальных компонентов;
  • соответствующих областей в шаблоне портала;
  • и т.д.
В соответствии с текущим языком интерфейса выполняется подключение необходимых языковых файлов. В результате сообщения отображаются пользователю на выбранном им языке. Переключение между языками административного интерфейса осуществляется на административной панели.
Локализация | Подразумевает представление информации в переводе на соответствующих языке, кодировке и форматов представления данных (дата, время, денежные единицы, числа и т.д.).
Мета-тэг | Мета-тэг это - элемент HTML, задающий информацию о странице: кодировку страницы, ключевые слова, автора, краткое описание. Как правило, содержимое мета-тэгов используется в служебных целях, например, роботами поисковых систем, индексирующих сайт. Мета-тэг задается внутри тэга <head>.
Доменное имя (домен) | Одно из полей DNS таблицы (domain name service), содержащее в себе строго структурированное имя интернет сайта, заданное по определённым правилам. Основная задача DNS таблицы - это ассоциация доменных имен с IP адресами сайтов. Пример доменного имени: 1c-bitrix.ru
IP адрес | Это "имя" компьютера в сети, заданное по правилам протоколов TCP/IP. IP адрес состоит из четырех октетов, часть из которых идентифицирует подсеть, в которой находится компьютер, а часть - непосредственно этот компьютер в рамках соответствующей подсети. Пример IP адреса: 198.63.210.79.
Хост | В применении к функциям главного модуля, хост - это доменное имя или IP адрес для обращения к тому или иному сайту.
Сессия | Под термином понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации пользователя, если закончить сеанс авторизации (разлогиниться) - сессия закрывается. Синонимом термина сессия можно считать один "заход на сайт".
Время в Unix-формате | Количество секунд, прошедшее с 1 января 1970 года, с точностью до микросекунды. На сегодняшний день, время в Unix-формате может фиксироваться только до 2038 года.
Права в Unix системах В Unix-подобных операционных системах поддерживаются три вида прав - чтение, запись и выполнение, которые присваиваются каждому файлу или директории. Права эти повторяются три раза: для владельца файла, для группы пользователей, и для всех остальных пользователей. Как правило, права указываются в числовом формате:
  • 4 - чтение;
  • 2 - запись;
  • 1 - выполнение.

Сумма этих чисел дает окончательный набор прав, например, 6 - это чтение и запись, но без выполнения, 7 - все права, 5 - чтение и выполнение.

Таким образом, например, право 764 будет означать: 7 - все права для владельца файла, 6 - чтение и запись для группы пользователей, к которой принадлежит владелец файла и 4 - чтение для всех остальных пользователей.

В PHP все права задаются в виде восьмеричных чисел, поэтому их надо задавать с обязательным указанием префикса - 0. Пример: 0755.

Пролог

В общем случае, под данным термином понимается верхняя левая часть страницы.

Для публичной части, пролог соответствующего шаблона сайта хранится в файле /bitrix/templates/ID шаблона сайта/header.php.

Для административной части - пролог хранится в файле /bitrix/modules/main/interface/prolog_main_admin.php.

В свою очередь пролог может быть разделен на служебную и визуальную части. В служебной части подключаются все необходимые классы, создаётся соединения с базой, создаются ряд служебных экземпляров объектов, таких как $USER, $APPLICATION и т.д. В визуальной части выводится верхняя левая часть страницы.

Если в публичной части необходимо подключить неразделенный пролог, то используем следующий код:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Если по тем или иным причинам необходимо разделить пролог на служебную (prolog_before.php) и визуальную (prolog_after.php) части, то используем следующий код:

require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_after.php");
Эпилог

В общем случае под данным термином понимается нижняя правая часть страницы.

Для публичной части, эпилог соответствующего шаблона сайта хранится в файле /bitrix/templates/ID шаблона сайта/footer.php.

Для административной части - эпилог хранится в файле /bitrix/modules/main/interface/epilog_main_admin.php.

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

Если в публичной части необходимо подключить неразделенный эпилог, то используем следующий код:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

Если по тем или иным причинам необходимо разделить эпилог на визуальную (epilog_before.php) и служебную (epilog_after.php) части, то используем следующие коды:

require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/epilog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/epilog_after.php");

Примечание: Обратите внимание, что в случае пролога файл *_before.php это служебная часть, а в случае эпилога *_before.php это визуальная часть. Такое отличие возникает потому, что пролог перед телом страницы, а эпилог - после.

Тело страницы | Тело страницы это часть PHP/HTML кода, расположенного в скрипте между подключениями пролога и эпилога. Тело страницы не является частью шаблона сайта и представляет из себя индивидуальное содержимое публичной либо административной страницы.
Шаблон страницы Это файл, хранящийся в одном из каталогов:
  • /bitrix/templates/ID шаблона сайта/page_templates/
  • /bitrix/templates/.default/page_templates/
Данный файл представляет из себя заготовку публичной страницы. Как правило, используется при создании новой страницы в модуле Управление структурой. Для задания порядка сортировки шаблонов страниц используется файл .content.php находящийся в одном из вышеуказанных каталогов.
Сабмит | Отправка данных HTML формы на сервер.
HTML-безопасный вид Как правило данный термин применяют к тексту, в котором произведены следующие замены:
Исходное | Результат
< | &lt;
> | &gt;
" | &quot;
& | &amp;

Подобные замены позволяют выводить текст внутри HTML кода, не опасаясь, что он будет интерпретирован браузером как часть этого HTML кода.
Связывание переменных | В применении к SQL-запросам для Oracle версии, под данным термином подразумевается связывание имен переменных (либо полей таблицы) с их значениями. Как правило, подобная технология используется для полей типа BLOB, CLOB, LONG и т.п. предназначенных для хранения больших объемов данных.
Дамп В применении к базе данных это - выгрузка содержимого и, возможно, структуры таблиц в файл в определённом формате, для их возможной дальнейшей загрузки обратно в данную, либо любую другую БД. Для каждой базы данных существуют свои утилиты, позволяющие сделать дамп, например для MySQL утилита mysqldump позволяет выгрузить в формате обычных SQL запросов, для Oracle утилита exp позволяет выгрузить в своем внутреннем формате.
В применении к переменным, дамп подразумевает отображение структуры и содержимого переменной в текстовом виде.
cron (крон) | В Unix-подобных операционных системах утилита cron позволяет организовать запуск скриптов по четко указанному расписанию.
Буферизация | Режим, при котором весь исходящий поток данных из PHP скрипта (например, HTML код) запоминается предварительно в памяти и не отдается браузеру пользователя. Буферизацию в PHP можно включить с помощью функции ob_start. В дальнейшем её можно отключить, например с использованием функции ob_end_flush, при этом все накопленные данные будут отосланы браузеру. Режим позволяет произвольно манипулировать исходящим потоком данных, на этом принципе основана технология отложенных функций.
Постоянное соединение (persistent) | При создании соединения с базой, в памяти создаётся дескриптор данного соединения. Если соединение обычное, то после отработки скрипта этот дескриптор удаляется, если соединение постоянное, он остается и может быть использован другими процессами при необходимости. Достоинством постоянного соединения является то, что времени на его работу требуется меньше. Недостаток - количество открытых постоянных соединений ограничивается в настройках базы данных и при превышении этого лимита посетитель не сможет зайти на сайт пока не освободятся новые соединения.
Accept-Language | Набор языков, установленных в браузере посетителя сайта. К примеру, для MS Internet Explorer их можно выставить в меню Сервис > Свойства обозревателя > Общие > Языки. Для Mozilla Firefox: Меню > Настройки > Содержимое > Языки.
Кастомизация | Изменение логики работы компонента или шаблона компонента под частные задачи.
API (SDK) | Каждый модуль системы содержит набор высокоуровневых функций для выборки данных в публичном разделе сайта и набор классов с низкоуровневыми методами для более специализированной работы с данными модуля. Подробная информация по API каждого модуля представлена в документации для разработчиков.
Экземпляр программы | Копия какого-либо продукта «1C-Битрикс», включающая в себя исходный текст продукта и только одну копию структуры и таблиц базы данных, входящих в состав продукта, а также любую документацию по использованию продукта.
Портал | Один набор файлов, хранящихся в каталоге /bitrix/modules/, и одна копия базы. Портал включает в себя один или более сайтов. Синонимом данного термина может служить: «экземпляр продукта», «одна инсталляция системы», «одна копия системы».


Схема работы продукта
9 / 278

Визуальное представление работы продукта

Ознакомьтесь с общей схемой работы продукта.
Сайт 1 ... Сайт 3 ... Сайт N
Шаблон 1 Шаблон 2 Шаблон 3 ... Шаблон N
Многосайтовый диспетчер
Журналирование и статистика
Система авторизации и разграничения доступа
Битрикс Framework
Компоненты, написанные на API
Административный раздел Индивидуальная бизнес-логика Компоненты пользователей
API
Модули
Главный модуль | Управл. структурой | Интернет-магазин
Рекламные баннеры | Информ.блоки | Веб-формы
Документооборот | Торговый каталог | Почта и т.д.
Валюты | Статистика | Свои модули
Интерфейс к БД Интерфейс работы
c внешними источниками
Базы данных

MySQL 		XML, Excel, 1C ,
Платежные системы ,
Складские системы,
ERP и другие 		Дисковая подсистема


Основы администрирования
10 / 278

Базовые знания

То, без чего администратор не может выполнять свои обязанности - описано в этой главе. Основные возможности базовых модулей системы: Главного и Управление структурой.

Первые три главы - продолжение тем курса Контент-менеджер. В них рассказываются моменты работы с системой для администратора сайта по вопросам, в целом, относящихся к ведению контент-менеджера.

Дополнительно администратору рекомендуется ознакомиться с информацией о Мониторе производительности и о способах конфигурирования веб-систем для оптимальной работы.


Настройка главного модуля
11 / 278

Настройка системы в целом

Главный модуль задаёт параметры работы системы в целом. Форма настройки находится на странице Настройки > Настройки продукта > Настройки модулей > Главный модуль.

Нажмите на рисунок, чтобы увеличить

Значение каждого поля прописано в документации. Здесь поясним несколько моментов, которые забываются администраторами.

На закладке Настройки рекомендуется:

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

На закладке Почта и СМС рекомендуется установить ограничения на размер отправляемых по почте файлов.

Закладка Авторизация очень важна, определяет условия и безопасность авторизации пользователей в системе.

С закладкой Журнал событий всё просто: выбираете сколько дней хранить события и какие именно события хранить в логе (Настройки > Инструменты > Журнал событий).

На закладке Система обновлений обратите внимание на поле Установка для разработки. При её включении на сайте проводится тестирование без закрытия публичного доступа к сайту или без установки продукта локально. Этот функционал также поможет решить проблему коллективного доступа к одной установке продукта.

Рекомендуется к использованию опция Усиленная проверка корректности установки обновлений. При копировании файлов из промежуточной папки /updates/ в папки модулей будет выполняться проверка контрольной суммы. Если полученная контрольная сумма не соответствует исходной, то выводится сообщение о некорректной установке обновлений.

Загружать только стабильные обновления - выключение этой опции для тех, кто любит рисковать, т.к. тогда на сайт установятся обновления в статусе beta. Вы получите новый функционал до перевода в стабильный статус, но рискуете получить нерабочую систему, если тестировщики "1С-Битрикс" пропустили какой-то баг.

Настройка доступа к модулю производится обычным способом: выбор группы пользователей и указание уровня прав для неё.

Документация по теме:

  • Настройки главного модуля


Информация на сайте и работа с ней
12 / 278

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


Создание и редактирование новых страниц и разделов
13 / 278

Работаем со структурой

Создание и редактирование страниц или разделов доступно как с Публичной , так и с Административной части.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Создание

Создание раздела и страницы в Административной части выполняется в рамках либо логической либо физической структуры. На контекстной панели воспользуйтесь кнопкой Добавить и выберите какой элемент будет добавлен:

Откроются формы для создания новой папки или файла. При создании файла откроется тот вид редактора, который задан в настройках модуля Управление структурой .

Для режимов правки файлов Редактировать как текст и Редактировать как PHP доступен режим редактирования кода с нумерацией строк и подсветкой синтаксиса .

При выборе режима Визуальный HTML редактор состав полей аналогичен составу в Публичном разделе, но разбит на закладки:

  • Закладка Редактирование. Выбирается шаблон страницы, указывается ее заголовок и название для файла , в котором данная страница будет сохранена. Ниже - собственно редактор:

    1 - панель инструментов визуального редактора.

    2 - панель переключения режимов редактирования.

    3 - рабочая область.

    4 - панели задач.

    5 - панель отображения свойств объектов.

  • На закладке Свойства указываются свойства страницы, например, значения тегов META: ключевые слова (keywords) и описание (description) страницы. Свойства, заданные в полях этой формы, будут использованы только для редактируемой страницы.
  • На закладке Меню добавите пункт в меню текущего раздела сайта (т.е. раздела, в котором создается страница), ссылающийся на созданную страницу.

Редактирование страниц и разделов

Чтобы перейти из Публичного раздела к редактированию текущей страницы (раздела) в Административном разделе, выберите в меню Изменить страницу пункт В панели управления .

В самом Административном разделе переход к редактированию страницы осуществляется из Менеджера файлов .

Документация по теме

  • Создание новой папки (документация)
  • Создание и редактирование файла (документация)


Управление свойствами страниц и разделов
14 / 278

Задаём заголовок и другие свойства

Управление свойствами страницы в Административном разделе, независимо от выбранного редактора, осуществляется в форме редактирования страницы в таблице :

Управление свойствами раздела в Административном разделе производится с помощью пункта Свойства папки в контекстном меню папки, либо из контекстной панели, меню Дополнительно . Откроется окно настроек свойств каталога:

Если нужны новые типы свойств

По умолчанию в системе созданы два базовых типа свойств. Создание новых типов свойств выполняется на странице настроек модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой) в секции Настройки для сайтов:

Типы для каждого сайта

  • в поле Тип указывается символьный идентификатор создаваемого свойства. Он задаётся латинскими символами и служит для проверки или использования в коде продукта;
  • в поле Название задайте название свойства. Название отображается пользователям в форме настройки свойств страниц или разделов сайта.

Примечание: Типы свойств могут быть заданы отдельно для каждого сайта. Для этого:
  • Отметьте опцию Использовать индивидуальные настройки для каждого сайта ;
  • В списке Настройки для сайта выберите желаемый сайт;
  • Заполните поля Типы свойств.

Документация по теме

  • Свойства папки


Управление правами доступа
15 / 278

Пускать "кого нужно". Видеоурок

Управлять правами доступа в «1С-Битрикс: Управление сайтом» возможно и с публичной и с административной части. В «Битрикс24 в коробке» права задаются только из административного раздела. Детальное описание управления правами на доступ к файлам и разделам дан ниже, в уроке Управление доступом к папкам и файлам . Здесь расскажем о способах перехода к форме задания прав.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Форма настройки прав

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

Открыть форму настройки прав раздела в рамках логической или физической структуры сайта можно ещё одним способом, воспользоваться командой Свойства папки:

Задать права странице можно только в рамках физической структуры, как указано выше. Зато можно задавать права сразу нескольким файлам одновременно:

Документация по теме

  • Задание прав с публичной части для «1С-Битрикс: Управление сайтом» (учебный курс "Контент-менеджер")
  • Права доступа

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2020 1С-Битрикс


Загрузка и поиск файлов
16 / 278

Загрузка файлов

Для загрузки файлов перейдите с помощью Менеджера файлов в папку, в которую нужно загрузить файл и нажмите кнопку [image] на контекстной панели Менеджера файлов. Откроется сама форма загрузки файлов:

Нажмите на рисунок, чтобы увеличить

Число загружаемых файлов неограниченно.

Примечания:
  • По умолчанию в настройках системы установлено ограничение на размер загружаемого файла в 2 мегабайта. Если есть необходимость изменить это ограничение, то это можно сделать в файле php.ini в параметре upload_max_filesize.
  • Система поддерживает использование файлов с именами как на латинице, так и на кириллице, без ограничений по регистру. Недопустимо только использование спецсимволов: \ / ? * < > " '.

Поиск файлов

В рамках файловой структуры есть механизм поиска файлов, размещающийся на контекстной панели в виде кнопки Поиск . Откроется окно поиска:

Поиск ищет как по имени, так и по содержимому. Ограничения можно наложить следующие:

  • По папке или сайту
  • Дате изменения;
  • Размеру файла;
  • Регистру.

Кнопка Подсчёт покажет общее число файлов, удовлетворяющих указанным условиям поиска.

С помощью поиска можно произвести замену слова или фразу в файле. Для этого воспользуйтесь закладкой Замена.

Документация по теме

  • Менеджер файлов
  • Загрузка нового файла


Расширенный режим настройки меню
17 / 278

Дополнительные возможности настроек.
Видеоурок

При ограничении доступа к разделу пользователю виден сам пункт, и это не всегда хорошо. Сокрытие пункта меню в зависимости от различных условий производится только в Административном разделе. Делается это и в рамках логической, и в рамках физической структуры. Ниже будет описан пример с ограничением доступа по пользователям (как самый частый вариант).

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Пример ограничения доступа к разделу
с сокрытием пункта меню

В этом примере разберем ограничение по пользователям. Для такого ограничения доступа:

  • Перейдите в Административной части в раздел, в котором нам нужно скрыть нужный пункт меню.
  • Найдите в списке файлов файл нужного меню: Меню типа ****. В колонке действий выберите Редактировать меню . Откроется форма редактирования меню в упрощенном режиме. В упрощенном режиме с меню можно делать все то, что мы делали с меню в публичной части : создавать пункты, редактировать их, удалять и менять порядок.
  • Щелкните кнопкой мыши на пункте Расширенный режим на контекстной панели формы редактирования меню. Форма перейдет в расширенный режим:

    Примечание: Подробное описание полей формы можно посмотреть на странице пользовательской документации .

  • В поле Тип условия выберите Для групп пользователей. Форма перезагрузится, и откроются поля ограничения доступа по пользовательским группам.
  • Выберите группу пользователей. Ограничение доступа работает по разрешительному принципу. Иными словами, пункт меню будет виден для тех групп, которые выбраны в этом поле.

Примечание: Если скрыть только пункт меню, но не запретить доступ к разделу, то обычный пользователь сможет зайти в раздел, если он знает адрес раздела.

Документация по теме

  • Редактирование меню


Шаблонизация контента статических страниц
18 / 278

Облегчаем работу контент-менеджера.

На проектах с большим содержанием статических страниц возникает задача оптимизации труда контент-менеджеров. Решить эту задачу можно с помощью создания шаблонов страниц. Есть несколько вариантов шаблонизации контента статики:

Использование сниппетов

Самый простой способ шаблонизации, доступный и самим контент-менеджерам. Работа со сниппетами описана в курсе Контент-менеджер .

Сниппеты рекомендуется хранить в папке \bitrix\templates\_ваш шаблон_\snippets\, хотя они могут располагаться и в шаблоне по умолчанию.

Пассивный шаблон

Пассивный шаблон - это простой файл, который хранит контент, вставляемый на вновь создаваемую страницу. Они хранятся в шаблоне сайта: \bitrix\templates\_ваш_шаблон_\page_templates\_имя_шаблона_.php

Создание нового шаблона требуется достаточно редко. В большинстве случаев можно просто скопировать отредактировать штатный шаблон standard. Если всё же есть необходимость создать шаблон, то создайте в папке \bitrix\templates\_ваш_шаблон_\page_templates\ файл, например, new.php. Пример содержимого файла (вызовы файлов header.php и footer.php - обязательны! ):

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Title");
?>

Контент-менеджер! Наполни страницу содержанием!

<p><img src="/132.png" /></p>

<table cellspacing=0 cellpadding=0>
  <tbody>
    <tr bgcolor="white">
    <td bgcolor="#8C8C8C">
    <table cellspacing="1" cellpadding="5">
          <tbody>
            <tr bgcolor="silver"><td colspan="2"><b></b>
               </td></tr>

            <tr bgcolor="white"> <td><b></b></td> <td></td> </tr>

            <tr bgcolor="#EEEEEE"> <td><b></b></td> <td></td> </tr>
           </tbody>
         </table>
             </td></tr>
   </tbody>
</table>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

В этом примере всё, между вызовами header.php и footer.php можно изменять под ваши задачи.

Активный шаблон

В системе возможно использование активных шаблонов. Активный шаблон - это шаблон, который при создании страницы (раздела) запрашивает дополнительные данные:

Пример активного шаблона размещён в виде папки \bitrix\templates\.default\page_templates\forum в дефолтном шаблоне дистрибутива "1С-Битрикс: Управление сайтом".

В файле \bitrix\templates\.default\page_templates\forum\template.php можно посмотреть пример оформления шаблона и создать по его образцу собственный.

Подключение шаблонов

Список доступных шаблонов страниц и редактируемых областей создается с помощью файла .content.php , также размещаемого в папке /page_templates/ соответствующего шаблона сайта. Данный файл содержит массив соответствий файлов шаблонов страниц и включаемых областей и их названий для представления в списке . В этом файле пропишите ваш новый файл шаблона: $TEMPLATE["new.php"] = Array("name"=>"Новый шаблон", "sort"=>4);:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$TEMPLATE["standard.php"] = Array("name"=>"Стандартная страница", "sort"=>1);
$TEMPLATE["page_inc.php"] = Array("name"=>"Включаемая область страницы", "sort"=>2);
$TEMPLATE["sect_inc.php"] = Array("name"=>"Включаемая область раздела", "sort"=>3);
$TEMPLATE["new.php"] = Array("name"=>"Новый шаблон", "sort"=>4);
?>

Код на старом АПИ:

$TEMPLATE["new.php"] = Array("name"=>GetMessage("new"), "sort"=>4);

После этих действий контент-менеджер получит возможность использовать новый шаблон при создании страниц:


Настройки модуля Управление структурой
19 / 278

Настраиваем работу с файловой структурой

Модуль Управление структурой настраивается в Административной части на странице Настройки > Настройки продукта > Настройки модулей > Управление структурой

Нажмите на рисунок, чтобы увеличить

Детальнее о настройке модуля читайте в пользовательской документации, здесь опишем основные поля.

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

Выбрав опцию Не отображать раздел Файлы и папки Вы можете ограничить доступ к физической структуре сайта, оставив доступ только к логической структуре.

Далее задаются параметры генерации имен файлов и папок, названия могут генерироваться автоматически или вручную. Опция Журналировать действия пользователей определяет операции, которые будут заноситься в журнал.

Группа параметров Настройки для сайта определяет использование индивидуальных настроек для каждого из сайтов. Чуть ниже расположены параметры поиска и архивации. Задайте размер файлов для поиска, количество файлов в результатах поиска, а так же маску поиска по умолчанию. В соответствующих полях задается время одного шага для поиска и архивации.

Вкладка Визуальный редактор определяет поведение и внешний вид визуального редактора. Подробнее о настройке визуального редактора читайте в уроке Настройка визуального редактора .

Вкладка Медиабиблиотека определяет параметры медиабиблиотеки, такие как размеры изображений и допустимые расширения файлов для каждого типа медиа. Подробнее о настройке медиабиблиотеки .

На вкладке Доступ распределяются права доступа к модулю для групп пользователей.


Пример работы с информацией
20 / 278

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


Постановка задачи
21 / 278

Что нужно сделать

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

Разберем решение этой задачи на простом, если не сказать простейшем, примере раздела Доска объявлений.

Раздел сайта Доска объявлений позволяет:

  • любому зарегистрированному пользователю размещать объявление, которое будет опубликовано после модерации администратором,
  • Объявление состоит из названия и анонсовой части как обязательные к заполнению, детальное описание и картинка - по желанию создающего объявление.


Создание инфоблока
22 / 278

Где будем хранить информацию

Создайте инфоблок , который будет хранить объявления. На закладке Инфоблок формы создания впишите название инфоблока, отметьте свой сайт как тот, на котором данный инфоблок будет использоваться и укажите участие в документообороте:

На закладке Поля укажем параметры загружаемых изображений:

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

Сохраните внесенные изменения.


Создание раздела и размещение компонента
23 / 278

Вывод данных

После того, как вы создали страницу или раздел , где будет работать доска объявлений, разместите на ней комплексный компонент Новости и в его настройках выберите созданный инфоблок в качестве источника данных:

Нажмите на рисунок, чтобы увеличить

Разрешим вывод изображений для анонса и поиск по объявлениям.

В Настройках списка укажем максимальную длину анонса в 50 символов и разрешим показ названия объявления в виде ссылки на детальный просмотр, даже при отсутствии детального описания (поскольку там может быть загружена фотография):

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


Форма добавления объявлений
24 / 278

Как пользователь будет создавать объявление

На эту же страницу, под компонентом Новости, добавьте компонент Форма добавления / редактирования . Данный компонент потребуется нам для реализации возможности добавления новых объявлений непосредственно с доски объявлений. Настроим его следующим образом:

  • выберите созданный нами инфоблок и установите статус после сохранения объявления Черновик, чтобы администратор мог просмотреть объявление перед его публикацией;

  • установите опцию Использовать настройки инфоблока для обработки изображений .
  • Укажите обязательные для заполнения поля наименование, дата начала , текст анонса, подробный текст и подробная картинка.
  • В группе полей Параметры доступа настройте следующие опции :
    • Установите для зарегистрированных пользователей право на добавление\редактирование своих объявлений.
    • Редактирование возможно для статуса Черновик. Это необходимо в случае неустановленного модуля Документооборот.
    • Разрешим использование визуального редактора для редактирования текста анонса и подробного описания.
  • Установите для формы добавления собственные названия полей:

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


Результат
25 / 278

Как работает то, что мы сделали

Созданная доска объявлений будет иметь следующий вид:

При нажатии кнопки Сохранить новое объявление будет добавлено в инфоблок в статусе Черновик. Для публикации объявления на сайте администратор после модерации выставляет ему статус Опубликован .

Если кликнуть по заголовку опубликованного объявления, то оно откроется в режиме детального просмотра (появятся информация полей Подробно и Фотография):


Визуальный редактор
26 / 278

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


Подключение редактора
27 / 278

Где будет доступен редактор. Видеоурок

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Подключение редактора

Чтобы редактором страниц по умолчанию был визуальный HTML-редактор, необходимо его выбрать в настройках модуля Управление структурой.

Внимание! Все пользователи, которым необходимо вносить хоть какие-нибудь изменения в Публичной части сайта должны иметь доступ на чтение к папке /bitrix/admin. Это папка, в которой расположен визуальный HTML-редактор. Без этого редактирование будет возможно только в текстовом режиме.

Визуальный редактор в модулях системы

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

  • Информационные блоки;
  • Веб-формы;
  • Обучение;
  • Опросы, голосования;
  • Подписка, рассылки
  • и другие.


Настройка визуального редактора
28 / 278

Настройка визуального редактора

Системные настройки визуального редактора производятся в настройках модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой) на закладке Визуальный редактор.

Нажмите на рисунок, чтобы увеличить

Первой опцией в настройках визуального редактора является выбор самого редактора. Вы можете пользоваться новой версией редактора, либо вернуться к старой (до версии 9.5) . Здесь и далее мы будем иметь в виду и описывать новую версию. С работой в старой версии Вы можете ознакомиться в курсе Интерфейс до версии 9.5.

Визуальный редактор предоставляет возможность проверки орфографии введенного текста только с помощью pSpell (проверка производится в браузере, при условии если pSpell установлен на сервере).

Для того, чтобы визуальный редактор мог использовать это расширение, его надо подключить. Для этого нужно зайти в Настройки > Настройки модулей > Управление структурой > Визуальный редактор.

Документация по теме

  • Настройки визуального редактора


Настройки отображения компонентов
29 / 278

Определяем компоненты с которыми можно работать

По умолчанию пользователю предоставляется полный список компонентов , которые он может размещать на редактируемой странице. Эту возможность администратор сайта может ограничить. Для этого:

  • Перейдите на страницу настроек модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой).
  • Заполните поле Разрешенные компоненты.

Ограничение работает так: если в поле нет ни одного компонента, то разрешены все. Если в поле добавлен хотя бы один компонент, то будет разрешен только он (все остальные запрещены). Иными словами, для запрета доступа к единственному компоненту в это поле нужно внести все компоненты, которые разрешены. При добавлении компонентов можно использовать маски вида: news.*. Все компоненты, попадающие под эту маску, будут разрешены к использованию. Каждое название компонента или регулярное выражение вводится с новой строки.

Для пользователей этот запрет внешне будет проявляться в том, что в визуальном редакторе при вызове панели Компоненты будут видны только разрешенные компоненты.

Поле работает только с системными компонентами, то есть компонентами из пространства имен bitrix. Если Ваш компонент размещен не в папке www\bitrix\components\... (в структуре папок на веб-сервере), то он будет проигнорирован.

После ввода разрешенных компонентов для всех пользователей (в том числе и для администратора сайта) при редактировании страниц и сохранении изменений все неразрешенные компоненты будут удалены со страницы.

В самом же визуальном редакторе в списке компонентов будут присутствовать только лишь разрешенные компоненты.


Сниппеты в визуальном редакторе
30 / 278

Где лежат сниппеты

Работа со сниппетами подробно рассмотрена в уроке Внешний вид редактора курса Контент-менеджер. Физически сниппеты хранятся в папке /snippets/ соответствующего шаблона либо в шаблоне по умолчанию (.default). Так как сниппеты - это фрагменты HTML-кода, то они используют стили CSS того шаблона, для которого они созданы. Папка шаблона обычно содержит:

  • Файл .content.php - перечисление всех созданных сниппетов в данном шаблоне. И для каждого из сниппетов хранится заголовок (title) и описание (description).
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <?
    $SNIPPETS = Array();
    $SNIPPETS["snippet0001.snp"] = Array("title"=>"Таблица", "description"=>"");
    ?>
  • Файл .htaccess - настройки прав доступа к сниппетам;
  • Коды самих сниппетов (файлы *.snp). Они могут храниться в подгруппах.
  • Изображение для сниппета, хранится в подкаталоге /snippets/images/ и далее директория, дублирующая расположение самого сниппета. Имя изображения совпадает с именем сниппета. Например, сниппет расположен в папке /test1/table.snp. Тогда изображение к нему будет располагаться в папке /images/test1/table.png (или другое расширение изображения).

Видеопример использования
сниппетов

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Пример использования сниппетов:
создание спойлера

Довольно часто на сайтах используют спойлеры. Спойлер несложно создать с помощью стандартного инструмента html – тега <details>.

Но текстовым наполнением сайта обычно занимается контент-менеджер, которому нужна кнопка для быстрого добавления таких спойлеров. Выход прост – создайте сниппет!

Пример html-кода вставки спойлера

<table>
  <tr><td><details>
  <summary>Подробнее</summary>
  Скрытый текст
  </details></td></tr>
</table>

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


Работа с визуальным редактором
31 / 278

Работа с визуальным редактором

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

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

При редактировании страницы в Административном разделе появится специальное меню для работы с существующей страницей, а также сам визуальный редактор :

Нажмите на рисунок, чтобы увеличить


Работа с php-скриптом
32 / 278

Работа с php-скриптом

Примечание: Правом на работу с произвольным php-скриптом обладает только пользователь с правами администратора сайта.

В HTML-редакторе можно разместить произвольный php-скрипт следующим способом: перейдя в режим редактирования исходного кода (или смешанный режим) и написав требуемый код. Тогда в режиме визуального редактирования (или в соответствующем поле смешанного режима ) появится тот же ярлык [image], содержание php-кода которого можно будет редактировать в режиме работы с исходным кодом и в области Свойства:

Внимание! Есть некоторые тонкости при прерывании html-кода php-скриптом.

Например, можно писать так:
 <a href="<? echo 'www.oursite.ru';?>" title="Посетите сайт">OurSite</a>
Аналогично, и с рисунками (тег img).

Перечислим атрибуты, которые обрабатываются для ссылок, рисунков и аудио:
для тега <a> атрибуты: href, title, class, style
для тега <img> атрибуты: src, alt, class, style
для тега <audio> атрибуты: src, autoplay, control, loop, preload
Т.е. вместо этих атрибутов можно вставлять <? ...... ?>

Код таблицы тоже можно прерывать php-скриптом:
 <table >
  <? ........ ?>
  <tr>
  <? ........ ?>
  <td>
  </td>
  <? ........ ?>
  </tr>
  <? ........ ?>
 </table>

Важно то, что визуальный редактор не показывает php-код в начале и в конце страницы. Например, строки в начале кода главной страницы не будут показаны при редактировании этой страницы с помощью визуального редактора:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetPageProperty("title", "Демонстрационная версия продукта «1С-Битрикс: Управление сайтом 6.0»");
$APPLICATION->SetPageProperty("NOT_SHOW_NAV_CHAIN", "Y");
$APPLICATION->SetTitle("Новости интернет-магазина");
?>

Код, вызывающий файл footer.php, тоже не будет показан в HTML-редакторе:

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


Управление сайтами
33 / 278

Важной особенностью системы «1C-Битрикс: Управление сайтом» является поддержка многосайтовости, что позволяет создать несколько сайтов на одной копии продукта (при этом, в соответствии с условиями лицензионного соглашения, все сайты должны работать с использованием одной базы данных и единого ядра продукта). Каждый сайт может характеризоваться собственным доменным именем, внешним видом, языком интерфейса и информационным наполнением.


Многосайтовость
34 / 278

Управляем несколькими сайтами

Важной особенностью системы «1C-Битрикс: Управление сайтом» является поддержка многосайтовости, что позволяет создать несколько сайтов на одной копии продукта (при этом, в соответствии с условиями лицензионного соглашения, все сайты должны работать с использованием одной базы данных и единого ядра продукта). Каждый сайт может характеризоваться собственным доменным именем, внешним видом, языком интерфейса и информационным наполнением.

Примечание: в редакции "Старт" вы можете создать два сайта с неограниченным количеством страниц. В других редакциях количество сайтов и страниц неограниченно.

Сравнить возможности разных редакций можно здесь.

Что имеется в виду под словом "сайт".

Сайт в рамках "1С-Битрикс: Управление сайтом" - это совокупность таких понятий как:
  • учетная запись в базе данных - создаётся в административном меню "Сайты", включает в себя следующие основные параметры:
    • идентификатор - набор символов, идентифицирующих сайт
    • доменное имя - одно или более доменное имя сайта
    • папка сайта - путь к каталогу в котором будет храниться публичная часть сайта
    • язык сайта
    • формат даты
    • формат времени
    • URL - протокол и доменное имя по умолчанию (например, http://www.site.ru)
    • DocumentRoot - если многосайтовость организована по способу 2 (см. ниже), то в данном параметре должен храниться путь в файловой системе сервера к корню сайта
    • условия подключения шаблонов - каждый сайт может иметь один или более шаблонов для отображения скриптов своей публичной части, каждый такой шаблон может быть подключен по тому или иному условию
  • публичная часть - совокупность скриптов (страниц) лежащих в "папке сайта" и принадлежащих этому сайту
  • настройки - каждый модуль может иметь ряд настроек связанных с сайтом, например, у модуля "Информационные блоки" эти настройки представляют из себя привязку информационного блока к тому или иному сайту, у модуля "Техподдержка" - привязку статуса, категории и т.п. к сайту.

Способы настройки многосайтовой системы

Технически существуют два способа настройки многосайтовости системы:

  1. Многосайтовость на одном домене. Продукт и все сайты работают под управлением одной копии веб-сервера Apache. В данном способе конфигурации каждый сайт должен быть размещен в отдельном подкаталоге внутри единого каталога, например:
    • /home/www/allsites/s1/
    • /home/www/allsites/s2/
  2. Многосайтовость на разных доменах. Каждый сайт работает под управлением отдельной копии веб-сервера Apache или отдельного виртуального веб-сервера. Данный способ требует дополнительной настройки сервера.

Подробное описание предложенных способов настройки приводится в главе Конфигурирование многосайтовости учебного курса Многосайтовость.

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

Обратите внимание! Встроенный конструктор Сайты 24 фактически добавляет страницы к существующим сайтам и позволяет отдельно публиковать их.

Документация по теме

  • Управление сайтами


Управление сайтами и пример создания
35 / 278

Управление сайтами

Управление сайтами осуществляется из административного раздела системы на странице Список сайтов (Настройки > Настройки продукта > Сайты > Список сайтов):

Нажмите на рисунок, чтобы увеличить

Каждый сайт, работающий под управлением системы, представляется в виде отдельной записи.

Как создать новый сайт
(видеоурок)

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Как создать новый сайт

  • Перейдите в Административный раздел на страницу Настройки > Настройки продукта > Сайты. В Рабочей области откроется Список сайтов.
  • Выполните команду Добавить сайт на Контекстной панели. В Рабочей области откроется форма Добавление сайта.
  • Заполните поля:
    • ID – поставьте произвольный двузначный код (только латинскими буквами и цифрами);
    • Поставьте флажок Активен;
    • Введите название сайта, каким оно будет отображаться в Административной части. Название сайта не обязательно должно быть на латинице, вы можете дать название и на русском языке;
    • Установите флажок По умолчанию. Это делается, если сайт не единственный в списке сайтов и нужно, чтобы он открывался по умолчанию;
    • Доменное имя - введите доменное имя (имена), которое будет у вашего сайта (если его еще нет, то поле можно оставить пустым);
    • Папка сайта - поставьте просто /;
    • Сортировка - можно ввести любое численное значение;

      Примечание: Если новый сайт развёрнут на поддомене домена текущего сайта, то индекс сортировки сайта на поддомене должен быть меньше, чем индекс сортировки сайта на домене (иначе сайты могут некорректно отображаться).

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

    • В поле Язык определяется то, на каком языке будут выводиться системные сообщения в Административной части.
    • Региональные настройки - указание системе как отображать параметры времени, даты и другие в соответствии с культурными особенностями региона, на который рассчитан сайт.
    • Выбирать кодировку сайта нужно внимательно, после анализа многих факторов .

      Примечание: Иногда для указания кодировки используют упрощенное название win-1251. В нашем случае это не допустимо, так как может вызвать ошибку, связанную с некорректным названием кодировки.

    • Название веб-сайта - каким оно будет отображаться для пользователей;
    • URL сервера введите адрес сайта (localhost - для локальной установки);
    • E-Mail адрес по умолчанию введите адрес, который будет использоваться в системных сообщениях, например, во всех почтовых шаблонах в качестве адреса отправителя.
  • Почтовые шаблоны - поле позволяет создать шаблоны, на основе которых будут генерироваться почтовые сообщения сайта.
  • Шаблон - любой из имеющихся. Это поле обязательно для заполнения, если шаблона нет, его нужно создать.

    Для чего нужен шаблон

    Внешний вид страниц сайта формируется на основе шаблона дизайна.

    В шаблоне сайта определяется:

    • дизайн страниц;
    • типы используемых меню и место их подключения;
    • место вывода навигационной цепочки;
    • расположение рекламных областей на страницах сайта;
    • размещение редактируемых и включаемых областей.

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

    • гибко настроить дизайн для различных разделов сайта;
    • использовать специальный праздничный дизайн в течение определенного времени;
    • применять отдельные шаблоны дизайна для различных групп посетителей сайта;
    • применять отдельные шаблоны дизайна в зависимости от определенного параметра в адресной строке;
    • и т.п.

    Для каждого сайта может быть назначено неограниченное количество шаблонов.

    Примечание: Более подробная информация об управлении шаблонами сайта представлена в главе Интеграция учебного курса Разработчик Bitrix Framework и в пользовательской документации продукта.

    Выбор шаблонов дизайна сайта и настройка условий их применения к страницам выполняется в секции Шаблон формы редактирования сайта:

    Примечание: Чтобы шаблон применялся к страницам сайта по умолчанию, поле Условие нужно оставить незаполненным.

    Переключение между сайтами

    При наличии в системе нескольких сайтов переключение между сайтами в публичном разделе выполняется с использованием специальных ссылок.

    Переключение между сайтами

    Генерация подобных ссылок осуществляется с помощью специального компонента, включенного в шаблон дизайна сайта - Выбор сайта (bitrix:main.site.selector). Данный компонент перечисляет все сайты, созданные на базе данной копии продукта, определяет путь к корневым директориям данных сайтов и выводит ссылки с названиями сайтов в месте, определенном шаблоном дизайна сайта. При этом ссылка с названием текущего (просматриваемого в данный момент) сайта не подсвечивается, т.е. является неактивной.

  • Сохраните вновь созданный сайт. Форма создания сайта закроется, откроется список имеющихся сайтов, в котором отобразится созданный сайт.

Примечание: Подробнее описание значений полей формы смотрите в пользовательской документации .

Как поменять домен у сайта

Допустим, нужно заменить текущий домен сайта example.com на новый домен site.com. Для этого нужно:

  1. Приобрести доменное имя;
  2. Чтобы сайт, размещенный на хостинге, открывался в браузере по приобретенному доменному имени, необходимо привязать это доменное имя к хостингу:
    • если хостинг и доменное имя предоставляет одна компания, то зачастую привязка проходит в автоматическом режиме (либо на сайте компании есть соответствующие инструкции);
    • если хостинг и доменное имя предоставляют разные компании, то:
      • в аккаунте хостинга в "Настройках домена" (иногда еще может называться "Парковка домена") прописать приобретенное доменное имя (указывается без префиксов типа http, www и т.д.);
      • узнать адреса DNS-серверов у технической поддержки или на сайте хостинговой компании, зайти в свой аккаунт на сайте компании-регистратора (где покупали доменное имя), найти свой домен и указать в его параметрах DNS-сервер хостинг-компании.

    Примечание: Процесс привязки доменного имени к хостингу может занять продолжительное время (вплоть до нескольких дней).

  3. В завершении осталось указать новое доменное имя в настройках сайта (Настройки > Настройки продукта > Сайты > Список сайтов > [ваш_сайт]):


Удаление сайтов
36 / 278

Что может помешать
удалению сайта

Удаление сайта возможно только из Административного раздела со страницы Список сайтов (Настройки > Настройки продукта > Сайты > Список сайтов). Перед удалением сайта необходимо удалить сущности, которые имеют отношение к удаляемому сайту (или снять привязку с них).

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

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

Ошибка при удалении сайта

Примеры ошибок, возникающих
при удалении сайтов

Ошибка при удалении в CForumNew::OnBeforeLangDelete (forum) | Не удалён форум
Ошибка при удалении в CIBlock::OnBeforeLangDelete (iblock) | Не удалены инфоблоки. Привязанные инфоблоки могут находиться в разных типах инфоблоков.
Ошибка удаления. Возможно есть ссылающиеся объекты. | Не удалены сущности, ссылающиеся на удаляемые объекты. Например, при удалении инфоблока, являющегося торговым каталогом, не отвязаны инфоблоки, являющиеся торговыми предложениями для удаляемого инфоблока.
Ошибка при удалении в CSalePersonType::OnBeforeLangDelete (sale) | Ошибка связана с наличием типов плательщиков привязанных к сайту.
В заказах используется тип плательщика с ID=* | Не удалены заказы, относящиеся к удаляемым типам плательщиков
Ошибка при удалении в CRubric::OnBeforeLangDelete (subscribe) | Не удалены привязанные к сайту рассылки.

Сущности, которые могут запретить
удаление сайта

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

    Контент

  • Инфоблоки (Контент> Инфоблоки > Типы инфоблоков > Название инфоблока)
  • Привязка одного инфоблока к другому в качестве торгового предложения. (Контент> Инфоблоки > Типы инфоблоков > Название инфоблока, закладка Торговый каталог)
  • Привязка одного инфоблока к другому в качестве источника для полей Привязка к разделам и Привязка к элементам и других. (Контент> Инфоблоки > Типы инфоблоков > Название инфоблока, закладка Свойства)

    • Маркетинг

  • Правила работы с корзиной (Маркетинг > Товарный маркетинг > Правила работы с корзиной > Правила работы с корзиной)
  • Скидки на товар (Маркетинг > Товарный маркетинг > Скидки на товар > Скидки на товар)
  • Накопительные скидки (Маркетинг > Товарный маркетинг > Накопительные скидки)
  • Список рассылок Email-маркетинга (Маркетинг > Email-маркетинг > Список рассылок)
  • Список триггерных рассылок (Маркетинг > Триггерные рассылки > Список рассылок)
  • Привязка баннеров (Маркетинг > Баннерная реклама > Баннеры)
  • Контракты (Маркетинг > Баннерная реклама > Контракты)

    • Магазин

  • Заказы (Магазин > Заказы либо Магазин > Покупатели > Список покупателей)
  • Склады (Магазин > Складской учет > Склады)
  • Складские документы (Магазин > Складской учет > Документы)
  • Службы доставки (Магазин > Настройки > Службы доставки)
  • Платежная система (Магазин > Настройки > Платежные системы)
  • Налоги (Магазин > Настройки > Налоги > Список налогов)
  • Привязка налоговых ставок к налогам (Магазин > Настройки > Налоги > Ставки налогов)
  • Типы плательщиков (Магазин > Настройки > Типы плательщиков)
  • Аффилиаты (Магазин > Аффилиаты > Аффилиаты)
  • Планы комиссий (Магазин > Аффилиаты > Планы)
  • Пирамиды (Магазин > Аффилиаты > Пирамида)

    • Сервисы

  • Группы опросов (Сервисы > Опросы > Дополнительно > Группы опросов)
  • Веб-формы (Сервисы > Веб-формы > Настройка форм)
  • Выпуски рассылки (Сервисы > Рассылки > Выпуски)
  • Подписчики (Сервисы > Рассылки > Подписчики)
  • Список рассылок (Сервисы > Рассылки > Список рассылок)
  • Справочники техподдержки (Сервисы > Техподдержка > Справочники > Название справочника)
  • Уровни техподдержки (Сервисы > Техподдержка > Уровни поддержки)
  • Обращения (Сервисы > Техподдержка > Обращения)
  • Темы Социальной сети (Сервисы > Социальная сеть > Темы)
  • Форумы (Сервисы > Форумы > Список форумов)
  • Группы блогов (Сервисы > Блоги > Группы блогов)
  • Учебные курсы (Сервисы > Обучение > Курсы)
  • Привязка Учебной группы к курсу (Сервисы > Обучение > Учебные группы)
  • Почтовые ящики (Сервисы > Почта > Почтовые ящики)
  • Почтовые сервисы (Сервисы > Почта > Почтовые сервисы)

    • Настройки

  • Правила сортировки (Настройки > Поиск > Правила сортировки)
  • Почтовые шаблоны (Настройки > Настройки продукта > Почтовые события > Почтовые шаблоны)
  • Правила обработки адресов (Настройки > Настройки продукта > Обработка адресов > Правила обработки)


Управление доступом
37 / 278

Управление доступом - одна из основных обязанностей администратора сайта. Как это можно сделать в "1С-Битрикс: Управление сайтом" читайте в этой главе.


Принципы управления доступом
38 / 278

Главные принципы управления доступом

Управление доступом в рамках системы подразумевает:

  • доступ к модулям,
  • доступ к элементам динамического контента,
  • доступ к файлам и папкам.

Доступ для конкретного пользователя осуществляется в рамках Группы пользователей.
То есть, чтобы пользователь получил определённые права, необходимо включить его в группу с нужным уровнем прав. Если пользователь входит в несколько групп, то его уровень доступа определяется суммой прав этих групп.

В таблице приведены права доступа по умолчанию к модулям системы для стандартных групп пользователей.

Внимание! При включении пользователя в новую группу для получения всего возможного уровня прав ему необходимо заново авторизоваться в системе.

Все пользователи, которым требуется вносить хоть какие-то изменения в Публичной части сайта, должны иметь доступ на чтение к папке /bitrix/admin.

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

  • В Wiki, в стороннем файле, на недоступной для обычных пользователей странице должны быть описаны регламенты доступа для групп и пользователей, подключённых через функционал расширенных прав.
  • Когда в рамках проекта принимается решение о том, что теперь конкретный пользователь или пользователи группы "такой-то" имеют право добавлять/изменять/удалять новости "такого-то" раздела, то эта информация добавляется в регламент. Важно: указывается срок жизни этого правила.
  • После обновления регламентов "вручную" или через бизнес-процессы ставится задача ИТ службе. Служба исполняет это решение централизовано (AD/LDAP) или в конкретном проекте.


Уровни доступа
39 / 278

Разделять и управлять!

Система разграничения доступа позволяет гибко управлять правами пользователей. В системе введено понятие уровней доступа, которые состоят из набора разрешенных операций (например, права на создание файлов, управление пользователями и другие) и привязываются к модулям и группам пользователей.

Уровни доступа — определенный комплекс операций в системе, доступный для выполнения пользователем. Они предназначены для создания системы управления пользователями. Уровни доступа определяются администратором и могут быть как изменены, так и созданы. Обладают свойством "наследования", то есть если для текущего раздела/страницы явно не задан уровень прав, тогда устанавливается то право, которое задано для вышележащего раздела.

Примеры:

  • операция Управление пользователями только разрешенных групп позволяет не администраторам управлять пользователями из указанных групп
  • операция Ограниченная модификация файлов с PHP-кодом позволяет не администраторам настраивать параметры компонентов и редактировать файлы с PHP в визуальном режиме

Создание уровней доступа и управление ими

Управление уровнями доступа осуществляется в административном разделе на странице Уровни доступа (Настройки > Пользователи > Уровни доступа):

На данной странице представлен список всех имеющихся уровней доступа: системных и созданных пользователем.

Примечание: Системные уровни доступа доступны только для просмотра, отредактировать их невозможно. Созданные пользователем (т.е. пользовательские) уровни доступа системными не являются, поэтому их всегда можно отредактировать либо удалить.

Создадим собственный уровень доступа с помощью кнопки контекстного меню Добавить уровень доступа.

Добавление уровня доступа

Отметим некоторые особенности данной формы:

  • поля Название и Модуль являются обязательными для заполнения;
  • в поле Привязка выбирается:
    • Модуль - в этом случае уровень доступа можно будет установить для указанного модуля;
    • либо Файл/Папка - в этом случае создаваемый уровень доступа будет возможно настроить для файлов или папок.

Также для создания нового уровня доступа можно воспользоваться пунктом контекстного меню элемента Копировать. При нажатии будет создана копия выбранного элемента и новый уровень доступа откроется на редактирование. При этом если был скопирован системный уровень доступа, то вновь созданный уровень будет уже пользовательским.

В зависимости от выбранного модуля и типа привязки отображаются свои возможные действия на закладке Включаемые операции .

После сохранения уровень доступа будет выведен в форме настроек Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль), и в форме редактирования группы пользователей на закладке Доступ (Настройки > Пользователи > Группы пользователей).

Управление правами доступа пользователей осуществляется с помощью настройки прав групп , к которым относятся пользователи (в форме настройки параметров группы).

Документация по теме

  • Создание и редактирование уровня доступа


Доступ к модулям
40 / 278

Управление правами доступа к модулям

Настройка прав доступа к модулям задаёт действия, которые может позволить себе пользователь определённой группы. Управление выполняется двумя способами:

  1. на закладке Доступ в форме настройки группы пользователей (Настройки > Пользователи > Группы пользователей):

    Форма настройки параметров группы пользователей

    В форме настраиваются права какой-либо группы пользователей на доступ ко всем модулям системы.

  2. в форме настройки модуля (Настройки > Настройки продукта > Настройки модулей >_нужный модуль_):

    Форма настройки модуля

    Значение По умолчанию определяет уровень доступа для всех групп. Если группе нужно установить значения отличное от По умолчанию, то выберите в левом столбце группу пользователей, а в правом - уровень доступа. Ссылка Добавить право доступа добавляет в список новые строки.

    Зачем нужно значение "По умолчанию"

    Каждый модуль имеет разные права доступа.
    Каждой группе можно задать разные права доступа
    Когда групп много, то установка прав - утомительное занятие. Поэтому сделано так:

    В настройках каждого модуля предусмотрено поле По умолчанию. В нём указывается то значение, которое должно быть по умолчанию для большинства групп. (Если вы создаёте группу, то в полях доступа для всех модулей будет стоять то самое - по умолчанию.)

    Например для главного модуля выбрано значение: Доступ закрыт. То есть для всех групп (кроме Админа), будет закрыт доступ к настройкам модуля.

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

    Примечание: Если вы дали группе доступ к модулю, но он по-прежнему недоступен для участников этой группы, то:
    • проверьте, установлен ли нужный уровень доступа в настройках группы - см. способ 1 (возможна такая ситуация: в настройках группы стоит доступ По умолчанию, а в настройках модуля этому значению соответствует уровень прав Доступ закрыт, и по правилам приоритета доступ участникам группы оказался закрыт);
    • участники группы должны заново авторизоваться (права не вступят в силу без повторной авторизации).

Отдельные модули позволяют осуществлять дополнительную настройку прав доступа к контенту (см. урок Доступ к элементам контента ).

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

Кроме того, для модулей Реклама, баннеры и Техподдержка настройка прав доступа пользователей выполняется на уровне ролей.

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


Доступ к элементам контента
41 / 278

Некоторые модули предусматривают дополнительную настройку прав доступа к контенту:

Модуль Информационные блоки

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

Настройка прав доступа выполняется в форме редактирования свойств инфоблока на закладке Доступ (Контент > Информ. блоки > Типы информ. блоков > <название_типа_инфоблока> <название_инфоблока>).

Нажмите на рисунок, чтобы увеличить

Простой режим

В простом режиме права доступа настраиваются для всего информационного блока в целом.

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

Если при попытке изменения доступа появляется сообщение "Внимание! Заданный уровень доступа переопределяется уровнем доступа по умолчанию", то это означает, что выставляемое право находится на более низком уровне иерархии, чем право доступа по умолчанию, и система не даст его установить.

Переопределение уровня доступа

В этом случае необходимо пересмотреть систему организации доступа. Например, по умолчанию выставить право Нет доступа и для нужных групп указать право Чтение.

Примечание: Если необходимо закрыть доступ к инфоблоку, проверьте уровень доступа группы Все пользователи, т.к. любые пользователи принадлежат к этой группе и пользуются ее правами.

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

Кроме того, закрытое содержимое не будет видно в поиске для этой группы пользователей.

Расширенный режим

После установки флажка в поле Расширенное управление правами нажмите кнопку Применить, и форма перезагрузится.

Теперь можно задать права для инфоблока по умолчанию. Эти права будут применяться до тех пор, пока в форме создания/редактирования конкретного раздела или элемента не будет указан другой уровень прав.

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

Для задания прав к конкретному разделу или элементу перейдите к форме редактирования элемента, на закладку Доступ .

Модуль Веб-формы

В модуле Веб-формы предусмотрено управление доступом к результатам заполнения веб-формы на уровне Статусов результатов (результатов заполнения веб-формы):

Для настройки прав доступа к статусам выполните следующее:
  • перейдите на страницу Список форм (Сервисы > Веб-формы > Настройка форм);

    • Примечание
    Использование статусов доступно только в расширенном режиме редактирования веб-форм. Для этого необходимо снять флажок в поле Использовать упрощенный режим редактирования форм формы настроек модуля Веб-формы (Настройки > Настройки продукта > Настройки модулей):

    Настройки модуля "Веб-формы"

  • Перейдите к редактированию параметров формы, дважды кликнув по строке с названием формы или выбрав пункт контекстного меню Изменить;
  • Перейдите к просмотру статусов формы, нажав кнопку Статусы на контекстной панели;
  • Перейдите к редактированию параметров статуса, дважды кликнув по строке с его названием или выбрав в пункте контекстного меню Изменить, затем выберите вкладку Доступ.

    • Для каждого статуса определяются группы пользователей, обладающие правом на работу с результатом веб-формы в данном статусе.

  • Пример организации прав доступа.


Права на файлы
42 / 278

Права на файлы

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

Результат должен быть таким: для пользователя, под которым запущен Apache, нужны права на чтение/запись на все файлы и папки, начиная от корня сайта. При этом на разделяемом хостинге другие пользователи на этой же машине не должны иметь права читать/изменять ваши файлы. Также желательно, чтобы файлы, закачанные по FTP, могли быть перезаписаны из скрипта.

Проблема в том, что у каждого хостинг-провайдера своя политика безопасности и свои настройки: одни ограничивают доступ к чужим файлам даже при праве доступа 777 , другие запускают процесс Apache под своим пользователем для каждого виртуального хоста, и т.д.

Поэтому вопрос необходимо решать с хостинг-провайдером.

Проблемы с неправильными
правами и их решение

Unix/Linux - многопользовательская система, это значит, что в системе одновременно могут работать несколько пользователей в своих папках со своими файлами. Соответственно, разные пользователи имеют разные права на доступ к файлам и папкам.

Для загрузки файлов по FTP и работы с ними через веб-интерфейс используются разные программы (ftp клиент и веб-сервер), и для операционной системы это разные пользователи.

Для решения проблемы взаимной записи необходимо установить специальные права на файлы и папки (требуемые права зависят от того, под какими пользователями работают ftp клиент и веб-сервер, к каким группам принадлежат).

Внимание! На каждом хостинге эта настройка специфическая, подробности вы можете узнать у своего хостера.

Наиболее часто встречаемые проблемы, связанные с правами на файлы и папки:

  • При изменении файлов через FTP не удается сохранить изменения

    В этом случае необходимо пользователю веб-сервера разрешить запись в свои файлы для пользователя FTP. Это можно сделать через следующий скрипт:

    <?

function chmod_R($path, $perm)
{
   if (is_dir($path))
   {
      chmod($path."/".$file, $perm);
      $handle = opendir($path);
      if (!$handle)
      {
         echo "Error: ".$path;
         return;
      }

      while (false !== ($file = readdir($handle)))
      {
         if ($file == "." || $file == ".." || $file == '.htaccess')
            continue;

         chmod_R($path."/".$file, $perm);
      }
      closedir($handle);
      return true;
   }
   elseif(is_file($path))
   {
      $file_perm = $perm ^ 0111;
      return chmod($path, $file_perm);
   }
   return;
}

 $path = $_GET["path"];
 if (!trim($path))
 {
 ?>
    <form method=get>
       Путь от корня сайта: <input name=path value='<?=dirname($_SERVER['SCRIPT_NAME'])?>'><br>

       Права: <input name=perm value='0777'><br>
       <input type=submit value='OK'>
    </form>
 <?
 }
 else

 {
    $path = realpath($_SERVER["DOCUMENT_ROOT"] . "/" . $path);

    if (intval($_GET['perm']))
       $perm = octdec(intval($_GET['perm']));
    else
       $perm = 0777;

    if (chmod_R($path, $perm))
       echo "OK: ".$path;
 }
?>

    После запуска скрипт спросит путь к папке, в которой надо изменить права относительно корня сайта и сами права на папки. На файлы он автоматически сбросит атрибут "x" - исполнение. Если это не требуется, замените строку

    $file_perm = $perm ^ 0111;

    на

    $file_perm = $perm;
  • Файлы загружаются через ftp, но при попытке их изменения в продуктах Bitrix Framework появляется ошибка записи

    В этом случае необходимо пользователю ftp разрешить запись для пользователя веб-сервера, иными словами, выставить права.

    Сделать это можно по протоколу ssh, например, используя бесплатную программу PuTTY.

    Рассмотрим последовательность действий для изменения прав доступа:

    • подключитесь к своему сайту (о том, как это сделать, смотрите руководство к программе, с помощью которой вы подключаетесь)
    • перейдите в нужную директорию, используя команду cd:
      cd /path/to/dir
      Примечание: Путь /path/to/dir необходимо уточнить у хостера.
    • затем выполните команду chmod:
      chmod -R xxxx .

      где:
      -R - указывает, что необходимо изменить права на все папки и подпапки,
      xxxx - указывает требуемые атрибуты доступа (например, 0771),
      . - указание на текущую директорию.

      Подробнее про команду chmod можно посмотреть в Википедии и документации по PHP.

Примечание: Установка прав через клиент ftp с поддержкой рекурсивного изменения прав на папки не является хорошим вариантом. Потому что, например, для изменения прав на 100 файлов потребуется отправить специальную команду как минимум 100 раз (если есть подпапки - то ещё и для них). В дополнение к этому передаётся еще и множество служебной информации. В итоге эта операция может занять довольно продолжительное время даже при хорошем канале Интернет.

Обратите внимание:

  • чтобы избежать проблем с правами при установке продукта - лучше всего воспользоваться скриптом BitrixSetup. Он скачает и распакует дистрибутив с нашего сайта, при этом файлы будут принадлежать веб-серверу и проблем при работе не возникнет;
  • ftp и ssh сервисы в большинстве случаев позволяют авторизоваться под одним и тем же пользователем, значит можно закачать файл через ftp, а изменить права через ssh;
  • пользователь может изменить права только на свои файлы. Это значит, что если вы не можете изменить файл непосредственно в системе, то не стоит пытаться применять веб скрипт. Права необходимо изменять через ftp/ssh. И наоборот;
  • панель управления на хостинге чаще всего с целью безопасности работает под третьим пользователем, поэтому в борьбе с правами она скорее всего не поможет.

Установка прав на создаваемые
Bitrix Framework файлы

Права, с которыми создаются файлы и папки, вы можете установить в файле /bitrix/php_interface/dbconn.php:

define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);


Управление доступом к папкам и файлам
43 / 278

Зачем это нужно

Система предусматривает возможность отключения просмотра физической структуры сайта в Административном разделе. Это может быть полезно по следующим соображениям:

  • если у какой-то группы пользователей есть такие права администрирования, которые в принципе могут привести к негативным последствиям в случае неграмотных действий;
  • если квалифицированный администратор сайта в отъезде, отпуске и т. д., то полезно скрыть физическую структуру, оберегая проект от непредвиденных случайностей;
  • чтобы контент-менеджеры не пребывали в недоумении, почему одни и те же страницы, разделы могут быть отображены дважды (в рамках физической и логической структуры): пусть работают только с логической структурой.

Как отключить просмотр
физической структуры

Для отключения просмотра физической структуры на странице настроек модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой) установите флажок в поле Не отображать раздел "Файлы и папки" в меню "Структура сайта" .

Примечание: Если в файловом менеджере продукта не отображаются файлы и папки и без включения функции Не отображать раздел "Файлы и папки" в меню "Структура сайта", то это происходит:
  • либо в результате ошибки в настройках сайта (Настройки > Настройки продукта > Сайты > Список сайтов). Значение поля Путь к корневой папке веб-сервера для этого сайта не соответствует реальному пути к DOCUMENT_ROOT.
  • либо на корневую папку сайта (DOCUMENT_ROOT) установлены права недостаточные для чтение её содержимого. В данном случае надо установить на папку наиболее полные права.

Как настроить права доступа
к управлению структурой

По команде Дополнительно > Показать права на доступ для > нужная группа отображается текущее право группы пользователей на доступ к папкам и файлам системы.

Настройка прав доступа к управлению структурой сайта выполняется в Менеджере файлов (Контент > Структура сайта). Для настройки прав:

  • Перейдите в раздел Файлы и папки (Контент > Структура сайта > Файлы и папки)
  • Отметьте нужные элементы в Колонке флажков;
  • Выберите действие Права на доступ продукта на панели групповых операций и нажать кнопку Применить:

    В форме настройки прав доступа укажите уровень доступа каждой группы пользователей к выбранным файлам и папкам.

Права, которые могут быть назначены Группам пользователей
  • Запрещен: доступ группы пользователей к каталогу или файлу будет закрыт;
  • Чтение: пользователи группы смогут просмотривать информацию файла или каталога в публичном разделе сайта;
  • Запись: пользователи смогут редактировать файлы;
  • Документооборот: пользователям разрешено создавать и редактировать файлы через модуль Документооборот;
  • Полный доступ: пользователи получают права не только на изменение каталогов или файлов, но и на управление правами доступа всех групп пользователей к ним;
  • Наследовать: для настраиваемых каталогов или файлов будут назначены те же права, что и для вышележащих каталогов.
Обратите внимание: Если установлено право доступа Наследовать […], то реальное право доступа определяется полем Все группы, для которых уровень доступа Наследовать. Иными словами, по умолчанию для всех групп установлено только право на чтение (кроме администратора сайта, который может все).

Для настройки прав доступа к текущей директории (например, к корневой папке) нужно воспользоваться кнопкой Свойства папки, расположенной на контекстной панели:

Права групп пользователей на доступ к директории сайта наследуются всеми вложенными папками и файлами. Иными словами, задав право, скажем, на чтение одной папки, задаются права на чтение для всех вложенных в неё папок.

Задание прав на примере группы Редакторы сайта
Предоставим группе пользователей Редакторы сайта право на управление разделом Контент (папка /content/). Для всех остальных разделов и файлов установим для данной группы право на просмотр (Чтение). Для этого:
  1. Установим право на доступ к корневому каталогу для группы Редакторы сайта равным Чтение;
  2. Для всех вложенных папок и файлов, кроме папки /content/ (раздел Контент), установим право доступа для группы Редакторы сайта равным Наследовать [чтение]:
  3. Установим для группы пользователей Редакторы сайта право доступа к папке /content/ (раздел Контент) равным Запись, а для всех вложенных файлов и папок каталога /content/ установим право доступа для группы Редакторы сайта равным Наследовать [запись].
В результате проделанных операций пользователи группы Редакторы сайта получат право на просмотр всех файлов сайта, а также право на создание и редактирование подразделов и файлов в разделе Контент (/content/).

Управление доступом к файлам и папкам так же возможно и из публичного раздела .

Чтобы пользователь мог редактировать те или иные страницы/разделы и на панели управления были соответствующие кнопки, для требуемой группы пользователей необходимо установить права на запись:

  • для нужных каталогов
  • или отдельных файлов

Внимание! Для изменений контента в Публичной части сайта пользователи необходим доступ на чтение к папке /bitrix/admin. Это папка, в которой расположен визуальный HTML-редактор. Без этого редактирование будет возможно только в текстовом режиме.

Нельзя закрыть доступ только к определенным папкам в разделе "Файлы и папки" (так, чтобы они не отображались для какой-либо группы пользователей). Чтобы группа пользователей могла работать только с конкретными папками, а остальные не видела, нужно закрывать доступ ко всему разделу "Файлы и папки" и открывать этой группе доступ к конкретным папкам, давая прямые ссылки на эти папки (группа пользователей сможет работать по прямым ссылкам, но файловой структуры не увидит).

Пример решения проблемы

Была правильно создана группа и к ней приписан пользователь. Группе назначены следующие права доступа к административным частям модулей:

  • Главный модуль - полный доступ;
  • Управление структурой - полный доступ.

Но в административной части сайта пользователи созданной группы не имеют доступа к страницам и при авторизации выдается сообщение об ошибке .

Решение: По умолчанию новые пользователи имеют только право чтения для всех папок сайта, кроме папки /bitrix/admin/. Следовательно, для получения доступа вам необходимо установить права на чтение папки /bitrix/admin/:

Важно запомнить!

  • Права групп пользователей на доступ к директории сайта могут быть унаследованы всеми вложенными папками и файлами
  • Все пользователи, которым требуется вносить хоть какие-то изменения в Публичной части сайта, должны иметь доступ на чтение к папке /bitrix/admin.

Документация по теме

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


Дополнительная проверка прав доступа
44 / 278

Bitrix Framework позволяет использовать условия для отображения тех или иных элементов сайта, а также разграничения прав доступа к этим элементам для различных групп пользователей.

Настройка шаблона сайта

Например, в зависимости от группы пользователей, к которой относится текущий пользователь, может показываться конкретный шаблон дизайна страниц сайта. Такое условие задается в форме редактирования сайта (Настройки > Настройки продукта > Сайты > Список сайтов):

Или другой пример, проверка группы пользователей, к которой относится текущий пользователь по PHP выражению:

!$GLOBALS['USER']->IsAuthorized() && (!isset($_SERVER['REMOTE_USER']) || strlen($_SERVER['REMOTE_USER']) <= 0)

Также, в дистрибутиве «Битрикс24 в коробке» уже задан пустой шаблон, который отображается для неавторизованных пользователей.

Настройка пунктов меню

В зависимости от группы пользователей, к которой относится текущий пользователь, отображаются и пункты меню. Данный тип условий задается в расширенном режиме редактирования меню (подробно про настройку меню смотрите в уроке Расширенный режим настройки меню):

Если скрыть только пункт меню, но не запретить доступ к разделу, то обычный пользователь сможет зайти в раздел, если он знает его адрес.

Настройка доступа
к элементам инфоблока

Ряд компонентов системы допускает задание ограничений на доступ к контенту. Например, можно ограничить доступ к детальному просмотру новостей. Рассмотрим это на примере комплексного компонента Новости.

Нажмите на рисунок, чтобы увеличить

В группе параметров Дополнительные настройки при установке флажка в поле Использовать дополнительное ограничение доступа появляется дополнительное поле Группы пользователей, имеющие доступ к детальной информации. В этом поле выберите группы пользователей, которым должен быть обеспечен доступ к детальной информации.

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

Документация по теме

  • Права доступа
  • Список сайтов


Несколько примеров работы
45 / 278

Как сделать страницу, видимую для сотрудников,
но не для пользователей (видеоурок)

Это делается с помощью настройки прав доступа.

Мы уже умеем управлять правами доступа. А создать страницу может даже контент-менеджер.

Давайте совместим это. То есть сделаем страницу - например, будем там размещать приказы руководства - и дадим на неё права только сотрудникам, то есть администраторам и контент-менеджерам. Пункт перехода на страницу должен быть виден в основном меню сотрудникам и не виден пользователям, даже авторизованным.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Как быстро закрыть доступ к публичной части

Если возникла необходимость экстренного закрытия публичной части сайта, воспользуйтесь служебной процедурой на странице Настройки > Настройки продукта > Настройки модулей > Главный модуль:


Настройка доступа к инфоблокам
46 / 278

Настройка доступа

Регулирование доступа к инфоблоку - это ответственный этап его настройки. Неправильно заданные права могут привести к тому, что:

  • информацию увидят те пользователи, которым видеть ее не положено
    • либо возникнет обратная ситуация:
  • пользователям не будет доступна полагающаяся информация.

Права доступа задаются для каждого инфоблока отдельно в форме его редактирования на закладке Доступ. По умолчанию к новому инфоблоку полный доступ имеет только группа пользователей Администраторы, а для всех остальных групп доступ закрыт:

Нажмите на рисунок, чтобы увеличить

Настройка в простом режиме

Простой режим настройки прав доступа к инфоблоку - это режим, когда опция Расширенное управление правами отключена, а в секции Доступ для групп пользователей перечислены все имеющиеся у вас в системе группы пользователей. Предоставление группе некоторого права доступа заключается в его выборе из выпадающего списка:

  • Так, контент-редакторам чаще всего предоставляется право Изменение , поскольку именно они вносят информацию в инфоблок.
  • Для всех пользователей обычно дают право Чтение . Исключение составляют случаи закрытой информации, тогда всем пользователям оставляют Нет доступа, а Чтение назначают отдельной группе, например, группе подписчиков.

Важно! При настройке прав доступа помните, что пользователи любых групп обязательно принадлежат и к группе Все пользователи. Поэтому право доступа группы Все пользователи не должно быть «выше» прав доступа всех остальных групп. В противном случае вы получите ошибку .

Когда вы хотите некоторой группе закрыть доступ, то следует закрыть доступ группе Все пользователи, требуемой группе проставить По умолчанию, а остальным необходимым группам проставить то право, которое было изначально у группы Все пользователи:

Нажмите на рисунок, чтобы увеличить

Настройка в расширенном режиме

Расширенный режим позволяет настроить права доступа не только целиком ко всему инфоблоку, но и гибко задать права на отдельные его разделы и элементы.

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

По ссылке Добавить вы можете выбрать не только группу пользователей, но и группу социальной сети или непосредственно отдельных пользователей. Назначение прав выполняется обычным способом - выбором нужного уровня доступа из выпадающего списка . Установленные права будут распространяться на все разделы и элементы до тех пор, пока в разделе (или элементе) вы не зададите отличное право доступа (смотрите пример в уроке Определение прав доступа динамических страниц ).

Заключение

Настройка доступа может выполняться в двух режимах:

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


Дизайн сайта и многоязычность
47 / 278

Управление дизайном сайта и языками на сайте производится с Административного раздела. Познакомьтесь с описанием как это делается.


Многоязычность
48 / 278

Разноязычные сайты на одной лицензии

В эпоху глобализации многоязычная подача информации - насущная потребность. Сайт, созданный на "1С-Битрикс: Управление сайтом", способен решить эту задачу. Количество сайтов на разных языках может быть неограниченным . Пример многоязычного сайта - сайт Битрикс24 в пространстве .com:

Нажмите на рисунок, чтобы увеличить

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

Выбор и настройка параметров языка публичного раздела выполняется отдельно для каждого сайта в форме создания и редактирования (Настройки > Настройки продукта > Сайты > Список сайтов). Дополнительно в Региональных настройках можно определить формат показа даты и времени для используемого на сайте языка.

Разноязычная информация в пределах одного сайта

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

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

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

Обратите внимание: Для различных разделов на сайте могут быть установлены различные шаблоны сайта. Для каждого шаблона можно задать отдельную кодовую страницу. Таким образом, можно представить каждый языковой раздел в отдельном дизайне.

Примечание: Необходимо различать языковые настройки для публичной и административной части сайта. Подробнее про настройки языка интерфейса административной части сайта будет рассказано в главе Управление интерфейсом .


Шаблоны дизайна
49 / 278

Шаблоны и условия их применения

Страницы на сайте показываются в выбранном для них шаблоне дизайна.

Шаблон дизайна - программный код в котором определяется внешний вид сайта: расположение различных элементов на нём, художественный стиль и способ отображения страниц. Включает в себя программный html-код, графические элементы, таблицы стилей, дополнительные файлы для отображения контента. Может так же включать в себя шаблоны компонентов, шаблоны готовых страниц и сниппеты.

Число шаблонов дизайна на сайте ничем не ограничено. Для каждого шаблона определяется условие, при котором данный шаблон будет применяться к страницам сайта. Например, шаблон может быть применен:

  • ко всем страницам сайта в качестве шаблона по умолчанию;
  • к страницам отдельного раздела сайта;
  • к определенной странице сайта;
  • при отображении страниц для определенной группы пользователей;
  • при отображении версии страницы для печати;
  • в зависимости от программных условий ;
  • и т.п.

Нажмите на рисунок, чтобы увеличить

Настройка условий применения шаблона

Настройка условий применения того или иного шаблона определяется отдельно для каждого сайта (в форме создания и редактирования сайта: Настройки > Настройки продукта > Сайты > Список сайтов).

Нажмите на рисунок, чтобы увеличить

Внимание! При настройке условий применения шаблонов обязательно указывайте индекс сортировки. Порядок применения шаблонов к сайту определяется в соответствии с указанной сортировкой. Если для страницы (раздела) может быть применено несколько шаблонов, то в итоге будет применен шаблон с меньшей сортировкой. Если индекс сортировки задан не будет, то может быть применен неверный шаблон.

Общее правило сортировки при назначении шаблонов подобно перевернутой воронке:

  • первыми должны идти условия частного характера;
  • потом условия выборки;
  • потом все остальное.

Документация по теме

  • Простые примеры применения шаблонов в зависимости от различных условий (курс "Разработчик Bitrix Framework")
  • Создание и редактирование сайта (документация)
  • Шаблоны сайта (документация)


Установка решения с помощью мастера
50 / 278

Мастер вам в помощь

Мастер - диалог, состоящий из нескольких шагов . Каждый из мастеров имеет свое предназначение. Большая часть из этих мастеров предназначена как раз для смены решения. Список всех мастеров представлен на странице Список мастеров (Настройки > Настройки продукта > Список мастеров).

Нажмите на рисунок, чтобы увеличить

Как сменить решение

в публичной части сайта
  • Нажмите кнопку Протестировать новое решение : откроется страница выбора решения для установки.
  • Выберите подходящее решение и пройдите все шаги мастера.
в административной части сайта
  • Перейдите на страницу Список мастеров (Настройки > Настройки продукта > Список мастеров).
  • Для запуска необходимого мастера выберите пункт Установить в меню действий, после чего откроется страница мастера настройки решения.

Внимание! Система допускает тестирование нескольких решений. При этом для каждого решения создаются новые сайты. Данные старых решений не удаляются, но если число сайтов превышает число сайтов, разрешенных по умолчанию (например, 2 сайта для лицензии "Старт"), то данные более ранних решений становятся неактивными.

Документация по теме

  • Список мастеров
  • Импорт мастера


Управление интерфейсом
51 / 278

Администратор сайта работает со всем богатым функционалом продукта "1С-Битрикс: Управление сайтом" из Административного раздела . Мы постарались сделать интерфейс административного раздела удобным, понятным, логичным. А кроме того, у вас есть возможность настроить и сам интерфейс так, как удобно вам. В этой главе мы расскажем о способах настройки административного интерфейса, поддержки работы с многоязычным интерфейсом в административном разделе, а также о создании проектов на различных языках.

Внимание! Перед клиентами коробочной версии Битрикс24 часто возникает задача переключения языка меню, без дублирования контента. Штатно это реализовать нельзя, нужна доработка как настроек портала, так и файлов меню.


Пользовательские настройки
52 / 278

Настройка под себя

Bitrix Framework позволяет настраивать и запоминать настройки интерфейса для каждого зарегистрированного пользователя, имеющего доступ в административный раздел.

Примечание: Дополнительную информацию по настройке интерфейса форм смотрите в следующих уроках:
  • Настройка формы редактирования элемента
  • Настройка формы отчета (Списки элементов)
  • Настройки форм инфоблоков

На многих страницах административного раздела на контекстной панели расположена кнопка Настроить [image]. При нажатии на неё вызывается диалог Настройка списка:

Система сохранит произведенные настройки для конкретного пользователя. Каждый раз этот список для этого пользователя будет открываться в заданном виде. Пользователь может настроить каждый из списков в административной части "под себя".


Административные настройки
53 / 278

Как задать Административные (то есть общие для всех) настройки интерфейса системы.


Административные настройки
54 / 278

Где задаются по умолчанию?

Административный уровень настроек по умолчанию задается:

  • в общем случае на странице Настройка интерфейса пользователя (Настройки > Настройки продукта > Интерфейс > Персональные настройки);
  • в частном случае для каждой формы в диалоге Настройка списка каждой конкретной формы.

В свою очередь административные настройки имеют два уровня:

  • первый уровень - тот, который идёт с поставкой системы (системный уровень настроек по умолчанию);
  • второй уровень - тот, который может задать администратор (административный уровень настроек по умолчанию).

Административные настройки по умолчанию для каждой формы выполняются таким же образом, как и пользовательская настройка, но с установкой флажка Установить данные настройки по умолчанию для всех пользователей.

Как задать общий административный
уровень настроек

Для задания общего административного уровня настроек по умолчанию откройте страницу Настройка интерфейса пользователя (Настройки > Настройки продукта > Интерфейс > Персональные настройки):

Описание закладки Настройки

Закладка Настройки позволяет задать настройки интерфейса пользователя, используя следующие разделы:

  • Раздел Персональные настройки позволяет:
    • разрешить/запретить контекстное меню в списках (таблицах отчетов);
    • задать способ отображения контекстного меню: по клику Правой кнопки мыши или по клику Правой кнопки мыши + клавиша Ctrl.
    • Включить или выключить автосохранение форм.
  • Раздел Панель инструментов позволяет настроить внешний вид Панели инструментов.
  • Раздел Меню "Пуск" позволяет:
    • разрешить/запретить предварительную подгрузку пунктов меню в фоновом режиме;
    • разрешить/запретить отображение всплывающих подсказок при наведении указателя мыши на пункты меню;
    • определить количество часто используемых ссылок, которое будет выведено в Меню под Избранным:

  • Раздел Звуки позволяет разрешить/запретить проигрывание звуков и указать звук, который будет проигрываться при начале работы системы.
  • В разделе Сообщения можно указать, какие сообщения будут выводиться: о сроке окончания техподдержки, о состоянии модулей Проактивная защита и Монитор производительности.
  • Раздел Общие настройки позволяет назначить указанные настройки, которые будут использоваться как настройки по умолчанию для всех зарегистрированных пользователей, имеющих доступ в административный раздел.

Ссылки на закладке
Удаление

  • Очистить все собственные настройки интерфейса - удалить все настройки, установленные со снятой опцией Установить данные настройки по умолчанию для всех пользователей и установить заново все настройки административного уровня "по умолчанию";
  • Очистить все настройки по умолчанию - установить все настройки на системном уровне по умолчанию;
  • Очистить персональные настройки всех пользователей - установить все настройки на административном уровне по умолчанию.


Горячие клавиши
55 / 278

Специальные комбинации клавиш

Работу в "1С-Битрикс: Управление сайтом" можно сделать более эффективной и быстрой, если пользоваться не только мышью, но и применять «горячие клавиши» - специальные комбинации клавиш, призванные упростить и ускорить работу. Зачастую это гораздо удобнее.

Как создать и изменить горячие клавиши в публичном разделе рассказывается в отдельном уроке. Управление горячими клавишами в административном разделе производится на странице Настройки > Настройки продукта > Интерфейс > Горячие клавиши.

Чтобы добавить своё действие, нажмите кнопку Добавить на контекстной панели. После этого заполните форму создания для горячих клавиш:

Необходимо заполнить как минимум два поля:

  • Наименование - выводится у пользователей в окне настроек горячих клавиш;
  • Выполняемый JavaScript код - код, вызывающий нужное действие.

Примечание: Описание других полей смотрите в документации .

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

http://127.0.0.1:84/bitrix/admin/hot_keys_list.php или /bitrix/admin/.

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

Примечание: Допускается назначение одинакового комплекта горячих клавиш на действия на разных страницах.

Пример

Можно назначить по горячей клавише переход в наиболее часто используемый раздел. Код JavaScript для открытия страницы Настройки > Настройки продукта > Интерфейс > Горячие клавиши Административного раздела будет выглядеть так:

location.href='/bitrix/admin/hot_keys_list.php';

Документация по теме

  • Горячие клавиши
  • Создание и редактирование горячих клавиш


Поведение мыши по умолчанию
56 / 278

Клавишами мыши в административном интерфейсе можно выполнить:
  • левый клик на кнопке меню действий или правый клик на строке таблицы отчета - вывод меню действий:

    или

  • Ctrl + правая кнопка - выводит стандартное меню браузера:

  • двойной клик на строке таблицы отчета - открывает сущность, отображаемую в строке, для редактирования;
  • Shift + двойной клик на строке таблицы отчета - открывает сущность для редактирования в новом окне.


Добавление пункта меню в административный раздел
57 / 278

Нужен пункт меню в админке. Видеоурок

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Два варианта

1) Дополнительные пункты меню могут быть созданы через раздел управления Избранное (Настройки > Избранное). В этом разделе кликните по кнопке Добавить и укажите название пунктов меню и ссылки на нужные страницы:

Добавленные страницы появятся как отдельные пункты меню в разделе Избранное в публичной части сайта:

2) Пользователь может настраивать административное меню так же, как и меню в публичном разделе. Т.е. для каждого модуля к стандартным пунктам меню можно добавить свои пункты и целые разделы. Для этого:

  • Через интерфейс управления структурой сайта перейти в папку /bitrix/admin/ (Контент > Структура сайта > Файлы и папки > bitrix > admin).
  • С помощью меню Добавить создайте меню типа [left] Левое меню.
  • При редактировании меню ввести название раздела и необходимые пункты меню:

Создание раздела меню

Для создания раздела меню нужно перейти в расширенный режим , ввести название пункта (например, Мои Отчеты) и в секции Параметры ввести новые параметры, например:

SEPARATOR = Y // указывает, что этот пункт должен быть оформлен как раздел;

SECTION_ID = MyReports // определяет символьный код своего раздела меню, например "my_menu"

SORT = 200000 // это глобальный индекс сортировки для показа данного пункта в общем меню;

Нажмите на рисунок, чтобы увеличить

Пример:

Для редактирования кода элемента меню используется кнопка Редактировать как файл на контекстной панели

<?
// добавим свой раздел меню "МоиОтчеты"
$aMenuLinks = Array(
    Array(
        "МоиОтчеты",
        "",
        Array(),
        Array(
          "SECTION_ID"=>"MyReports",
          "SEPARATOR" => "Y",
          "SORT" => 200000
        ),
        ""
    )
);
?>

В результате новый раздел добавится в меню .

Создание пункта меню

Для создания обычного пункта меню нужно задать его название, ссылку, а также указать в поле Параметры мнемоническое имя того раздела меню, где будет показан пункт. Например, вставим свой пункт Импорт техники в раздел Инфоблоки:

Если надо вставить пункт в свой подраздел, поле SECTION_ID не указывается.

Сортировка пунктов внутри подраздела будет выполняться в соответствии со значениями индекса сортировки для каждого пункта.

Пример:

Для редактирования кода элемента меню используется кнопка Редактировать как файл на контекстной панели

<?
// добавим свой пункт меню "Импорт техники" в раздел "Информ. блоки" (iblock)
$aMenuLinks = Array(
    Array(
        "Импорт техники",
        "/bitrix/admin/equipment_import.php?lang=ru",
        Array(),
        Array(
            "ALT" => "Импорт техники из dbf файлов",
            "SECTION_ID" => "iblock",
            "SORT" => "100"
        )
    )
);
?>

В результате новый пункт добавится в меню .

Примечание: Подробную информацию про меню можно посмотреть на странице документации для разработчиков Административное меню.


Языки интерфейса
58 / 278

Многоязычный интерфейс

Bitrix Framework поддерживает работу с многоязычным интерфейсом в административном разделе сайта. В административной части это позволяет выводить служебные сообщения (например, сообщения об ошибках), отображать сообщения форм и таблиц на различных языках.

Примечание: Русский, английский и немецкие языки не ставятся через систему обновлений. Для использования их в административной части необходимо установить соответствующие дистрибутивы.

Система помощи также отображается в зависимости от текущего языка административного раздела. Таким образом, при нажатии на кнопку Помощь административной панели будет открыта соответствующая страница онлайн документации . В настоящее время система помощи поставляется на русском и английском языках.

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

Язык указывается для каждого сайта на странице настроек (Настройки > Настройки продукта > Сайты > Список сайтов):

Как реализуется многоязычный интерфейс административного раздела?

Для каждого модуля системы создается набор специальных языковых файлов. Они хранятся в папках с названиями соответствующих языков. В файлах содержатся переводы фраз, используемых в интерфейсе, на эти языки.

Нажмите на рисунок, чтобы увеличить

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

Важно! Количество языков, используемых в системе, не зависит от количества сайтов, работающих под управлением системы.

Список языков интерфейса, доступных для штатной установки в продуктах «1С-Битрикс: Управление сайтом» и коробочной версии «Битрикс24»:

  • украинский
  • испанский (Латинская Америка)
  • португальский (Бразилия)
  • французский (Канада)
  • польский


Управление языками
59 / 278

Языки. Видеоурок

Управление языками интерфейса системы выполняется на странице Языки интерфейса (Настройки > Настройки продукта > Языковые параметры > Языки интерфейса). В списке отображены языки, доступные для выбора в качестве языка административного интерфейса. На выбранном языке будут отображаться системные сообщения: информационные сообщения, сообщения об ошибках, заголовки таблиц, надписи на кнопках управления и т.д.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Пример добавления языка в систему

Рассмотрим добавление в систему нового языка на примере испанского (для Латинской Америки). Для этого:

  1. Создадим учетную запись языка (кнопка Добавить язык на контекстной панели страницы Языки интерфейса).

    Значения полей ясны из названий, если возникло непонимание, обратитесь к пользовательской документации . Одно обязательное пояснение:

    ID - символьный идентификатор языка используется для загрузки соответствующих языковых файлов, поэтому он должен совпадать с идентификатором языка в системе обновлений. Например, языковые файлы для испанского (для Латинской Америки) языка доступны на сервере обновлений с идентификатором la. Поэтому при создании испанского языка используйте в поле ID – la.

    Список идентификаторов языков
    Язык& | Идентификатор | Кодировка
    Russian | ru | iso-8859-5, windows-1251, koi8-r
    English | en | iso-8859-1, windows-1252
    Afrikaans | af | iso-8859-1, windows-1252
    Albanian | sq | iso-8859-1, windows-1250
    Arabic | ar | iso-8859-6, windows-1256
    Basque | eu | iso-8859-1, windows-1252
    Bulgarian | bg | iso-8859-5, windows-1251
    Belorussian | be | iso-8859-5, windows-1251
    Catalan | ca | iso-8859-15, windows-1252
    Croatian | hr | iso-8859-2, windows-1250
    Czech | cs | iso-8859-2, windows-1250
    Danish | da | iso-8859-1, windows-1252
    Dutch | nl | iso-8859-1, windows-1252
    Esperanto | eo | iso-8859-3
    Estonian | et | iso-8859-15, windows-1257
    Faroese | fo | iso-8859-1, windows-1252
    Finnish | fi | iso-8859-1, windows-1252
    French | fr | iso-8859-1, windows-1252
    Galician | gl | iso-8859-1, windows-1252
    German | de | iso-8859-1, windows-1252
    Greek | el | iso-8859-7
    Hebrew | iw | iso-8859-8
    Hungarian | hu | iso-8859-2, windows-1250
    Icelandic | is | iso-8859-1, windows-1252
    Irish | ga | iso-8859-1, windows-1252
    Italian | it | iso-8859-1, windows-1252
    Japanese | ja | shift_jis, iso-2022-jp, euc-jp
    Korean | ko | euc-kr
    Latvian | lv | iso-8859-13, windows-1257
    Lithuanian | lt | iso-8859-13, windows-1257
    Macedonian | mk | iso-8859-5, windows-1251
    Maltese | mt | iso-8859-3
    Norwegian | no | iso-8859-1, windows-1252
    Polish | pl | iso-8859-2, windows-1250
    Portuguese | pt | iso-8859-1, windows-1252
    Portuguese (бразильский) | br | iso-8859-1, windows-1252
    Romanian | ro | iso-8859-2, windows-1250
    Scottish | gd | iso-8859-1, windows-1252
    Serbian cyrillic | sr | iso-8859-5, windows-1251
    Serbian latin | sr | iso-8859-2, windows-1250
    Slovak | sk | iso-8859-2, windows-1250
    Slovenian | sl | iso-8859-2, windows-1250
    Spanish | la | iso-8859-1, windows-1252
    Swedish | sv | iso-8859-1, windows-1252
    Turkish | tr | iso-8859-9, windows-1254
    Ukrainian | ua | windows-1251, koi8-u

  2. После сохранения запись нового языка будет добавлена в общий список на странице Языки интерфейса .
  3. Также в кнопке для переключения языков на административной панели появится выбор добавленного языка:

  4. Далее выполните загрузку языковых файлов для созданного языка.

Список языков интерфейса, доступных для штатной установки в продуктах «1С-Битрикс: Управление сайтом» и коробочной версии «Битрикс24»:

  • украинский
  • испанский (Латинская Америка)
  • португальский (Бразилия)
  • французский (Канада)
  • польский

Документация по теме

  • Языки интерфейса


Региональные настройки
60 / 278

У каждой страны свои предпочтения

Региональная настройка - набор параметров, которые имеют разные значения в зависимости от культурных особенностей той или иной местности. Например: формат даты и времени, формат имени, первый день недели и другие.

Создание региональных настроек выполняется на странице Региональные настройки (Настройки > Настройки продукта > Языковые параметры > Региональные настройки).

При добавлении/редактировании региональных настроек видим две закладки:

  1. Параметры - здесь задаем основные настройки

    2. Нажмите на рисунок, чтобы увеличить

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

Значения полей описаны в документации . После создания региональной настройки её используют при создании языка интерфейса и при создании сайта .

Информация о форматах даты и таблиц кодов, используемых для представления символов языка в публичном разделе сайта, приводится в документации продукта. В полях Формат даты и Формат даты и времени укажите системе, как отображать эти параметры.

Внимание! Установка Формата даты и Формата даты и времени должна соответствовать параметрам даты и времени, используемым в настройке компонентов и при кастомизации. При несовпадении форматов данные будут отображаться с ошибками.

Кодировка языка также определяет кодировку вводимого контента (содержимого) модулей. Например, для русского языка используется кодировка Windows-1251 .

Примечание: Если в системе используется кодировка UTF-8, то используемые в системе языки также представляются в кодировке UTF-8.


Загрузка языковых файлов
61 / 278

Многоязычный интерфейс

Многоязычный интерфейс административного раздела реализуется за счет использования языковых файлов. Загрузка и обновление языковых файлов для новых и/или уже используемых в системе языков выполняется через Систему обновлений (Marketplace > Обновления платформы):

При переходе на закладку Список обновлений будет отображено:

  • список обновлений языковых файлов для уже используемых языков (секция Рекомендуемые обновления таблицы);
  • список языковых файлов для неустановленных в системе языков (секция Опциональные обновления таблицы). Данные языковые файлы также могут быть загружены и сохранены в системе. При создании учетных записей для соответствующих языков эти файлы будут установлены автоматически.

Для выполнения загрузки следует отметить требуемые языковые файлы с помощью флажков и нажать кнопку Установить обновления.

Пример загрузки языковых файлов

Рассмотрим загрузку языковых файлов для, например, испанского языка. Для этого:

  1. Создайте в системе испанский язык.
  2. Перейдите на страницу Система обновлений (Marketplace > Обновления платформы).
  3. На закладке Список обновлений открывшейся странице отметьте языковые файлы для испанского языка, которые будут загружены в систему:

    Нажмите на рисунок, чтобы увеличить

  4. Для загрузки выбранных файлов служит кнопка Установить обновления.


Управление языковыми сообщениями
62 / 278

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

Модуль Перевод предоставляет удобный интерфейс для поиска и перевода языковых сообщений.


Mодуль Перевод
63 / 278

Правим файлы для
многоязычного интерфейса

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

Перевод языковых файлов возможен:

  • вручную, путем редактирования соответствующих файлов;
  • с помощью модуля Перевод.

Модуль Перевод предоставляет удобный интерфейс для поиска и перевода языковых сообщений и позволяет:

  • просмотреть распределение языковых фраз по файлам системы;
  • определить количество непереведенных фраз для каждого файла;
  • перейти к переводу необходимых текстовых сообщений;

Примечание: с версии 19.0.0 модуля translate доступен функционал:
  • Подсчёт недостающих и лишних фраз и языковых файлов;
  • Поиск фраз по уже существующим переводам;
  • Экспорт в CSV как полного списка фраз, так и результата поиска.

Настройки модуля

Настройки модуля выполняются на странице Настройки > Настройки продукта > Настройки модулей > Перевод :

Нажмите на рисунок, чтобы увеличить

Описание всех настроек приводится в документации.

Удаление модуля

В случае необходимости удаления модуля это можно сделать на странице Настройки > Настройки продукта > Модули. При этом можно сохранить данные модуля (например, настройки, индекс, примеры фраз с полным переводом) в таблицах базы данных:

Документация по теме

  • Настройки модуля Перевод;
  • Языковые файлы в курсе Разработчик Bitrix Framework.


Поиск языковых файлов
64 / 278

Индексация

Все языковые сообщения распределены по разным файлам. Чтобы поиск этих сообщений работал корректно, необходимо выполнить индексацию фраз. Кроме того, индексация позволяет подсчитать число фраз без перевода, найти лишние, найти примеры фраз с полным переводом или с неправильным переводом.

Индексация выполняется по кнопке Индексировать:

Выполнение этой операции может занять продолжительное время. Чтобы сократить это время, можно выбрать только нужные языки .

Как найти языковые файлы

Для просмотра распределения языковых сообщений по файлам перейдите на страницу Перевод языковых файлов (Настройки > Локализация > Просмотр файлов):

Нажмите на рисунок, чтобы увеличить

Для поиска конкретных фраз или каталогов используйте фильтр + поиск .

А с помощью кнопки со списком действий укажите режим отображения: показывать общее количество фраз/языковых файлов или только без перевода.

Цифры синего и красного цвета показывают разницу в количестве языковых фраз от текущего языка интерфейса:

  • красный цвет - фраз перевода меньше, чем на текущем языке;
  • синий цвет - фраз перевода больше , чем на текущем языке.

Поиск файлов для перевода
на конкретной странице

Для поиска файлов перевода на конкретной странице воспользуйтесь удобным инструментом, который позволяет перейти к форме выполнения перевода языковых сообщений непосредственно со страницы, на которой эти сообщения используются (как в публичной, так и административной части сайта).

Для этого требуется включить в настройках модуля Перевод функцию Добавить на панель инструментов кнопку "Выводить языковые файлы". Тогда на панели инструментов станет доступна кнопка Перевод .

Второй способ включения
Второй вариант - добавить в адресную строку браузера параметр show_lang_files=Y. Результат аналогичен нажатию кнопки Выводить языковые файлы, т.е. файлы отобразятся на всех страницах.

Для выключения функции измените параметр в адресной строке на show_lang_files=N.

При включенном выводе языковых файлов в низу страниц Вы увидите список в виде ссылок. При нажатии на ссылку открывается страница редактирования языковых сообщений в выбранном файле.

Нажмите на рисунок, чтобы увеличить

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

Пример поиска фраз по совпадению

Например: найдем языковое сообщение Ваша корзина пуста, используемое на странице просмотра корзины пользователем. Для этого введем в поле для поиска Корзина и нажмем кнопку OK. В результате получим список файлов, содержащих эту фразу. Ссылка с текстом фразы позволяет перейти непосредственно к редактированию текста сообщения.

Нажмите на рисунок, чтобы увеличить

Документация по теме

  • Просмотр файлов;
  • Языковые файлы в курсе Разработчик Bitrix Framework.


Перевод фраз
65 / 278

Перевод фразы

Откройте файл для редактирования языковых фраз одним из следующих способов:

  • Откройте файл по его полному пути: через поиск или перейдя по папкам каталога;
  • В общем списке файлов выберите действие Показать ссылки на файлы без переводов при помощи кнопки выбора действий. Тогда в списке отобразятся ссылки на файлы , по которым доступен переход.
  • Из списка языковых файлов на странице .

В файле отображаются языковые сообщения . Найдите фразу и введите перевод сообщения для нужного языка:

Удаление фраз

Для удаления сообщений доступны варианты:

Нажмите на рисунок, чтобы увеличить

  • Удалить - отметьте вручную, какие фразы следует удалить;
  • Удалить все сообщения - отмечает все языковые фразы для удаления;
  • Удалить сообщения, перевод которых отсутствует для текущего языка - будут отмечены только те фразы, у которых отсутствует перевод для текущего языка.

Отмеченные фразы удалятся после нажатия кнопки Сохранить.

Документация по теме

  • Перевод сообщений;
  • Языковые файлы в курсе Разработчик Bitrix Framework.


Импорт и экспорт
66 / 278

Импорт и экспорт языковых файлов
Частый случай - необходимость перевода большого количества фраз на какой-либо язык. Модуль Перевод позволяет легко выгружать и загружать языковые файлы в формате CSV.
Выполняйте выгрузку как всех файлов, так и отдельных. А также всех фраз или только без перевода.

Экспорт

Экспорт файла выполняется на странице Перевод языковых файлов (Настройки > Локализация > Просмотр файлов) с помощью кнопки Выгрузить сообщения в CSV .

Откроется форма настройки:

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

Второй способ экспорта конкретных папок или файлов - из списка. Отметьте их в списке и на панели действий выберите действие Экспортировать выделенные .

Функция экспорта языковых сообщений также доступна в форме просмотра конкретного файла.

Примечание: с версии 19.0.0 модуля translate доступна возможность экспорта в CSV как полного списка фраз, так и результата поиска .

Импорт

В экспортированный файл CSV внесите необходимые переводы для языковых фраз. После переходите к импорту нажатием кнопки Импортировать сообщения из CSV на странице просмотра файлов.

В открывшейся форме выберите файл для загрузки, кодировку и каким образом добавлять фразы.

По окончании импорта, в языковых файлах отобразятся изменения в соответствии с содержимым файла и настройками импорта.

Полная локализация

Сбор всех языковых файлов локализации выполняется на странице Выгрузка и загрузка (Настройки > Локализация > Выгрузка и загрузка):

  1. На вкладке Сбор переводов выполняется экспорт для выбранного языка. Рекомендуется выполнять выгрузку в формате архива .tar.gz;
  2. На вкладке Загрузка переводов выполните загрузку файла локализации . Предварительно создайте язык , для которого хотите загрузить локализацию, если его нет в списке.

Примечание: Подробнее о реализации механизма локализации, загрузке и выгрузке файлов локализации см. курс Разработчик Bitrix Framework .

Документация по теме

  • Документация:
    • Просмотр файлов;
    • Перевод сообщений;
    • Выгрузка и загрузка;
  • Загрузка и выгрузка локализации в курсе Разработчик Bitrix Framework.


Настройка вида страницы ошибки 404
67 / 278

Если страницы не существует

При запросе пользователем страницы, отсутствующей на сервере, последний автоматически генерирует страницу с надписью, подобной этой:

Нажмите на рисунок, чтобы увеличить

Причин появления такой страницы может быть несколько:

  • некорректная ссылка на сайте;
  • неправильно введенный пользователем адрес;
  • документ, на который ведет ссылка, был удален.

Можно сделать так, чтобы в таких случаях пользователь видел не техническую страницу, а заранее вами заготовленную. Для этого в корневом разделе сайта (Контент > Структура сайта > Файлы и папки) найдите файл 404.php . В меню действий файла выберите Редактировать как php.

Содержимое файла 404.php
В штатной установке 1С-Битрикс: Управление сайтом файл 404.php содержит следующий код:

<?
// подключение файла обработки адресов urlrewrite.php
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');

// установка HTTP статуса 404
CHTTP::SetStatus("404 Not Found");
@define("ERROR_404","Y");
// скрывает боковую панель на странице
define("HIDE_SIDEBAR", true);

// подключение header.php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

// установка заголовка страницы
$APPLICATION->SetTitle("Страница не найдена");?>

<! -- начало содержимого страницы 404.php -->
    <div class="bx-404-container">
        <div class="bx-404-block"><img src="<?=SITE_DIR?>images/404.png" alt=""></div>
        <div class="bx-404-text-block">Неправильно набран адрес, <br>или такой страницы на сайте больше не существует.</div>
        <div class="">Вернитесь на <a href="<?=SITE_DIR?>">главную</a> или воспользуйтесь картой сайта.</div>
    </div>
    <div class="map-columns row">
        <div class="col-sm-10 col-sm-offset-1">
            <div class="bx-maps-title">Карта сайта:</div>
        </div>
    </div>

    <div class="col-sm-offset-2 col-sm-4">
        <div class="bx-map-title"><i class="fa fa-leanpub"></i> Каталог</div>

    </div>

    <div class="col-sm-offset-1 col-sm-4">
        <div class="bx-map-title"><i class="fa fa-info-circle"></i> О магазине</div>
        // подключение компонента Карта сайта
        <?
        $APPLICATION->IncludeComponent(
            "bitrix:main.map",
            ".default",
            array(
                "CACHE_TYPE" => "A",
                "CACHE_TIME" => "36000000",
                "SET_TITLE" => "N",
                "LEVEL" => "3",
                "COL_NUM" => "2",
                "SHOW_DESCRIPTION" => "Y",
                "COMPONENT_TEMPLATE" => ".default"
            ),
            false
        );?>
    </div>
<! -- окончание содержимого страницы 404.php -->

<! --  подключение файла footer.php -->
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Внесите необходимые изменения в его содержимое и сохраните их. После этого при возникновении ошибки 404 отобразится созданная вами страница (в примере ниже удалён компонент Карта сайта, добавлен текст и настроен размер и цвет шрифта):

Частые вопросы
При настройке отображения 404 страницы возникают следующие вопросы:
  1. Вопрос: На сайте создан инфоблок и информация в публичном разделе выводится с помощью компонентов. Настроен ЧПУ.
    Если раздел или элемент удалены, то вместо 404 ошибки на странице выведено сообщение Раздел не найден или Элемент не найден. Как сделать вывод 404 ошибки?

    Решение: в настройках компонента в разделе Настройки 404 ошибки отметить опции:
    • Устанавливать статус 404;
    • Показ специальной страницы .

    В результате, если при обращении к странице система не найдет элемент или раздел инфоблока, то при отмеченных опциях, вместо HTTP статуса 200, веб-сервер сообщит HTTP статус 404 и покажет специальную страницу 404.php.

  2. Вопрос: Сайт работает на сервере nginx и переадресация на 404.php не работает.

    Если используется сервер nginx, то в конфигурации сервера пропишите строку error_page 404 /404.php;.


Работа с Инструментами
68 / 278
Чтобы вы могли проверить ваш сайт на соответствие техническим требованиям «1С-Битрикс: Управление сайтом» в административном меню имеется набор специальных инструментов. Они служат для обнаружения проблем в работе сайта и помогают избежать появления ошибок в дальнейшем.


Раздел Инструменты
69 / 278

Чтобы вы могли проверить ваш сайт на соответствие техническим требованиям «1С-Битрикс: Управление сайтом» в административном меню имеется набор специальных инструментов. Они служат для обнаружения проблем в работе сайта и помогают избежать появления ошибок в дальнейшем.

Средства для выполнения PHP-кода, SQL запросов к базе данных, оптимизации БД и т.п. также расположены в разделе Настройки > Инструменты.

В этой главе содержится описание возможностей данных инструментов и способов их использования.

Документация по теме:

  • Инструменты (документация)


Проверка системы
70 / 278
Форма Проверка системы (Настройки > Инструменты > Проверка системы) предназначена для всесторонней проверки соответствия параметров системы, на которой осуществляется функционирование проекта, минимальным и рекомендуемым техническим требованиям продукта.


Проверка системы
71 / 278

Форма Проверка системы

Форма Проверка системы (Настройки > Инструменты > Проверка системы) предназначена для всесторонней проверки соответствия параметров системы, на которой осуществляется функционирование проекта, минимальным и рекомендуемым техническим требованиям продукта.

Примечание:
  1. Не осуществляется проверка структуры базы для Oracle и MS SQL.
  2. Проверка не осуществляется в модулях, в которых присутствует точка в имени: в модулях Marketplace.
  3. Тест ничего не знает об архитектуре сети и он пытается протестировать систему на основе той информации, что есть. Соответственно, при проверке на локальной установке могут возникать ошибки, связанные с необходимостью внешнего сканирования, например, ошибка сокетов.

Закладка Тестирование конфигурации

Здесь проводится комплексное тестирование конфигурации сервера. В том числе проверяются параметры, некритичные для нормального функционирования, но которые желательно установить в рекомендуемые значения.

Каждый тест сопровождается подробной информацией, которую можно прочитать по кнопке [image] в строке теста. Откроется окно с подробными комментариями .

Закладка Проверка доступа

Здесь выполняется проверка доступности дисков физической системы не только на чтение, но и на запись. Это необходимо для управления структурой сайта, загрузки файлов, а также для работы системы обновлений, которая обновляет ядро сайта до последней версии. Проверку можно осуществлять по трем критериям:

  • Полная проверка – анализируются на доступ все файлы системы.
  • Проверка папки для загрузки файлов – проверяется доступность на чтение и на запись папки для загрузки файлов.
  • Проверка ядра – анализу на доступ подвергаются системные файлы.

Результатом проверки может быть либо системное сообщение об успешном окончании, либо отображение файлов, недоступных на чтение или на запись.

Закладка Техподдержка

С помощью этой мини-формы можно быстро и оперативно связаться со службой технической поддержки компании "1С-Битрикс". Для этого нужно заполнить требуемые поля формы , подробно описав суть проблемы.

Многие проблемы можно решить быстрее, если к письму будет присоединена информация о системе, поэтому настоятельно рекомендуется провести тесты на закладке Тестирование конфигурации и оставлять опцию Отправить журнал тестирования конфигурации включенной.

Другие возможности проверки системы

  • Проверка сайта без авторизации

    • Инструмент представляет возможность протестировать конфигурацию, даже если не работает авторизация или сайт не открывается из за нарушения сжатия (на экране отображаются крякозябры). Для этого достаточно создать пустой файл site_checker_debug в папке /bitrix. После этого откройте страницу http://you_site.ru/bitrix/admin/site_checker.php

    Внимание! После решения проблемы обязательно удалите файл site_checker_debug и убедитесь, что проверка сайта без авторизации недоступна. Если открыть проверку сайта с авторизацией - файл site_checker_debug удаляется автоматически.
  • Исправление ошибок базы данных

    • Выполняется, если при тестировании конфигурации в структуре базы данных будут найдены ошибки:

    За первоисточник берётся кодировка соединения с базой. В большинстве случаев она правильная, т.к. иначе вся информация на сайте просто будет нечитаема.

    Кодировка базы - это важный параметр, но не влияющий непосредственно на отображение данных. Новые таблицы (после обновления или переустановки модулей) будут создаваться в этой кодировке. Т.е. проблемы появляются в будущем.

    Система позволяет автоматически исправить неправильные сравнения базы данных, таблиц и полей. Смена кодировки не производится, так как это меняет сами данные и в случае сбоя может привести к их потере. Несмотря на это, перед началом исправления настоятельно рекомендуется сделать полную резервную копию базы данных.


Проверка КП
72 / 278

В рамках страницы Проверка системы для Корпоративного портала есть отдельный инструмент: Работа портала. Страница предназначена не столько для админов, сколько для руководителей организаций, которые в любой момент могут проверить как работает корпоративный портал и принять административные меры для исправления ошибок.

Этот инструмент проверяет работу модулей, ответственных за бизнес-функции корпоративного портала. В системе реализована ежесуточная проверка работы этих модулей. Если такая проверка выявила какие-то проблемы, то для сотрудников имеющих администраторский доступ будет появляться такое уведомление:

При нажатии на Проверить и исправить пользователь перейдёт на страницу Проверка системы и автоматически запустится тест проверки. По результатам проверки будет выведен реестр результатов:

При клике указателем мыши на знак вопроса в строке ошибки выводится подробное описание ошибки:

Информация выводится в терминах, достаточных для понимания руководителю без технического образования.


Монитор качества
73 / 278

Проверка сайта перед сдачей

Страница Монитор качества предназначена для проверки качества выполненного проекта перед сдачей его заказчику.На ней содержится встроенный набор автоматизированных и ручных тестов для проверки качества интеграции дизайна и разработки, внешнего программного окружения, безопасности, производительности, настроек хостинга, целостности ядра системы и другие.Благодаря контролю качества проекта веб-разработчик получает возможность провести доскональную проверку сайта перед сдачей, а клиент – уверенность в качестве сборки проекта.

Нажмите на рисунок, чтобы увеличить

Контроль качества проводится перед запуском сайта и выполняется разработчиком. Поэтому эта процедура подробно описана в курсе "Разработчик Bitrix Framework" в главе Монитор качества .

Документация по теме:

  • Контроль качества внедрений
  • Монитор качества


SQL запрос и Командная PHP строка
74 / 278

SQL запрос

Форма SQL запрос (Настройки > Инструменты > SQL запрос) предназначена для выполнения SQL запросов к базе данных. Возможно выполнение любых запросов на языке SQL.

Важно! Система не устанавливает никаких ограничений на SQL запросы, поэтому будьте крайне внимательны при выполнении запросов типа UPDATE, DELETE, DROP и т.п.

Командная PHP-строка

Форма Командная PHP-строка (Настройки > Инструменты > Командная PHP-строка) предназначена для исполнения некоторого кода, вызывающего функции API Битрикса без создания новых страниц на сайте. Доступно несколько закладок для выполнения разного кода одновременно.


Настройки PHP
75 / 278

Проверяем настройки PHP

Страница Настройки PHP (Настройки > Инструменты > Диагностика > Настройки PHP) служит для отображения информации о текущих настройках PHP. Для получения информации используется функция phpinfo().


Проверка и оптимизация БД
76 / 278

Проверка БД

На странице Проверка / восстановление таблиц (Настройки > Инструменты > Диагностика > Проверка БД) вы можете проверить и восстановить таблицы базы данных. Использование скрипта проверки и восстановления позволит оперативно восстановить работу сайта.

Внимание! Восстановление таблиц работает только для базы данных MySQL и таблиц типа MyISAM.

Внимание! Не открывайте эту страницу одновременно в нескольких копиях - это может повредить вашу базу данных. Операция может занять длительное время, если размер базы данных велик!

Отчет о проверке базы данных

Примечание: Если повреждены таблицы статистики и нет возможности перейти в административный раздел, то сбор статистики может быть временно отключен с помощью параметра ?no_keep_statistic_LICENSE-KEY=Y. В параметре указывается лицензионный ключ сайта.

Существует возможность использования скрипта проверки и восстановления базы данных без перехода в административный раздел.

Для этого при обращении к странице восстановления необходимо указать два параметра: имя (login) и пароль (password) на доступ к базе данных. Например: http://www.mysite.ru/bitrix/admin/repair_db.php?login=DB_Login&amp; password=DB_Password.

По умолчанию значения данных параметров хранятся в файле /bitrix/php_interface/dbconn.php.

Иногда возникает ситуация, когда сайт перестает отвечать и посетителям отображается пустая страница. В этом случае откройте файл /bitrix/php_interface/dbconn.php, который содержит параметры соединения с базой данных, и установите значение параметра $DBDebug = true;

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

Оптимизация

На странице Оптимизация БД (Настройки > Инструменты > Диагностика > Оптимизация БД) вы можете оптимизировать и проанализировать таблицы базы данных. Это повысит эффективность обработки запросов сервером базы данных.

Внимание! Не открывайте эту страницу одновременно в нескольких копиях - это может повредить вашу базу данных. Операция может занять длительное время. Желательно выполнять ее при наименьшей нагрузке на сайт.

После нажатия кнопки Оптимизировать процесс запустится, за его ходом можно будет наблюдать по индикатору:

По завершении оптимизации на странице появится сообщение об этом .


Журнал событий
77 / 278
Просматривайте события на сайте и настраивайте оповещения о событиях с помощью инструмента Журнал событий.


Журнал событий
78 / 278

Отслеживаем, что происходит на сайте

На странице Журнал событий (Настройки > Инструменты > Журнал событий) вы можете просмотреть события сайта.

Нажмите на рисунок, чтобы увеличить

Примечание: Детальное описание значений полей журнала событий смотрите на странице пользовательской документации.

Вы можете самостоятельно определить события, которые нужно записывать в журнал. Это можно сделать:

  • в настройках главного модуля на закладке Журнал событий (Настройки > Настройки продукта > Настройки модулей > Главный модуль),

    Примечание: Обратите внимание на поле Сколько дней хранить события . По умолчанию установлен срок хранения 7 дней. По истечении этого срока события из журнала будут удалены.

  • в настройках модуля Инфоблоки (Настройки > Настройки продукта > Настройки модулей > Информационные блоки),
  • в настройках модуля Форум (Настройки > Настройки продукта > Настройки модулей > Форум),
  • в настройках модуля Облачные хранилища (Настройки > Настройки продукта > Настройки модулей > Облачные хранилища),
  • в настройках модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой),
  • в настройках Информационного блока (Контент > Инфоблоки > Типы инфоблоков > конкретный инфоблок),

Примечание: Ряд модулей, например Контроллер, Проактивная защита, Техподдержка и другие ведут собственные журналы.

Ссылка [стоп-лист] в таблице Журнала событий ведет на страницу Аналитика > Посетители > Стоп-лист . Там вы сможете добавить в список тех пользователей, которым запрещено выполнять те или иные действия на сайте. Например, создавать или изменять страницы сайта или выполнять SQL-запросы.

Также доступна возможность настройки оповещений о наступлении событий на сайте. О работе с оповещениями описано в следующем уроке.

Документация по теме:

  • Как добавить свой элемент в журнал событий (блог)


Оповещения журнала событий
79 / 278

Следим за событиями на сайте

Не упустите важные события на Вашем сайте. Получайте сообщения на email или мобильный телефон, настроив оповещения журнала событий.

Примечание: Функционал оповещений журнала событий доступен с версии 20.0.600 Главного модуля (main).

Настройки оповещений

Для открытия списка оповещений перейдите на страницу Журнал событий (Настройки > Инструменты > Журнал событий) и нажмите на кнопку Оповещения журнала событий .

Нажмите на рисунок, чтобы увеличить

Откроется список созданных оповещений. Для создания оповещения воспользуйтесь кнопкой Добавить оповещение.

В открывшейся форме имеются две вкладки:

  1. Условия, при которых отправлять оповещения :
    • Укажите название оповещения и выберите активность;
    • В разделе На что реагировать обязательно выберите из выпадающего списка тип события.
      При необходимости укажите более узкие условия срабатывания оповещения (объект, пользователь, IP-адрес, браузер, страница).
    • В разделе Условия установите интервал проверки наличия событий в минутах и количество записей в журнале событий для срабатывания оповещения.
  2. Действия для оповещения : укажите каким способом и куда отправлять оповещения.

Примечание: Детальное описание значений полей смотрите в пользовательской документации:
  • Оповещения журнала событий;
  • Форма создания и редактирования оповещения.

Примечание: Для отправки оповещений по СМС настройте службы отправки СМС .

Шаблоны оповещений

Для каждого способа отправки оповещения есть свой предустановленный шаблон:

  • Почтовый шаблон (Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны): [EVENT_LOG_NOTIFICATION] Оповещение журнала событий;
  • Шаблон СМС-сообщений (Настройки > Настройки продукта > Почтовые и СМС события > Шаблоны СМС): Оповещение журнала событий [SMS_EVENT_LOG_NOTIFICATION].

При необходимости внесите свои изменения в шаблоны.

Документация по теме

  • Журнал событий;
  • Служба сообщений (курс Администратор. Модули);
  • Работа с почтовыми шаблонами (курс Администратор. Модули).


Пользовательские поля
80 / 278

Пользовательские поля, их создание и настройка. Что это такое и как использовать.


Что такое Пользовательские поля
81 / 278

Если в системе нет поля для нужных данных

Пользовательское поле - функционал системы, позволяющий добавлять к объектам системы поля, не предусмотренные штатным функционалом.

Необходимо отличать Пользовательские поля в модулях системы и свойства, используемые в рамках инфоблоков , хотя в формах системы (форма создания/редактирования пользователя, форме создания/редактирования раздела инфоблока и другие) используется термин пользовательские свойства.

Пользовательские поля это сущность:

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

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

Применение пользовательских полей в системе к тем или иным модулям задаётся с помощью объектов, которые необходимо указать при создании поля:

Штатные объекты пользовательских полей
Модуль | Объект | Описание
Главный модуль | USER | для пользователя
Блоги | BLOG_BLOG | для блога
 | BLOG_POST | для сообщения в блоге
 | BLOG_COMMENT | для комментария сообщения
Задачи | TASKS_TASK | для задач
Информационные блоки | IBLOCK_N_SECTION | для секций инфоблока с ID = N
 | IBLOCK_N | Для инфоблока с ID = N
Календарь | CALENDAR_EVENT | для событий календаря
Обучение | LEARN_ATTEMPT | для попыток теста
Социальная сеть | SONET_GROUP | для групп соцсети
Библиотека документов | WEBDAV | для библиотек документов
Форум | FORUM_MESSAGE | для сообщений форума
Highload-блоки | HLBLOCK_N | для highload-блока с ID=N

Не все модули имеют объекты для пользовательских полей по умолчанию. Разработчик сайта может создать собственные объекты .

Примечание: Модули, использующие информационные блоки, могут работать с объектами пользовательских полей модуля Информационные блоки.

Документация по теме:

  • Создание и редактирование пользовательского поля


Создание Пользовательских полей
82 / 278

Новые поля

Создавать Пользовательские поля можно через интерфейс и с помощью АПИ . Создание пользовательских полей из Административной части выполняется на странице Настройки > Настройки продукта > Пользовательские поля либо, что предпочтительнее, с использованием ссылки Добавить пользовательское свойство в тех формах системы, в которых предусмотрено штатное добавление пользовательских свойств:

  • форма добавления/редактирования пользователя;
  • форма добавления/редактирования раздела информационного блока;
  • форма добавления/редактирования блога

Работа со списком и формой создания не должна вызвать затруднений, но есть несколько нюансов.

Установка флажка в поле Не разрешать редактирование пользователем исключит возможность редактирования свойства не только пользователем, но и администратором через административный интерфейс. Значение таких свойств нужно устанавливать используя API. Это нужно для служебных полей, которые не должны использовать пользователи.

Пользовательские поля могут создаваться с разными типами данных. Как правило, этих типов вполне хватает для работы. Если есть необходимость создания собственных типов данных, то это можно сделать самостоятельно. Пример добавления типов данных "Связь с элементом" и "Связь с элементом в виде списка" (блог).

По умолчанию в системе предусмотрены следующие типы пользовательских полей:

  • Число;
  • Да/Нет;
  • Видео;
  • Шаблон;
  • Список;
  • Строка;
  • Дата;
  • Дата со временем;
  • Привязка к элементам highload-блоков;
  • Привязка к разделам инф. блоков;
  • Привязка к элементам инф. блоков;
  • Привязка к элементам CRM;
  • Привязка к справочникам CRM;
  • Файл;
  • Целое число;
  • Документ из библиотеки документов;
  • Привязка к сотруднику;
  • Документ истории из библиотеки документов;
  • Опрос.

Документация по теме:

  • Создание и редактирование пользовательского поля


Пример добавления поля
83 / 278

Создание поля Скайп. Видеоурок

Опишем пример создания поля Скайп в форме добавления нового пользователя. Это поле будет относиться к сущности USER Главного модуля.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Как добавить поле?

На закладке Доп. поля формы добавления нового пользователя (Настройки > Пользователи > Список пользователей > Добавить пользователя) кликните по единственной имеющейся там ссылке и откроется форма добавления пользовательского свойства, сразу привязанного к нужной нам форме (поле Объект уже с заданным значением):

Заполните минимально необходимые поля :

  • Тип данных - для ввода логина скайпа удобно значение Строка.
  • Код поля - введите UF_SKYPE (код обязательно должен начинаться с UF_).
  • Для возможности поиска по вашему пользовательскому полю отметьте галочкой Значения поля участвуют в поиске.
  • В языковых настройках укажите как будет называться ваше поле: для русского языка - Скайп, для английского - Skype.

Сохраните внесенные изменения.

Затем снова перейдите к форме добавления нового пользователя и нажмите кнопку Настроить на контекстной панели. Появится окно настройки формы редактирования/добавления нового пользователя.

Настройте форму, перенеся созданное свойство из вкладки Доп. свойства на вкладку Личные данные, т.к. именно на нее необходимо добавить поле Скайп. После того, как поле будет перенесено в список выбранных полей, с помощью кнопок Выше и Ниже выберите его расположение среди других полей секции Телефоны .

Пометьте галочкой опцию Установить данные настройки по умолчанию для всех пользователей и нажмите Сохранить.

Теперь новое поле будет доступно для заполнения при добавлении новых пользователей и в формах настройки текущих:

Название нового поля выведено в виде гиперссылки, нажав на которую вы перейдете в форму редактирования данного поля.

Документация по теме

  • Создание и редактирование пользовательского поля


Система обработки адресов и ЧПУ
84 / 278

Обработка адресов (UrlRewrite) применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указанному адресу. О ЧПУ в "1С-Битрикс: Управление сайтом".


Человеко-понятные адреса
85 / 278

Правила обработки адресов

Правила обработки адресов настраиваются отдельно для каждого сайта и каждое правило должно содержать уникальное в рамках сайта условие выполнения. Например, можно задать такие настройки обработки адресов, что скрипт, лежащий в файле /fld/c.php и отвечающий по адресу:

/fld/c.php?id=15

будет отвечать также по адресу:

/catalog/15.php

Адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес физически существует, то будет вызван скрипт по этому адресу. Система обработки адресов запущена в этом случае не будет.

Человеко-понятные адреса

Этот же механизм переопределения адресов задействован и для поддержки ЧПУ (человеко-понятных URL). Эта функция встроена во все комплексные компоненты и некоторые простые. А также её можно использовать для переопределения любых URL, а не только связанных с компонентами.

При добавлении на страницу компонента с поддержкой ЧПУ (если файл сохраняется с помощью API) автоматически создается правило переопределения адреса. Если страница создается не с помощью API, а, например, записывается через FTP, то необходимо выполнить пересоздание правил .

Управление правилами преобразования адресов производится на странице: Настройки > Настройки продукта > Обработка адресов > Правила обработки. При необходимости можно создавать правила вручную в файле urlrewrite.php в корневой папке сайта.

Нажмите на рисунок, чтобы увеличить

Пример использования регулярного выражения
Что означают метасимволы (символы, обозначающие группы других символов) в шаблонах? Например, в выражении "#^/index/([0-9]+)/([0-9]+)/#":
  • # - превращает аргумент, которому он предшествует, в строку в кавычках
  • ^ - начало строки
  • [] - класс символов. То есть [0-9] - все символы от нуля до девятки
  • + - один или большее число раз
Таким образом, мы сформировали строку адреса, которая начинается с /index/, а дальше идет любое количество цифр/любое количество цифр.

Документация по теме

  • ЧПУ в компонентах
  • Вложенные ЧПУ
  • Обработка адресов
  • Один из способов включения подразделов инфоблоков в пути для ЧПУ (для версий ниже 12.5).
  • Другой способ включения подразделов инфоблоков в пути для ЧПУ (для версий ниже 12.5).


Особенности работы с правилами
86 / 278

Что нужно учитывать

Система допускает создание нескольких правил для одного файла. Лучше написать два-три понятных правила, чем объединить их через ИЛИ и сделать одно громоздкое правило "на все случаи жизни". Такое правило непонятно как потом менять.

Система сортирует все правила по условиям сначала по алфавиту и длине. Правило с более длинным подходящим условием (CONDITION) применяется первым, как более частное. А затем правила с короткими условиями, как более общие. Пример: правило для элемента ^/news/([0-9a-zA-Z_-]+)/([0-9]+)/.* будет применяться первым (как правило с более длинным условием) и, если условие не подходит, то применится правило для раздела с ^/news/([0-9a-zA-Z_-]+)/.*.

Примечание: Рекомендуется всегда добавлять .* в конец Условия если оно задано. Без "звёздочки" правило не будет работать при использовании параметров в URL. Например, при добавленном параметре ?clear_cache=Y.

Пишите правила единообразно, так как из двух правил для раздела и детального просмотра, имеющих условия ^/news/([0-9a-zA-Z_-]+)/.* и ^/news/([\w-]+)/([\d]+)/.* не понятно, какое из правил сработает первым, поскольку длина обоих правил 26 символов и оба начинаются с /news/.

Если правило для детального просмотра элемента написано ^/news/([\w-]+)/([\d]+)/.* то и правило для просмотра раздела нужно писать аналогично ^/news/([\w-]+)/.* чтобы правила не перемешивались при автоматической сортировке. Или, если писать для просмотра элемента ^/news/([0-9a-zA-Z_-]+)/([0-9]+)/.*, то тогда и для раздела использовать ^/news/([0-9a-zA-Z_-]+)/.*.

Внимание! Придерживаться единообразия при написании правил внутри раздела важнее, чем стараться сократить количество самих правил за счёт использования ИЛИ в условии и непредсказуемо удлиняя их, сбивая сортировку правил.

Сортировка правил по длине условий производится при изменении их через административную часть (Настройки > Настройки продукта > Обработка адресов > Правила обработки), в том числе и когда добавляется через визуальный редактор компонент с ЧПУ. А при обработке ЧПУ-запроса просто перебирается массив правил из /urlrewrite.php в той последовательности, в которой они там находятся. И поиск длится до первого совпадения. То есть, если вы вручную изменили массив ЧПУ-правил в /urlrewrite.php и разместили запись с условием #^/news/([0-9a-zA-Z_-]+)/.*# выше #^/news/([0-9a-zA-Z_-]+)/([0-9]+)/.*#, то до второго условия дело никогда не дойдет, не смотря на то, что оно длиннее.

Как лучше формировать ЧПУ элемента в каталоге - по ID или по символьному коду?
/catalog/poleznye_shtuki/121.html
или
/catalog/poleznye_shtuki/ochen-poleznaya-zelenaya-shtuka-s-plazmennym-nabaldashnikom-i-ruchkoi.html
Первый вариант понятнее, получение элемента по ID быстрее, чем по символьному коду, его удобнее диктовать и сложнее ошибиться. Второй вариант гораздо выгоднее с точки зрения SEO.

Если в адресах используются численные значения ID элемента (/main/news/12/), то возможна ситуация, когда численное значение будет иметь и символьный код раздела. В этом случае правило сработает не правильно. Для детальных страниц лучше использовать подобный принцип: /[секции]/элемент.php, тогда и проблем с ЧПУ не будет. Например, лучше использовать условие #^/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9]+)\.php.*#, чем условие #^/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9]+)/.*#

Кириллица в URL создаёт дополнительные проблемы: диапазон русских символов не является непрерывным. В этом случае используйте вместо логичного для латиницы условия ^/test/([0-9a-zA-Zа-яА-Я_-]+)/.*# такой вариант: #^/test/([0-9a-zA-Zа-пр-яА-ЯёЁ_-]+)/.*#.

Документация по теме:

  • ЧПУ в компонентах
  • Вложенные ЧПУ
  • Обработка адресов
  • Один из способов включения подразделов инфоблоков в пути для ЧПУ (для версий ниже 12.5).
  • Другой способ включения подразделов инфоблоков в пути для ЧПУ (для версий ниже 12.5).


Примеры правил
87 / 278

Рассмотрим частые примеры

Страница откликается на другой адрес

Нужно, чтобы страница вида:

/gospel/pericope/?ELEMENT_ID=545&SECTION_ID=208

откликалась на адрес вида:

/gospel/pericope/545/208/

Создайте правило с параметрами:

  • Условие: #^/gospel/pericope/([0-9]+)/([0-9]+)/#
  • Компонент:
  • Файл: /gospel/pericope/index.php
  • Правило: ELEMENT_ID=$1&SECTION_ID=$2

Ручная настройка ЧПУ, используя символьный код разделов инфоблока.

Как можно вручную настроить ЧПУ, используя символьный код разделов инфоблока.

Например, для ЧПУ-пути /some_sef_folder/section_code/, где section_code - символьный код секции. ЧПУ-правило будет:

   array(
      "CONDITION"   =>   "#^/some_sef_folder/([0-9a-zA-Z-]+)/.*#",
      "RULE"   =>   "SECTION_CODE=$1",
      "ID"   =>   "",
      "PATH"   =>   "/real_script_path/index.php",
   ),

В скрипте /real_script_path/index.php в настройках компонента параметру символьного кода секции нужно указывать $_REQUEST['SECTION_CODE']

Для ЧПУ-пути /some_sef_folder/section_code/element_id.php, где section_code - символьный код секции, а element_id - целочисленный код элемента. ЧПУ-правило будет:

   array(
      "CONDITION"   =>  "#^/some_sef_folder/([0-9a-zA-Z-]+)/([0-9]+)\.php.*#" ,
      "RULE"   =>  "SECTION_CODE=$1&ELEMENT_ID=$2" ,
      "ID"   =>   "",
      "PATH"   =>  "/real_script_path/index.php" ,
   ),

В скрипте /real_script_path/index.php компоненту нужно передавать $_REQUEST['SECTION_CODE'] и $_REQUEST['ELEMENT_ID'] соответственно.

some_sef_folder - ЧПУ-путь, может не существовать реально на сервере.
real_script_path - путь к реальному скрипту-обработичку на сайте, который будет генерировать результат.

Пример переадресации вида со /раздел/старое название/ на /новое_название/

Для случаев:

  1. Один из разделов каталога (site.ru/каталог/название_раздела1/) выводить по адресу site.ru/другое_название_раздела1/
  2. Одну из статей (site.ru/статьи/название_статьи1/) выводить по адресу site.ru/другое_название_статьи1/
  3. Один из подразделов (site/раздел/подраздел/) выводить по адресу site.ru/новое_название/
  4. Одну из статей (site.ru/раздел/статьи/название_статьи2/) выводить по адресу site.ru/другое_название_статьи2/

Подойдёт правило:

  • Условие: /другое_название_раздела1/
  • Компонент:
  • Файл: #^/каталог/название_раздела1/#
  • Правило:

Пример приведёт для первого случая, остальные варианты аналогичны.

Исключение одного пути из правила

Есть правило:

  • Условие: #^/([^/]*)-([^-]*)#
  • Компонент:
  • Файл: /catalog/index.php
  • Правило: PARENT_SECTION_CODE=$1&SECTION_CODE=$2&

Пути вида: http://site.com/код раздела_код подраздела не обрабатываются этим правилом.

Причина: знак минус в выражении [^-] воспринимается как служебный, обозначающий диапазон, а служебные символы нужно предварять знаком "\", т.е. писать вместо минуса "\-". Однако этого недостаточно если код подраздела состоит не только из символов, например: "1-xxxx", "2-xxxx".

Причина в первом квантификаторе в первых круглых скобках, действие которого нужно ограничить знаком "?". Конечное условие: #^/(R.*?)\-(.*)/#

Пример разделения правил

Два правила.

Правило:

  • Условие: #^/cat/([a-z0-9\_]+)/([a-z0-9\_]+)*#
  • Компонент:
  • Файл: /cat/test.php
  • Правило: SECTION_CODE=$1&ELEMENT_ID=$2

для site.ru/cat/razdel/element/ откроет тоже самое, что и для site.ru/cat/razdel/

Лучше сделать два правила. (Использование двух правил допускается системой).

Первое:

  • Условие: #^/cat/([a-z0-9\_]+)/(\d+)/\?(.*)?#
  • Компонент:
  • Файл: /cat/test.php
  • Правило: SECTION_CODE=$1&ELEMENT_ID=$2&$3

Второе:

  • Условие: #^/cat/([a-z0-9\_]+)/([a-zA-Z]{1}[a-zA-Z0-9]*)/\?(.*)?#
  • Компонент:
  • Файл: /cat/test.php
  • Правило: SECTION_CODE=$1&ELEMENT_CODE=$2&$3

Сокращение УРЛ

Надо сократить урл. Например, вместо http://epic.tm/catalog/men/ выводить http://epic.tm/men/.

  1. Создайте файл /catalog/list.php следующего вида:
    <?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Показ раздела");
?>

<pre><?print_r($_REQUEST);?></pre>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
  2. Добавьте правило в /urlrewrite.php:
       array(
      "CONDITION"   =>  "#^/([^\\/]+)/($|index\\.php|\\?.*)#" ,
      "RULE"   =>  "SECTION_CODE=$1" ,
      "ID"   =>   "",
      "PATH"   =>  "/catalog/list.php" ,
   ),
  3. Откройте в браузере страницу http://epic.tm/men/. Если у вас показывается страница /catalog/list.php, значит, всё сделано правильно. Разместите на этой странице вызов компонента bitrix:catalog.section и настройте компонент.
  4. Поправьте поле "URL страницы раздела" в настройках соответствующего инфоблока.

Настройка ЧПУ в простых компонентах

Как настроить ЧПУ если используется catalog:sections и element:detail вместо комплексного компонента. Ссылки на разделы каталога должны иметь вид /catalog/section-name/, а на товары /catalog/section-name/element-name/.

1) Создайте два правила:

  • Условие: #^/catalog/([\w,-]+)/([^/]*)#
  • Компонент:
  • Файл: /catalog/index.php (в этом файле у вас вызов компонента catalog.sections)
  • Правило: SECTION_CODE=$1
и
  • Условие: #^/catalog/([\w,-]+)/([\w,-]+)/([^/]*)#
  • Компонент:
  • Файл: /catalog/detail.php (в этом файле у вас вызов компонента element.detail)
  • Правило: SECTION_CODE=$1&ELEMENT_CODE=$2

2) В настройках инфоблока каталога укажите:
URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE#/
URL страницы детального просмотра: #SITE_DIR#/catalog/#SECTION_CODE#/#ELEMENT_CODE#/

3) В настройках компонентов укажите:
Код раздела: ={$_REQUEST["SECTION_CODE"]} (для компонента catalog.sections) Код раздела: ={$_REQUEST["ELEMENT_CODE"]} (для компонента element.detail)

Пример объединения правил

Обработка адресов поддерживает регулярные замены. Пример объединения трех правил (для трех языков) в одно:

  • Условие: #^/([de|ru|ua]+)/products/test/([0-9]+)(.*)#
  • Компонент:
  • Файл: /$1/products/test/index.php
  • Правило: SECTION_CODE=$2

Три примера что произойдёт при запросе несуществующей страницы

Если в системе обработки адресов зарегистрировано правило:

  • Условие: #^/gallery/#
  • Компонент:
  • Файл: /max/images/index.php
  • Правило:

и пользователем запрошена страница /gallery/38.php, которая физически не существует, то система обработки адресов подключит скрипт /max/images/index.php.

Если в системе обработки адресов зарегистрировано правило:

  • Условие: #^/index/([0-9]+)/([0-9]+)/#
  • Компонент:
  • Файл: /newforum/index.php
  • Правило: mode=read&CID=$1&GID=$2

и пользователем запрошена страница /index/5/48/, то будет подключен скрипт /newforum/index.php?mode=read&CID=5&GID=48.

Если в системе обработки адресов зарегистрировано правило:

  • Условие: #(.+?)\\.html(.*)#
  • Компонент:
  • Файл:
  • Правило: $1.php$2

и пользователем запрошена страница /about/company.html?show, то будет подключен скрипт /about/company.php?show.

Документация по теме:

  • Список правил обработки адресов
  • Создание и редактирование правила обработки адресов
  • Пересоздание правил обработки адресов


Проверка настроек
88 / 278

Как проверить работу ЧПУ. Видеоурок

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Порядок действий

  • Перейдите на страницу Настройки > Настройки продукта > Обработка адресов > Правила обработки. Выберите пункт Новая запись , нужный сайт и заполните форму следующим образом :

    Условие: #^/sef_test/#
Компонент: ничего не указываем
Файл: /index.php (нужно указать файл, который фактически будет работать)
Правило: ничего не указываем.
  • Перейдите по адресу в разделе /sef_test/.

    Например, http://localhost/sef_test/test.html.

    Если ЧПУ работает, то вы должны увидеть содержимое страницы, указанной в поле Файл в правиле переопределения.

Если правило должно работать, но не работает

  1. Проверьте правильность создания правила
  2. Проверьте, возможно у вас срабатывает условие, которое находится в urlrewrite.php выше.
  3. Убедитесь, что подключается именно указанный в правиле файл, а не какой-нибудь другой.
  4. Сразу после подключения header.php добавьте для проверки код:
    echo '<pre>'.print_r($_REQUEST, true).'</pre>';
    Заодно увидите, что у вас попадает в $_REQUEST.
  5. Если файл открывается правильный и в $_REQUEST порядок, тогда следует проверить параметры компонента и настройки инфоблока (доступ закрыт, деактивирован элемент, действительно нет элемента с данным ID и так далее).


Рейтинги
89 / 278

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


Что такое рейтинги
90 / 278

Кто авторитетнее на сайте

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

Авторитет – численный показатель признания пользователя сообществом, влияет на значимость голоса человека, когда он голосует за контент. Авторитет также служит основным механизмом регулирования сообщества через доступность тех или иных функций (в зависимости от авторитета можно настроить право публикации сообщений, комментировать, и так далее).

Рейтинг – численный показатель, отражающий полезную активность человека, ценность контента для сообщества.

Cхема работы системы рейтингов по умолчанию

Каждый новый пользователь имеет уже заранее указанный в настройках начальный авторитет , который можно при желании изменить .

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

Примечание: Для отдельных пользователей можно вручную указать иное, чем по умолчанию, начальное значение авторитета на закладке Рейтинг страницы настроек пользователя (Настройки > Пользователи > Список пользователей). Там же отображаются текущие значения параметров, связанные с рейтингом пользователя.

Нормированный вес голоса - это минимальный вес одного голоса в системе, в зависимости от размеров сообщества. Значение авторитета напрямую зависит от нормированного веса голоса.

Общее количество голосов пользователя рассчитывается по формуле: Авторитет / вес одного нормированного голоса.

Нормировка от размера сообщества позволяет утверждать, что если в сообществе в 500 человек у вас авторитет равен 100, и в сообществе на 500 000 человек у вас авторитет равен 100, это означает признание вас 10% сообщества.

Размер сообщества – это число пользователей, которые заходили на сайт не позднее 90 дней с момента расчета рейтинга и имеют право голосовать.

При голосовании (нажатии мне нравится) пользователь отдает за контент автора количество голосов, равное результату деления авторитета пользователя на значение нормированного голоса.

Пользователи не могут напрямую голосовать за авторитет. Это возможно лишь косвенно, согласно правилу обработки голосов Автоматическое голосование за авторитет пользователя (Сервисы > Рейтинги > Правила обработки). По этому правилу на основе суммы голосов, оставленных за контент пользователя, происходит изменение его авторитета.

Правило настроено так: один голос пользователя автоматически учитывается в авторитете автора контента, если в течение 90 дней за его контент проголосуют на 10 баллов в сумме. В секции Расчет баллов формы редактирования правила можно настроить, сколько балов будет учитываться для разных типов голосования за контент автора.

Примечание: Для рейтинга (не авторитета) можно произвести настройки (Сервисы > Рейтинги > Список рейтингов секция Критерии рейтингования) так, что пользователи могут голосовать как за контент, так и напрямую за сам рейтинг.

Таким образом, по умолчанию, авторитет пользователя строится на основе правила автоматического голосования. Рейтинг же учитывает голоса за контент, его тип и.т.д.

Документация по теме

  • Пользовательская документация по модулю "Рейтинги"
  • Саморегулируемое сообщество построенное на двухфакторном рейтинге (блог)
  • Рейтинги: создание собственного критерия рейтингования (блог)


Расчёт и особенности рейтингов
91 / 278

Расчет рейтингов

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

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

Внимание! После изменения общих настроек рейтингов потребуется пересчет всех рейтингов.

Особенности рейтингов

  • Для некоторых компонентов необходимо в параметрах включить поддержку рейтингов с помощью соответствующей опции, чтобы в публичной части сайта отображались кнопки оценки контента. Там же можно выбрать их оформление для конкретного компонента. Значение По умолчанию берется из настроек рейтингов.
  • Рейтинг контента влияет на поиск. Чем больше рейтинг - тем выше в поисковой выдаче будет расположен контент. Такой режим поведения включается на странице настроек модуля Поиск с помощью опции При ранжировании результатов учитывать рейтинг.

Различия системы рейтингов в продуктах «Битрикс24 в коробке» и «1С-Битрикс: Управление сайтом»

  • В корпоративном портале система авторитета строится на основе субординации. Так количество голосов, отдаваемое сотрудником при голосовании за контент, зависит от его положения в иерархии компании. Голос начальника будет состоять из суммы голосов подчиненных и его собственного. Расчет добавочных голосов за авторитет по структуре компании осуществляется с помощью соответствующего правила обработки (Сервисы > Рейтинги > Правила обработки).

    Поддержка субординации (для авторитета включена по умолчанию) настраивается на вкладке Интранет формы редактирования рейтинга (Сервисы > Рейтинги > Список рейтингов).

  • В подсказке с проголосовавшими сотрудниками за контент (при наведении курсора на символ ★) в корпоративном портале список сначала строится по субординации, а если авторитет одинаков (например, равноценные начальники или обычные сотрудники), то уже по принципу "чей контент больше нравится, тот и выше". В БУС же список строится только по принципу "чей контент больше нравится, тот и выше".
  • В мастере настройки корпоративного портала, например при установке, можно сразу включить рейтинги и настроить внешний вид публичных элементов оценки контента.


Примеры работы
92 / 278

Примеры из жизни
Пара примеров работы с рейтингами на основе модуля Форум

Настройка званий на форуме

Настроим систему рейтингов так, чтоб пользователь на форуме получал звание в зависимости от количества нормированных голосов у него.

  • Для начала необходимо отключить опцию Включить бонусную систему в настройках модуля Форум (Настройки > Настройки продукта > Настройки модулей > Форум), это позволит использовать на форуме Рейтинги вместо собственной системы подсчета баллов.

    Примечание: Для форумов используется только Авторитет.

  • На странице Звания (Сервисы > Форумы > Звания) необходимо создать звания , которые будут выдаваться пользователям, в зависимости от количества нормированных голосов у пользователя.

Перемещение пользователя в группу в зависимости от рейтингов на примере форума

  • Создадим 2 группы пользователей (Настройки > Пользователи > Список пользователей): Группа 1 и Группа 2.

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

  • Настроим доступ к желаемому форуму для созданных ранее групп на странице Список форумов (Сервисы > Форумы > Список форумов, закладка Доступ) следующим образом :

    • Группа 1: Ответ;
    • Группа 2: Новая тема.

  • Создадим новые правила обработки (Сервисы > Рейтинги > Правила обработки):

    • Добавление в Группу 1;
    • Удаление из Группы 1;
    • Добавление в Группу 2.

    В качестве Условия выберем Значение авторитета. В поле Кол-во нормированных голосов для разных правил укажем:

    • Добавление в Группу 1 - Больше или равно 0. Тогда все пользователи форума автоматически будут добавлены в эту группу для того, чтобы они смогли отвечать в чужих темах;
    • Удаление из Группы 1 - Больше или равно 10;
    • Добавление в Группу 2 - Больше или равно 10. Перевод пользователей в группу, чтоб они смогли создавать собственные темы на форуме.

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


Смайлы и агенты
93 / 278

В главе приведено описание настроек функционала, не попавшего по классификации в другие разделы.


Смайлы
94 / 278

Системные и дополнительные смайлы. Видеоурок

Раздел Смайлы (Сервисы > Смайлы) - системный раздел для смайлов, используемых модулями системы.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Для работы со смайлами используются понятия Галереи смайлов и Набор смайлов. Число Галерей и Наборов не ограничено. Каждая из Галерей может быть использована в любом из модулей . Выбор осуществляется в настройках модуля. Настройки Главного модуля являются настройками по умолчанию для остальных модулей.

Галереи

В дистрибутиве по умолчанию присутствует Стандартная галерея с Основным набором. Они неудаляемые, но при необходимости можно удалить из них все смайлы . Каждая Галерея может содержать в себе несколько наборов. Пользователь может использовать любой из имеющихся наборов, переключившись на нужный:

Один и тот же смайл может быть использован только в одной галерее.

Примечание: "Смайлом" для системы является не конкретная картинка или ID, а её написание. Соответственно, вы не можете использовать одно и то же написание в разных наборах в рамках одной галереи, для этого вам понадобится создать отдельную галерею.

Создание галереи

Для создания Галереи достаточно заполнить поля формы . Число галерей не ограничено. Кликнув на созданную галерею, можно перейти на страницу с созданием наборов.

Наборы

Для создания набора достаточно заполнить поля формы с указанием Галереи к которой они относятся и произвести импорт архива смайлов.

Для импорта необходимо заранее подготовить архив в формате ZIP. В простейшем виде архив может представлять из себя набор картинок, лежаших в корне архива. Но при использовании архива в таком виде импорт будет произведен по списку файлов с использованием меток в названии файла (если они есть). Варианты меток: "smile_" - смайл, "icon_" - иконка, "_hr" - высокое разрешение .

Например, при импорте в набор с кодом test файла smile_green_hr.png будет интерпретирован как "Смайл в высоком разрешении", а код вставки в редактор будет :test/green:.

В результате потребуется дальнейшее редактирование каждого смайла в отдельности. Нужно будет отредактировать поля Название и Написание, которые будут добавлены в виде неудобном для использования:

Чтобы избежать этого в архиве необходимо предусмотреть служебные файлы в формате csv . Служебных файлов должно быть как минимум два:

  • install.csv - данные для загрузки;
  • install_lang_**.csv - языковой файл, где ** - код языка , например, ru для русского.

Поля в файлах

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

Поля файла install.csv

Название | Описание и значения
TYPE | Тип: смайл (S) или иконка (I). По умолчанию S.
CLICKABLE | Служебное значение (Y|N). По умолчанию Y.
SORT | Значение сортировки, определяет расположение смайла в общем списке. Чем меньше число, тем выше расположение смайла. По умолчанию ставится 300.
IMAGE | Имя файла в архиве.
IMAGE_WIDTH | Ширина картинки в пикселях.
IMAGE_HEIGHT | Высота картинки в пикселях.
IMAGE_DEFINITION Разрешение изображения:
  • Стандартное разрешение (SD)
  • Высокое разрешение (HD)
  • Сверхвысокое разрешение (UHD)
HIDDEN | Скрытое изображение, то есть вывод производится только по использованию написания (Y|N). По умолчанию N.
IMAGE_LANG | Мнемоническое название на английском языке для связки в языковом файле.
TYPING | Образцы написания смайла. Возможно несколько описаний, которые должны вводиться через пробел.

Поля файла install_lang_**.csv

Поле | Описание и значение
Мнемоническое название | Значение поля IMAGE_LANG из файла install.csv.
Название | Название смайла на подгружаемом языке.

Также доступно ручное добавление смайлов, в ходе которого его необходимо привязать к тому или иному набору. При ручной загрузке невозможно загрузить смайл в разрешении Ultra HD.

Документация по теме

  • АПИ для работы со смайлами
  • Пользовательская документация по смайлам


Агенты
95 / 278

Работаем с агентами

Агенты - это технология , позволяющая запускать произвольные PHP функции (агенты) с заданной периодичностью. В самом начале загрузки каждой страницы система автоматически проверяет, есть ли агент, который нуждается в запуске и в случае необходимости - исполняет его.

Внимание! Временная точность запуска агентов напрямую зависит от равномерности и плотности посещаемости сайта. Если вам необходимо организовать запуск каких либо PHP функций в абсолютно точно заданное время, то необходимо воспользоваться стандартной утилитой cron , предоставляемой большинством хостингов.

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

Список используемых в системе агентов приводится на странице Список агентов (Настройки > Настройки продукта > Агенты):

Для создания нового агента служит кнопка Добавить агента, расположенная на контекстной панели.

Примечание: Подробное описание полей формы смотрите на странице пользовательской документации .

Документация по теме:

  • Агенты
  • Выполнение всех агентов на cron


Как выявить кастомизацию на сайте
96 / 278

Кастомизация - изменение стандартного функционала

Кастомизация - это изменение программного обеспечения согласно требованиям конкретного пользователя (заказчика). Кастомизация может затрагивать и компоненты, и модули сайта.

Безусловно, в некоторых случаях кастомизация очень помогает (например, настроить дополнительный функционал, который не предусмотрен в системе). Но зачастую после кастомизации может не работать какая-то опция из штатного функционала (просто потому, что разработчик, "подгонявший" код под запросы заказчика, не настроил весь функционал, имеющийся в штатной версии продукта).

Нередко бывают ситуации, когда администратору приходится работать с готовым сайтом, который кто-то разрабатывал до него. Хорошо, если сохранилась информация обо всех кастомизациях, проводимых на сайте, но чаще всего таких записей нет.

Соответственно, если у нового администратора возникнет проблема при настройке какого-либо функционала сайта, ему необходимо определить причину этих проблем:

  • если дело в кастомизированном функционале – нужно обратиться к разработчику этого функционала или к партнерам "1С-Битрикс24"; либо же отключить кастомизированную часть кода;
  • если же причина в некорректно работающем штатном функционале – написать в Техподдержку.

В этом уроке рассмотрим, как можно проверить, есть ли на сайте кастомизированные доработки, из-за которых может не работать какой-либо функционал сайта.

Как выявить кастомизацию на сайте?

  • Чтобы подтвердить или исключить влияние стороннего функционала, переименуйте по FTP папки/файлы, в которых он может быть (если эти папки/файлы есть на Вашем сайте):

    • /local/
    • /bitrix/templates/<шаблон сайта>/components/bitrix/
    • /bitrix/templates/.default/components/bitrix/
    • /bitrix/php_interface/init.php

  • Также влияние могут оказывать сторонние модули в папке /bitrix/modules/.

    Отличить стандартный модуль от стороннего можно наличием точки в названии папки модуля. Если точка есть – значит, это сторонний модуль. Например, /bitrix/modules/iblock – стандартный, а /bitrix/modules/asd.iblock – сторонний. Такие папки тоже нужно переименовать.

    • Важно! Переименование нужно делать только по FTP, чтобы иметь возможность вернуть прежние названия и восстановить работу сайта.

    Настоятельно рекомендуем это делать в период минимальной посещаемости сайта, так как отключение кастомизированного функционала может исказить отображение сайта на некоторое время.

    Примечание: Переименовать можно, добавив в начале названия любой символ, например, символ минуса: -. Сначала нужно переименовать все указанные папки/файлы, а уже потом проверять влияние переименования.

Если переименование исправляет ситуацию, то Вы можете обратиться к разработчику этого функционала для решения вопроса или оставить папки/файлы переименованными.

Найти точную подпапку с кастомизированным функционалом, который нарушает работу сайта, можно путем обратного переименования с поочередной проверкой статуса проблемы.

Если это не поможет, то обратитесь в Техподдержку.


Оптимизация использования места на хостинге
97 / 278

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

Основные рекомендации

В уроке рассмотрены рекомендации на какие настройки обратить внимание сразу при настройке продукта, чтобы место на хостинге не занимали ненужные данные. Если же место у вас уже закончилось, то рекомендуем также посмотреть урок Рекомендации по очистке места на диске.

Удаление ненужных модулей

Для экономии дискового пространства неиспользуемые модули рекомендуется удалить. Дистрибутивы модулей при этом останутся в системе и в любое время вы сможете снова установить их.

Удаление или установка модулей выполняется на странице Настройки > Настройки продукта > Модули Административного раздела.

При деинсталляции некоторых модулей система предлагает сохранить накопленные модулем данные (а именно, данные модуля в таблицах базы данных). Если вы в дальнейшем планируете использовать эти данные, то при удалении модуля необходимо отметить соответствующую опцию Сохранить таблицы .

Размещение резервной копии сайта в облаке

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

Рекомендуем выбрать для хранения резервных копий облачное хранилище, чтобы не занимать место на хостинге:

  • Облако 1С-Битрикс;
  • Облачные хранилища.

Настройки модулей

В системе есть множество настроек, которые позволят сэкономить немного места. Изучите внимательно настройки модулей. В них есть различные опции для оптимизации использования места.

Основные типы таких настроек:

  1. Ограничение размеров изображений;
  2. Настройки логов, истории и статистики (т.е. что хранить и сколько по времени).

Грамотный подход к настройке модулей поможет в долгосрочной работе проекта. Немалый объем логов и статистических данных из-за большого периода хранения и неоптимизированные изображения со временем занимают значительную часть дискового пространства.

Для перехода к настройкам модулей откройте страницу Административного раздела: Настройки > Настройки продукта > Настройки модулей.

Полный список модулей с настройками

В таблице ниже приведены модули со ссылками на документацию и конкретные настройки:

Модуль Опции для оптимизации места
Главный модуль
  • Ограничение дискового пространства (Мб);
  • Максимальный размер файла для контроля дубликатов (Мб);
  • Качество JPG при масштабировании изображений (в процентах);
  • Изображения в профиле пользователя > Максимальный размер файла в байтах;
  • Создавать сжатую копию объединенных CSS и JS файлов;
  • Богатые ссылки > Сохранять изображения локально;
  • Почта и СМС > Максимальный размер файлов вложения в байтах (0 - без ограничений);
  • Почта и СМС > Сколько дней хранить почтовые события;
  • Почта и СМС > Максимальный размер файлов вложения в байтах (0 - без ограничений);
  • Все настройки вкладки Журнал событий.
REST API
  • Включить логирование;
Wiki
  • Максимальная ширина / высота загружаемого изображения (пикселей);
Библиотека документов
*только в Битрикс24
  • Журналировать действия пользователей;
  • История документов > Максимальное количество записей в истории документа.
Бизнес-процессы
  • Время хранения лога выполнения бизнес-процесса (дней);
  • Не сохранять в лог события;
  • Использовать компрессию при хранении данных;
Блоги
  • Максимальный размер аватара (байт);
  • Максимальный размер загружаемого файла (байт).
Веб-аналитика
  • Настройка данных > Сохранять статистику посещений разделов и файлов?;
  • Настройка данных > Собирать данные для отчета "Пути по сайту"?;
  • Настройка данных > Сохранять статистику ссылающихся сайтов и поисковых фраз?;
  • Настройка данных > Не очищать из ссылающихся доменов первые (TOP);
  • закладка Время хранения (все настройки);
Диск
только в *Битрикс24
  • Максимальное количество записей в истории документа.
Документооборот
  • Сохранять историю изменений файлов при обычном редактировании (не в документообороте);
  • Сколько дней хранить документ после его публикации;
  • Сколько дней хранить историю.
Интернет-магазин
  • Включить подробное логирование истории изменения заказа;
  • Включить подробное логирование операций с заказом;
  • Настройки истории изменения заказов;
  • Архивирование заказов.
Интранет
*только в Битрикс24
  • Использовать сжатие zip, если доступно;
Контроллер
  • Сколько дней хранить журнал авторизаций;
Монитор производительности
  • Вести журнал предупреждений PHP;
  • Вести журнал кеширования;
  • Вести журнал SQL запросов;

И настройки указанных журналов.
Перевод
  • Делать резервную копию редактируемых файлов.
Подписка и рассылки
  • Максимальный размер вложений в мегабайтах;
Поиск
  • закладка Статистика (все настройки);
Почта
  • Сохранять вложенные файлы;
  • Хранить журнал работы (дней);
  • Срок хранения писем в днях;
Проактивная защита
  • Заносить записи в журнал событий;
  • Заносить записи в Syslog;
  • Заносить записи в файл;
Реклама, баннеры
  • Сколько дней хранить динамику по баннерам?;
  • На сколько дней запоминать, что посетитель посмотрел тот или иной баннер:;
Сайты 24
  • Сколько дней хранить удаленные элементы.
Служба сообщений
  • Сколько дней хранить сообщения
Техподдержка
  • Макс. размер загружаемых файлов (Кб)
Торговый каталог
  • раздел Информация о просмотренных товарах;
Управление структурой
  • Журналировать действия пользователей;
  • Настройки медиабиблиотеки > Максимальный размер загружаемых в медиабиблиотеку изображений (Ш х В);
Форум
  • Журналировать действия пользователей;
  • Максимальный размер аватара (байт);
  • Максимальный размер загружаемых файлов (байт);
  • Размер ящика (сообщений);


Рекомендации по очистке места на диске
98 / 278

В процессе работы любого сайта занимаемое им место со временем увеличивается . Если место закончилось, то наиболее простое и безопасное решение этой проблемы - увеличить его. Если такой возможности нет, то описанные в уроке рекомендации для продуктов 1С-Битрикс могут помочь Вам освободить некоторое место на диске.

Очистка демо-данных

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

В коробочной версии Битрикс24 есть специальный инструмент - Мастер очистки данных.

В 1C-Битрикс: Управление сайтом доступна чистая установка . Если у Вас уже установлен сайт с демоданными, то понадобится удалять их вручную.

Список демоданных в 1C-Битрикс: Управление сайтом

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

Перечислим демо-данные:

  • Инфоблоки (Например: Каталог, Торговые предложения, Новости в интернет-магазине);
  • Шаблоны сайта /bitrix/templates;
  • Статические папки и файлы (Такие, как раздел О магазине (/about));
  • Highload-блоки
  • Папка /upload/iblock содержит все изображения из демо инфоблоков. Если у Вас ещё нет собственных инфоблоков, то можно очистить её полностью.
  • Несколько демо-сайтов в папках:
    • /bitrix/wizards/bitrix/demo
    • /bitrix/modules/bitrix.eshop
    • /bitrix/modules/bitrix.sitecommunity
    • /bitrix/modules/bitrix.sitecorporate
    • /bitrix/modules/bitrix.siteinfoportal
    • /bitrix/modules/bitrix.sitepersonal

Резервные копии

Удалите устаревшие резервные копии, которые хранятся локально. Сделать это можно через список резервных копий Настройки > Инструменты > Резервное копирование > Список резервных копий или вручную в папке /bitrix/backup/.

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

Подробнее о резервных копиях можно почитать в уроке: Хранение и шифрование резервных копий.

Создавая резервную копию в экспертом режиме можно добиться уменьшения размера резервной копии с помощью дополнительных настроек . Воспользуйтесь этим, но только если хорошо понимаете данные настройки.

Большие файлы

Поищите и удалите ненужный контент на сайте, который содержит объемные файлы.

Искать их удобно с помощью таблицы базы данных b_file. Перейдите на страницу Настройки > Производительность > Таблицы и откройте указанную таблицу. Для поиска файлов отсортируйте записи по убыванию колонки FILE_SIZE, чтобы видеть самые большие файлы на сайте.

Внимание! В самой таблице не вносите никаких изменений. Используйте её только для поиска файлов.

Нажмите на рисунок, чтобы увеличить

Проанализируйте найденные файлы и решите, что с ними делать.

Пример поиска файлов с помощью таблиц базы данных
Рассмотрим такие результаты отсортированной по размеру таблицы:

Нажмите на рисунок, чтобы увеличить

Какую полезную информацию мы можем из неё получить (по самому большому файлу)?

  • Самый большой файл имеет размер FILE_SIZE - 2 149 632 байта (~ 2,04 МБ);
  • Это изображение формата .png (CONTENT_TYPE - image/png);
  • Файл используется в модуле инфоблоки (MODULE_ID - iblock);
  • Расположен в папке iblock/02c (поле таблицы SUBDIR) (см. папку upload);
  • Название файла указано в FILE_NAME, 02c38cfe59084d8f1231db35b83e4d73.png.

С помощью полученной информации, мы можем перейти в папку с файлом и посмотреть этот файл:

Нажмите на рисунок, чтобы увеличить

Также мы можем посмотреть взаимосвязи с другими таблицами базы данных, для поиска полезной информации. Например, если мы просмотрим связные таблицы, то обнаружим, что наш файл имеет связь с таблицей b_iblock_element . И в ней есть информация об элементе инфоблока, в котором используется это изображение:

Очистка кеша

Вы можете почистить файлы кеша из административного раздела на странице Настройки > Настройки продукта > Автокеширование. Перейдите во вкладку Очистка файлов кеша и выберите очистить все. Тем самым Вы освободите дисковое пространство от файлов кэша.

Либо удалите его вручную, очистив папки /bitrix/managed_cache/, /bitrix/resize_cache/ и /bitrix/cache/. Возможно в этих папках из-за некорректно выставленных прав происходит накапливание данных кеша.

Подробнее об очистке кеша и возможной проблеме с правами описано в отдельном уроке: Очистка файлов кеша.

Если у Вас включена технология Композитный сайт , то дополнительно к папкам, указанным выше, можно очистить папку /bitrix/html_pages. В ней хранится композитный кеш.

Внимание! Вероятно, что такая очистка поможет временно и пригодится только для срочного освобождения места на диске. Выполнять её постоянно не рекомендуется.
Важно понимать, что производительность сайта после очистки снизится, т.к. кеш начнет создаваться заново. И сам кеш может постепенно вырасти до прежних размеров.

Другие рекомендации

  • Если на сайте много больших картинок (например, по несколько Мб), то рассмотрите вариант их оптимизации без заметной потери качества;
  • Рекомендуем поискать, может у Вас есть неиспользуемые модули, шаблоны или компоненты. Иногда присутствуют ненужные данные от давно удаленных модулей;
  • Поработайте с папкой /upload/, в которой могут храниться уже не нужные файлы (например, по умолчанию, в ней сохраняются различные файлы экспорта);
  • Если Вы пользуетесь модулем Веб-аналитика, проверьте настройки модуля на закладке Время хранения. Большой период времени хранения приводит к увеличению размера базы данных статистики. При необходимости - очистите ненужные данные .


Проверьте себя
99 / 278

Ответьте на несколько вопросов по теме Основы администрирования, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Не все действия по работе с информацией на сайте, которые делаются из Публичной части, доступны для выполнения в Административной части.
Верно
Увы, вы ошиблись. Доступны все действия. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
2 В системе возможно сокрытие пункта меню в зависимости от различных условий.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
3 Вызовы файлов header.php и footer.php в шаблоне сайта - обязательны.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Многосайтовость системы «1C-Битрикс: Управление сайтом» позволяет создать несколько сайтов на одной копии продукта, работающих с использованием разных баз данных.
Верно
Увы, вы ошиблись. Все сайты должны работать с использованием одной базы данных и единого ядра продукта. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
5 Многосайтовость можно настроить на разных доменах.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
6 Удаление сайта возможно только после удаления сущностей, которые имеют отношение к удаляемому сайту, или снятия привязки с них.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
7 Для того, чтобы пользователи могли вносить какие-либо изменения в Публичной части сайта, им нужно настроить доступ на чтение к папке /bitrix/admin.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
8 Для того, чтобы настроить доступ группе пользователей к разным модулям системы, понадобится заходить в настройки каждого модуля.
Верно
Увы, вы ошиблись. Можно выполнить настройки доступа ко всем модулям в форме редактирования группы. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
9 Администратор может настроить отображение разных шаблонов сайта для разных групп пользователей.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
10 Настроить разный интерфейс административного раздела невозможно отдельно для каждого пользователя.
Верно
Увы, вы ошиблись. Bitrix Framework позволяет настраивать и запоминать настройки интерфейса для каждого зарегистрированного пользователя, имеющего доступ в административный раздел (например, настроить вид списка). Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
11 Символьный идентификатор языка и идентификатор языка в системе обновлений могут быть разными. Соответствие между ними просто устанавливается вручную.
Верно
Увы, вы ошиблись. Символьный идентификатор языка используется для загрузки соответствующих языковых файлов, поэтому он должен совпадать с идентификатором языка в системе обновлений. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
12 Для создания своего собственного варианта страницы ошибки 404 нужно внести правки в файл 404.php.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
13 Количество сайтов на разных языках в "1С-Битрикс: Управление сайтом" не ограничено (за исключением лицензии Старт).
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
14 По умолчанию в системе активен один главный рейтинг - Авторитет.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
15 Агенты - это произвольные PHP функции, которые запускаются вручную при необходимости.
Верно
Увы, вы ошиблись. Агенты - это технология, позволяющая запускать произвольные PHP функции автоматически с заданной периодичностью. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!


Практические задания
100 / 278

После изучения главы рекомендуем выполнить несколько практических заданий. Их можно выполнять на:

  1. тестовой лаборатории предоставленной компанией 1С-Битрикс
    2. либо
  2. на установленной на локальный компьютер пробной версии 1С-Битрикс: Управление сайтом

Первый вариант проще: Виртуальная лаборатория предполагает установку системы в упрощённом, в отличие от локальной версии 1С-Битрикс: Управление сайтом, варианте. При такой установке для получения идентичного изображения у пользователя и на скриншотах заданий выберите на шаге Решение для установки: Интернет-магазин . На остальных шагах менять установки по умолчанию не нужно.

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

Примечания:
  1. Настоятельно рекомендуем НЕ выполнять задания на работающем, "боевом" сайте.
  2. Если вы всё же пытаетесь выполнять задания на работающем сайте, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

  1. Создайте раздел и страницу через физическую структуру в Административном разделе. Загрузите в папку файл (любое изображение) и разместите его на странице, выбрав из структуры. Закройте доступ к разделу и скройте пункт меню для неавторизованных пользователей.

    Решение
    Задание составлено по материалам уроков:
    • Создание и редактирование новых страниц и разделов.
    • Управление правами доступа.
    • Загрузка и поиск файлов.
    • Расширенный режим настройки меню.

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  2. Настройте отображение в визуальном редакторе всех компонентов catalog.* и компонента календарь (main.calendar).

    Решение
    Задание составлено по материалам уроков:
    • Настройки отображения компонентов в визуальном редакторе.

    Результат:

    На странице настроек модуля Управление структурой (Настройки > Настройки продукта > Настройки модулей > Управление структурой) внесите компоненты из задания в поле Разрешенные компоненты:

    Результат в визуальном редакторе:

  3. Выполните различные настройки доступа. Для проверки настроек понадобится создать пользователя :
    1. Добавьте нового пользователя в группу Контент-редакторы;
    2. Авторизуйтесь под этим пользователем и проверьте, что ему доступно;
    3. Вернитесь в учетную запись Администратора и настройте права доступа:
      • Чтение к папке /bitrix/admin;
      • Доступ открыт к модулю Веб-формы;
      • Закройте просмотр физической структуры в административном разделе;
      • Доступ к инфоблоку Изменение конкретно для пользователя (не группы).
    4. Проверьте результат настроек, вновь авторизовавшись под пользователем.

    Решение
    Задание составлено по материалам уроков:
    • Доступ к модулям.
    • Управление доступом к папкам и файлам.
    • Настройка доступа к инфоблокам.

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  4. Создайте пользовательские поля для формы создания пользователя:
    • поле Хобби размером 32х3 во вкладке Личные данные после поля Дата рождения;
    • поле Дата начала работы во вкладке Работы после поля Должность.

    Решение
    Задание составлено по материалам урока:
    • Создание Пользовательских полей.

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  5. Выполните настройки для журнала событий:
    • Срок хранения событий - 60 дней;
    • Записывать регистрацию и удаление пользователей;
    • Журналирование действий с инфоблоками;
    • Сохранение действий пользователей;
    • Записывать изменение раздела и элемента для инфоблока Новости.
    После настроек выполните перечисленные действия и посмотрите, как они отражаются в журнале событий.

    Решение
    Задание составлено по материалам урока:
    • Журнал событий.

    Результат:

    Настройки модуля Главный модуль:

    Настройки модуля Инфоблоки:

    Настройки модуля Управление структурой:

    Настройки инфоблока Новости:

    Результат в Журнале событий:

    Нажмите на рисунок, чтобы увеличить


Пользователи и авторизация
101 / 278

За работу с пользователями (добавление и авторизация) отвечает Главный модуль системы. Пользователи добавляются с Публичного раздела самостоятельно, либо с Административного раздела вручную администратором или автоматически через разные виды импорта.

Авторизация в системе также возможна через модуль AD/LDAP .


Регистрация и разграничение прав
102 / 278

От чего зависят права пользователей

Каждый посетитель сайта относится к одной или нескольким группам пользователей сайта. Какой уровень прав есть у группы, такой же уровень прав есть и у пользователя. Если пользователь приписан к нескольким группам, то он обладает максимальным уровнем прав из доступных для него в рамках этих групп.

Примеры прав пользователя, состоящего в нескольких группах
  1. Предположим, что в системе зарегистрирован пользователь, приписанный к двум группам, например:
    • Редакторы сайта;
    • Партнеры.

    Пользователи группы Редакторы сайта обладают правом на редактирование страниц сайта, однако им запрещен доступ к страницам партнерского раздела.

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

    В результате пользователь, относящийся к этим двум группам, будет обладать следующими правами:

    • правом на редактирование всех страниц сайта, кроме страниц партнерского раздела;
    • правом на просмотр страниц партнерского раздела.

  2. Либо: в системе зарегистрирован пользователь, приписанный к двум группам, например:
    • Сотрудники;
    • Маркетинг и продажи.

    Пользователи группы Сотрудники обладают правом на просмотр страниц сайта, однако им запрещен доступ к некоторым страницам сайта (например, к разделу Документы - Маркетинг и продажи). По умолчанию, пользователи, не состоящие в этой группе, не будут иметь доступа к порталу.

    Пользователи группы Маркетинг и продажи обладают правом на доступ к соответствующему разделу на странице Документы.

    В результате пользователь, относящийся к этим двум группам, будет обладать следующими правами:

    • правом на доступ к порталу;
    • правом на доступ к документам Маркетинг и продажи.

Система разграничения прав доступа на сайтах "1С-Битрикс: Управление сайтом" - двухуровневая:

  • уровень 1: доступ к каталогам и файлам;
  • уровень 2: доступ к модулям системы и логическим операциям в модулях.

Управление этими уровнями прав выполняется отдельно друг от друга.

Регистрация пользователя в системе

При регистрации в системе пользователь получает личные регистрационные данные (логин и пароль) и приписывается к одной или нескольким группам.

Если в системе разрешена самостоятельная регистрация , то при регистрации пользователя ему создаётся учётная запись с добавлением в группу по умолчанию, указанную в настройках Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль). В дальнейшем администратор может изменить приписку пользователя к группе.

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

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

Документация по теме

  • Типовые роли пользователей сайта
  • Управление пользователями
  • Уровни доступа
  • Настройки главного модуля
  • урок "Регистрация по номеру телефона"


Группы пользователей
103 / 278

В этой главе вы узнаете, как определить пользователей в группы, а также как изменить параметры группы (например, уровень доступа к модулям).


Управление группами пользователей
104 / 278

Добавление новой группы.
Видеоурок

Создание и управление группами пользователей выполняется на странице Группы пользователей (Настройки > Пользователи > Группы пользователей):

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Текстовое содержание видео

Управление группами пользователей выполняется на странице Группы пользователей (Настройки > Пользователи > Группы пользователей):

Нажмите на рисунок, чтобы увеличить

В системе существует две обязательные группы пользователей: Все пользователи и Администраторы:

  • по умолчанию к группе Все пользователи относятся все незарегистрированные посетители сайта с правом только на просмотр публичных страниц сайта (кроме страниц закрытых разделов);
  • к группе Администраторы относятся администраторы сайта, обладающие полным набором прав на доступ к управлению системой (в том числе, доступом к управлению правами других пользователей).
Параметры данных групп пользователей могут быть изменены (название, описание, уровень прав для группы Все пользователи), но сами группы не могут быть удалены из системы.

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

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

Вкладка Параметры

В этой вкладке производится быстрая приписка пользователей к той или иной группе

Однако быстрая приписка пользователей к той или иной группе возможна, только если на сервере зарегистрировано не более 50 пользователей. Если число пользователей в группе планируется очень большим, то добавление пользователей удобнее будет делать через страницу списка пользователей (Настройки > Пользователи > Список пользователей), так как на ней есть форма поиска.

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

Значения остальных полей этой вкладки понятны интуитивно.

Вкладка Безопасность

На вкладке Безопасность не рекомендуется изменять настройки без четкого понимания того, что вы делаете. Особенно на действующем сайте, так как она определяет политику безопасности для текущей группы.

Чаще всего подвергаются перенастройке поля Время жизни сессии и Максимальное количество компьютеров, на которых может быть одновременно запомнена авторизация.

При изменении параметра Время жизни сессии нужно искать оптимум между потребностью в постоянном доступе авторизованных пользователей на сайте и производительностью. Не нужно устанавливать большое время сессии. Папка сессий (определяется настройками PHP) будет очень большая, следовательно, будет медленный старт сессии. Рекомендуется ставить значение в диапазоне 20-30 минут.

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

Пример настройки вкладки Безопасность группы пользователей.

Вкладка Доступ

На этой вкладке можно задать права доступа к модулям системы. Допустим, вам необходимо, чтобы контент-менеджер не имел возможности управлять блогами и форумами, так как для этого предусматривается создание отдельных администраторов. Запретим доступ созданной группе на управление, оставив за ними право на чтение, создание блогов (как обычным пользователям) и просмотр административной части (вдруг из редактора "вырастет" администратор).

Примечание. Некоторые модули предусматривают дополнительную настройку прав доступа к контенту (Инфоблоки и Веб-формы). Ознакомиться с настройками доступа к этим модулям вы можете в этом уроке.

Пример создания группы
Контент-редактор новостей. Видеоурок

Допустим, нам нужно создать группу пользователей, которая будет заниматься исключительно новостями сайта (добавлять/редактировать/удалять).

В видео описано, как настроить такие права, а также как вывести административную панель для таких пользователей (чтобы можно было работать с новостями сайта не только из административного, но и из публичного раздела).

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Чтобы корректно настроить права на пользователя в группе "Контент-редакторы новостей", надо выполнить следующие действия:

  1. Создать группу пользователей.
  2. В настройках доступа модуля Управление структурой установить уровень доступа Редактирование файлов и папок;
  3. Для этой группы пользователей установить право Чтение на папку /bitrix/admin/;
  4. В настройках доступа инфоблока "Новости" дать право Изменение (при доступе Чтение инфоблок просто не будет отображаться).

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

Чтобы панель всё-таки отображалась, в настройках Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль) добавьте нужную группу в список групп, для которых нужно Всегда показывать панель для пользователей, и тогда пользователи смогут работать с новостями из публичного раздела, включив режим Правки.

Документация по теме

  • Группы пользователей
  • Создание и редактирование группы пользователей


Уровни доступа для стандартных групп пользователей
105 / 278

Таблица прав доступа по умолчанию

В таблице приведены права доступа по умолчанию к модулям системы для стандартных групп пользователей .

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

  • CRM
  • DAV
  • Push and Pull
  • Библиотека документов
  • Бизнес процессы
  • Веб-кластер
  • Веб-мессенджер
  • Веб-сервисы
  • Задачи
  • Интранет
  • Информационные блоки
  • Календарь событий
  • Облако 1С-Битрикс
  • Поиск
  • Социальные сервисы
  • Фотогалерея 2.0
  • Экстранет

Существуют также две стандартные группы пользователей, не включенные в таблицу:

  • Пользователи, имеющие право голосовать за рейтинг
  • Пользователи имеющие право голосовать за авторитет
Их права на доступ к модулям совпадают с группой "Все пользователи (в том числе неавторизованные)", за исключением дополнительных прав: права голосовать за рейтинг и права голосовать за авторитет соответственно.

Модуль, права доступа | Стандартные группы пользователей
 | Администраторы | Все пользователи (в том числе неавторизованные) | Зарегистрированные пользователи | Администраторы интернет-магазина | Контент-редакторы
Главный модуль Описание прав доступа | Полный доступ | Доступ закрыт | Изменение своего профиля | Полный доступ к управлению интернет-магазином и параметрами торгового каталога | Изменение своего профиля
AD/LDAP (ldap) Описание прав доступа | Полный доступ | Закрыт
Email-маркетинг (sender) Описание прав доступа | Полный доступ | Закрыт
Wiki (wiki) Описание прав доступа | Полный доступ | Чтение страниц
XMPP сервер (xmpp) Описание прав доступа | Полный доступ | Закрыт
Блоги (blog) Описание прав доступа | Полный доступ | Чтение блогов
Валюты (currency) Описание прав доступа | Полный доступ | Закрыт
Веб-аналитика (statistic) Описание прав доступа | Полный доступ | Доступ закрыт
Веб-формы (form) Описание прав доступа | Полный доступ | Доступ закрыт
Документооборот (workflow) Описание прав доступа | Полный доступ | Доступ закрыт
Интеграция с Битрикс24 (b24connector) | Полный доступ | Доступ закрыт
Интернет-магазин (sale) Описание прав доступа | Полный доступ | Доступ закрыт |  | Обработка заказов | Доступ закрыт
Торговый каталог (catalog) Описание прав доступа | Полный доступ | Доступ закрыт |  | Редактирование цен | Доступ закрыт
Контроллер (controller) Описание прав доступа | Полный доступ | Доступ запрещен
Монитор производительности (perfmon) Описание прав доступа | Полный доступ | Доступ закрыт
Облачные хранилища (clouds) Описание прав доступа | Полный доступ | Доступ закрыт
Обучение (learning) Описание прав доступа | Управление правами; редактирование / удаление / создание / привязывание / отвязывание уроков и курсов как в качестве родителя, так и в качестве потомка | Просмотр
Опросы, голосования (vote) Описание прав доступа | Полный доступ | Закрыт
Перевод (translate) Описание прав доступа | Полный доступ | Закрыт
Подписка, рассылки (subscribe) Описание прав доступа | Полный доступ | Закрыт
Поисковая оптимизация (seo) Описание прав доступа | Полный доступ | Доступ закрыт
Почта (mail) Описание прав доступа | Полный доступ | Закрыт
Проактивная защита (security) Описание прав доступа | Полный доступ | Доступ закрыт
Баннерная реклама (advertising) Описание прав доступа | Полный доступ | Доступ закрыт
Сайты 24 (landing) Описание прав доступа | Полный доступ | Доступ запрещен
Социальная сеть (socialnetwork) Описание прав доступа | Полный доступ | Работа в публичной части
Техподдержка (support) Описание прав доступа | Полный доступ | Доступ закрыт
Торговый каталог (catalog) Описание прав доступа | Полный доступ | Доступ закрыт
Управление структурой (fileman) Описание прав доступа | Полный доступ | Доступ закрыт
Учет рабочего времени (timeman) Описание прав доступа | Полный доступ | В соответствии с субординацией: сотрудники могут редактировать свой рабочий день; руководители могут управлять рабочими днями и отчетами
Форум (forum) Описание прав доступа | Полный доступ | Закрыт

Документация по теме:

  • Уровни доступа
  • Создание и редактирование уровня доступа


Работа с учетными записями пользователей
106 / 278

Управление учетными записями

Управление учетными записями пользователей в системе выполняется на странице Список пользователей (Настройки > Пользователи > Список пользователей):

Нажмите на рисунок, чтобы увеличить

Для добавления нового пользователя служит кнопка Добавить пользователя, расположенная на контекстной панели.

Предупреждения для администраторов "Битрикс24 в коробке"
1. При первом выставлении счета в CRM создается фиктивный пользователь с именем anonymous_[набор символов]. Его удаление приведет к невозможности выставления счетов.

2. Пользователи могут быть лицензированными и активными. Лицензированные - это число пользователей, доступных по лицензии + число дополнительно приобретённых пользователей. Активные пользователи - это пользователи авторизованные на портале в данный момент.
Администратор может работать в административной части со всеми пользователями, но в публичную часть может войти активных пользователей числом не более, чем лицензируемых.

3. При работе Открытых линий для каждого внешнего клиента на портале создается пользователь типа экстранет. Обнаружив таких пользователей в списке пользователей , не пугайтесь, вас не взломали. Это системные пользователи.

4. С версии 15.5.0 при удалении пользователя включена проверка на его участие в шаблонах задач.

Удаление пользователя будет возможно только после его исключения из всех шаблонов.

Изменение учётной записи

Форма редактирование параметров пользователя вызывается с помощью двойного клика левой кнопкой мыши по записи пользователя, либо с помощью пункта Изменить в контекстном меню. С помощью команды Авторизоваться администратор может в один клик выйти из своего аккаунта и авторизоваться под выбранным аккаунтом .

Форма управления учетной записью пользователя имеет следующий вид:

Значения полей формы в большинстве случаев интуитивно понятны. Если возникнут вопросы, то подробное описание полей формы приводится в пользовательской документации продукта.

В больших проектах с несколькими администраторами есть смысл вести историю изменений учётных записей. Для этого используется опция Сохранять историю изменения полей профиля пользователя в настройках Главного модуля. Сами изменения отображаются на странице Настройки > Пользователи > История профилей.

Учётная запись администратора

Учетная запись администратора создаётся при установке системы автоматически с идентификатором 1. Пароль для этой записи должен быть не менее 6 символов. Этот пользователь обладает максимально возможным доступом к системе. В дальнейшем регистрационные данные администратора могут быть изменены, но саму запись удалить невозможно.

Если по каким-то причинам пароль к администраторскому аккаунту утерян, то восстановите его.


Типовые роли пользователей сайта
107 / 278

Рассмотрим какие минимальные настройки прав необходимы для типовых ролей сотрудников, работающих с сайтом, или для доступа к конкретному функционалу продукта.

Типовые роли

Роль Описание Как настроить
Младший контент-редактор Право на создание контента без возможности его публикации
  • право Чтение на папку bitrix/admin;
  • право доступа Изменение с ограничениями к инфоблоку контента (только при включенной опции в инфоблоке Расширенное управление правами);
  • полные права доступа к статусам документооборота Черновик и Готов.
Редактор каталога Права на редактирование каталога товаров
  • право Чтение на папку bitrix/admin;
  • право Изменение на нужный торговый каталог.
Главный редактор Все права контент-менеджера
  • право Чтение на папку bitrix/admin;
  • право Полный доступ на инфоблок контента;
  • максимальные права на все статусы документооборота.
Менеджер Право на просмотр заказов
  • право Чтение на папку bitrix/admin;
  • уровень доступа Обработка заказов к модулю Интернет-магазин;
  • пользователь должен быть включен в группы, имеющие доступ к заказам сайта (закладка Права на заказы в форме настроек модуля Интернет-магазин).
Старший менеджер Работа с заказами, отчетами и 1С
  • право Чтение на папку bitrix/admin;
  • уровень доступа Полный доступ к модулю Интернет-магазин;
  • пользователь должен быть включен в группы, которым разрешена выгрузка (закладки Экспорт каталога и Заказы на странице Магазин > Настройки > Интеграция с 1С).
Администратор контента Может администрировать инфоблоки и пользователей (кроме админов), не имеет прав менять глобальные настройки сайта, изменять папки и файлы.
  • Для таких пользователей должна быть создана отдельная группа, пользователь не должен входить в другие группы с более широкими правами;
  • Для группы установлено право Чтение на папку bitrix/admin, и право Запись на bitrix/admin/user_edit.php;
  • уровень доступа [V]Просмотр данных модуля и изменение заданных профилей к Главному модулю;
  • В настройках группы должно быть указаны группы чьи профили возможно редактировать;
  • В настройках нужных инфоблоков нужно задать право Полный доступ.
Директор Права главного редактора, работа с отчетами и управление ценами
  • право Чтение на папку bitrix/admin;
  • право Полный доступ на инфоблок контента;
  • максимальные права на все статусы документооборота;
  • уровень доступа Обработка заказов к модулю Интернет-магазин;
  • право доступа Редактирование цен к модулю Торговый каталог;
  • право доступа Изменение к нужному торговому каталогу.

Функционал

Функционал Описание возможностей Как настроить
Товарный маркетинг Создание правил работы с корзиной, скидок, купонов (Маркетинг > Товарный маркетинг
  • право Чтение на папку bitrix/admin;
  • право доступа Просмотр в панели к инфоблокам товаров/торг. предложений;
  • право доступа Полный доступ к модулю Интернет магазин;
  • право доступа Чтение к модулю Торговый каталог.


Импорт пользователей
108 / 278

Пользователей на сайт можно добавлять не только по одному, но и целым списком. Импортировать пользователей можно:

  • из файла CSV
  • из Active Directory / LDAP


Страница импорта
109 / 278

Импорт пользователей. Видеоурок

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Как добавить целый список пользователей

Для добавления целого списка пользователей в систему служит специальная страница административного раздела Импорт пользователей.

Перейдите на страницу Импорт пользователей (Настройки > Пользователи > Импорт пользователей). Откроется форма импорта:

Нажмите на рисунок, чтобы увеличить

Выберите нужный источник данных и нажмите кнопку Далее.

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

Документация по теме

  • Импорт пользователей


Импорт пользователей из CSV-файла
110 / 278

Импорт из файла

Для добавления целого списка пользователей в систему служит специальная страница административного раздела Импорт пользователей (Настройки > Пользователи > Импорт пользователей).

Нажмите на рисунок, чтобы увеличить

Важно! CSV-файл создаётся в кодировке сайта. Кодировку можно посмотреть в форме создания/редактирования сайта (Настройки > Настройки продукта > Сайты > Список сайтов).

Подготовка файла CSV

CSV-файл должен быть подготовлен заранее. Он должен иметь следующий формат:

заголовок
данные
данные
данные

Каждая строка файла — это одна строка таблицы. Заголовок может состоять из любого количества записей, расположенных в одной строке. Он указывает тип данных, содержащихся в разделе, который следует после заголовка. Значения в строках файлов (как заголовка, так и данных) разделяются разделительным символом (delimiter).

Пример заголовка данных пользователей
LAST_NAME;PERSONAL_PHOTO;NAME;SECOND_NAME;WORK_POSITION;EMAIL;PERSONAL_BIRTHDAY;PERSONAL_GENDER;WORK_PHONE;UF_1C_PHONE_INNER;PERSONAL_MOBILE;PERSONAL_ICQ;LOGIN;IBLOCK_SECTION_NAME_1;IBLOCK_SECTION_NAME_2;IBLOCK_SECTION_NAME_3;IBLOCK_SECTION_NAME_4

Данные в полях должны строго соответствовать порядку полей в заголовке. Вне зависимости от того, имеются ли данные для соответствующего поля, само поле должно быть указано.

Например, если заголовок файла имеет следующий вид:

LAST_NAME;PERSONAL_PHOTO;NAME;SECOND_NAME;WORK_POSITION;

а в какой-либо из строк нет данных для части полей, скажем, 2, 4 и 5, то строка с данными должна иметь вид:

Иванов;;Андрей;;

Поля, в которых нет данных, просто отмечены разделителем.

Перед форматированием CSV-файла учтите следующие аспекты:

  • Разделитель (delimiter) может быть любым: запятая (,), точка с запятой (;), пробел или табуляция. Нельзя вводить пробелы между значениями. Если в качестве разделителя выбран пробел, то необходимо следить за тем, чтобы не было двойных пробелов между значениями.
  • Если запятая является частью значения (например: свойства объекта перечислением через запятую), заключите значение в двойные кавычки "рыжий,красный,зеленый".
  • Если двойные кавычки являются частью значения, заключите значение в пару двойных кавычек. Например, "Иван" в CSV-файле должно выглядеть следующим образом: ""Иван"".
  • Пустые строки в CSV-файле не допускаются.
  • Регистр не учитывается в заголовках, строковых значениях, логине.
  • Пароли вводятся с учетом регистра.
  • Логические значения могут быть представлены следующим образом: Y — истина; N — ложь.
  • Данные, расположенные в строке данных после последнего распознанного значения в строке заголовка, игнорируются. Например, если в строке заголовка файла указано 10 значений, а в строке данных упоминается 12 значений, последние 2 будут отброшены.
  • Элементы данных, значения которых не указаны, обрабатываются как пустые строки.
  • Формат времени должен быть установлен в формате языка сайта. Например: MM/DD/YYYY HH:MI:SS (для английского языка), либо DD.MM.YYYY HH:MI:SS (для русского языка).

Экспорт пользователей из системы

Если вы хотите выгрузить пользователей, то выполните следующее:

  1. Перейдите на страницу Список пользователей (Настройки > Пользователи > Список пользователей).
  2. Нажмите на кнопку Excel, чтобы выгрузить данные из списка.
  3. После выгрузки адаптируйте файл под требования CSV-формата. В частности:
    • удалите итоговые строки внизу таблицы;
    • в заголовке замените названия значений на правильные латинские названия в соответствии с Таблицей типов данных, приведенной ниже;
    • проверьте правильность заполнения полей данными в соответствии с Таблицей типов данных, приведенной ниже. (Например, значения пола должны быть указаны M и F, а не М и Ж).
    4. Таблица типов данных

    В таблице приведены все типы данных и указан признак обязательно заполнения каждого поля.

    Значение | Тип данных | Обязательность | Комментарии
ACTIVE | boolean (логический) | Нет, по умолчанию - Да (истина) | Активен
LOGIN | string (строка) | Нет, по умолчанию автоматически генерируется | Логин (мин. 3 символа)
PASSWORD | string (строка) | Нет, по умолчанию автоматически генерируется | Пароль (мин. 6 символов). Если для группы пользователей в форме редактирования группы на закладке Безопасность изменён параметр Минимальная длина пароля, то возможно, что импорт будет производиться, ошибки система выдавать не будет, но пользователи добавляться не будут.
NAME | string (строка) | Да | Имя
LAST_NAME | string (строка) | Да | Фамилия
SECOND_NAME | string (строка) | Нет, по умолчанию не задано | Отчество
EMAIL | string (строка) | Нет, по умолчанию указан e-mail администратора | E-mail. Если поле не используется необходимо отключить опцию Проверять E-mail на уникальность при регистрации в настройках Главного модуля на закладке Авторизация.
DATE_REGISTER | date (дата) | Нет, по умолчанию текущая дата | Дата регистрации
LID | string (строка) | Нет | ID сайта по умолчанию для уведомлений
ADMIN_NOTES | string (строка) | Нет | Заметки администратора
EXTERNAL_AUTH_ID | string (строка) | Нет | Код источника внешней авторизации
XML_ID | string (строка) | Нет | ID пользователя для связи с внешними источниками (например, ID пользователя в какой-либо внешний базе)
Личные данные | Тип данных | Обязательность | Комментарии
PERSONAL_GENDER | string (строка) | Нет | Пол. M – муж.; F- жен.
PERSONAL_BIRTHDAY | date (дата) | Нет | В формате даты
PERSONAL_CITY | string (строка) | Нет | Город
PERSONAL_STATE | string (строка) | Нет | Область, район
PERSONAL_ZIP | string (строка) | Нет | Почтовый индекс
PERSONAL_WWW | string (строка) | Нет | Персональный сайт
PERSONAL_PROFESSION | string (строка) | Нет | Профессия
PERSONAL_NOTES | string (строка) | Нет | Персональные заметки
PERSONAL_ICQ | string (строка) | Нет | Номер ICQ
PERSONAL_PHONE | string (строка) | Нет | Домашний телефон
PERSONAL_PHOTO | string (строка) | Нет | Фото. Путь указывается относительно папки, указываемой в настройках импорта (поле Путь к картинкам относительно корня сайта), или относительно корня сайта, но при пустом значении поля Путь к картинкам относительно корня сайта
PERSONAL_FAX | string (строка) | Нет | Факс
PERSONAL_MOBILE | string (строка) | Нет | Мобильный номер
PERSONAL_PAGER | string (строка) | Нет | Пейджер
PERSONAL_STREET | string (строка) | Нет | Улица
PERSONAL_MAILBOX | string (строка) | Нет | Почтовый ящик
Работа | Тип данных | Обязательность | Комментарии
WORK_COMPANY | string (строка) | Нет | Название компании
WORK_DEPARTMENT | string (строка) | Нет | Название подразделения
WORK_POSITION | string (строка) | Нет | Должность
WORK_WWW | string (строка) | Нет | Рабочий сайт
WORK_PHONE | string (строка) | Нет | Телефон
WORK_FAX | string (строка) | Нет | Факс
WORK_PAGER | string (строка) | Нет | Пейджер
WORK_STREET | string (строка) | Нет | Улица
WORK_MAILBOX | string (строка) | Нет | Почтовый ящик
WORK_CITY | string (строка) | Нет | Город
WORK_STATE | string (строка) | Нет | Область, район
WORK_ZIP | string (строка) | Нет | Почтовый индекс
WORK_PROFILE | string (строка) | Нет | Направление деятельности компании
WORK_LOGO | string (строка) | Нет | Фото. Путь указывается относительно папки, указываемой в настройках импорта (поле Путь к картинкам относительно корня сайта), или относительно корня сайта, но при пустом значении поля Путь к картинкам относительно корня сайта
WORK_NOTES | string (строка) | Нет | Рабочие заметки
UF_* | string (строка) | Нет | Пользовательское свойство, созданное администратором. Свойство должно быть обязательно создано до импорта пользователей.
IBLOCK_SECTION_NAME_* | string (строка) | Нет | Привязка к инфоблоку. Доступно 5 уровней вложенности. В "1С-Битрикс: Корпоративный портал" позволяет сразу развести сотрудников по подразделениям. * обозначает уровень вложенности подразделения. (т.е. если подразделение верхнего уровня, то IBLOCK_SECTION_NAME_1, следующего IBLOCK_SECTION_NAME_2 и т.д.). В столбце значений указать название подразделения. На втором шаге импорта нужно указать Привязать пользователей к разделам информационного блока: Подразделения.

    Важно! Для импорта пользователей из CSV-файла минимально необходимое условие - это указание имени (NAME) и фамилии пользователя (LAST_NAME).

    Пример CSV-файла

    LAST_NAME,NAME,LOGIN,PASSWORD,EMAIL
Иванов,Василий,vivanov,Password1,vivanov@company.ru
Кузнецов,Владимир,vkuznetsov,Password2,vkuznetsov@company.ru
Романова,Ольга,oromanova,Password3,oromanova@company.ru
Синицына,Елена,esinitsyna,Password4,esinitsyna@company.ru
Тихомиров,Илья,itihomirov,Password5,itihomirov@company.ru
Басманов,Константин,kbasmanov,81QE1RO98M,kbasmanov@company.ru
Галкина,Екатерина,egalkina,D0O4IAYOX0,egalkina@company.ru
Королев,Михаил,mkorolev,CDUEND3SMX,mkorolev@company.ru
Матвеева,Ирина,imatveeva,GCH425XAM6,imatveeva@company.ru
Орлов,Кирилл,korlov,ZD3PZHP2E7,korlov@company.ru

    Чтобы гарантировать отсутствие ошибок в ходе импорта, проверьте, что данные в файле соответствуют формату, указанному в начале этой главы. Проверить правильность формата файлов можно, открыв CSV-файл в MS Excel, и просмотреть результат:

    • Проверьте заголовки данных.
    • Проверьте, что длина пароля для учетных записей, которые необходимо импортировать, составляет не менее 6 знаков.
    • Проверьте, что длина логина не менее 3 символов.

    После проверки CSV-файла можно приступать к импорту.

Выполнение процедуры импорта

В форме импорта пользователей в качестве источника данных выберите CSV-файл и нажмите кнопку Далее.

Заполните поля второго шага импорта (закладка Параметры импорта):

Настройка параметров импорта

  • Файл данных – укажите путь до CSV-файла.
  • Разделитель полей – укажите разделитель, который использовался в файле.
  • Привязать пользователей к группам – выберите группу (группы с помощью Ctrl), к которой нужно привязать пользователей из файла.
  • Путь к картинкам относительно корня сайта – путь к папке с картинками, относительно которой будут указаны пути значений PERSONAL_PHOTO и WORK_LOGO. Если поле пустое, то в значениях PERSONAL_PHOTO и WORK_LOGO необходимо указать полный путь относительно корня сайта.
  • Привязать пользователей к разделам информационного блока – выберите инфоблок, к которому будут привязаны пользователи, имеющие данные в значении IBLOCK_SECTION_NAME_*. Указать можно только один инфоблок. Если один и тот же пользователь должен быть привязан к разным инфоблокам, то привязку нужно осуществить впоследствии вручную.
  • Разрешить пользователям авторизовываться через LDAP-сервер – укажите имя сервера, через который будет проводиться авторизация. При необходимости можно перейти к созданию сервера сразу с этого шага по ссылке Создать.
  • Оповестить пользователя, если был указан e-mail - оповещать пользователей о регистрации на сайте с помощью выбранного шаблона, если в CSV-файле был указан e-mail.
  • Игнорировать пользователей, логин которых уже существует в системе - укажите эту опцию, чтоб при импорте не добавлялись пользователи с логинами, которые уже существуют в системе.

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

Просмотр импортированных данных

Для просмотра импортированных данных в административном разделе перейдите на страницу Список пользователей (Настройки > Пользователи > Список пользователей). Откроется таблица со всеми пользователями системы.

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


Импорт пользователей из LDAP-directory
111 / 278

Импорт пользователей из LDAP-directory

Для добавления целого списка пользователей в систему служит специальная страница административного раздела Импорт пользователей (Настройки > Пользователи > Импорт пользователей).

Для импорта пользователей из Active Directory / LDAP выполните следующее:

  1. На странице Импорт пользователей в качестве источника данных выберите Active Directory / LDAP и нажмите кнопку Далее.
  2. На втором шаге импорта (закладка Параметры импорта) в выпадающем списке выберите сервер , который будет использован для импорта.После выбора сервера в форме появятся импортируемые поля. Снимите флажки с дополнительных полей, которые не нужно импортировать.

    Настройка параметров импорта

  3. Нажмите кнопку Далее. Мастер перейдет к третьему шагу. Будет автоматически произведен импорт, система сообщит об его завершении и количестве добавленных записей.

    4. Примечание: Если пользователь заблокирован и существует на сайте, то его данные обновляются при импорте из AD/LDAP. Если пользователь неактивен и на сайте не существует, то он не импортируется на сайт.


Безопасная авторизация
112 / 278

Штатный инструмент безопасной авторизации

Пароли для большинства сайтов передаются в открытом виде, если не используется SSL . Отказ от использования SSL связан в большинстве случаев с административным фактором. Тем не менее проблему передачи паролей и логинов в открытом виде надо решать. Это можно сделать с помощью штатной функции Безопасная авторизация.

Безопасная авторизация - функция, обеспечивающая зашифрованную передачу пароля пользователя. Пароли пользователей хешируются по алгоритму SHA-512, но шифрование пароля не является заменой SSL. Безопасная авторизация защищает от перехвата пароля только при прослушивании трафика.

Если у злоумышленника есть возможность изменять трафик, то шифрование не поможет. При разработке функции исходили из того, что изменить трафик сложнее, чем прослушать его (тот же открытый WiFi). Более того, шифрование паролей не защищает от перехвата сессии, но у сессии есть свои механизмы защиты (привязка к IP, частое изменение кода сессии). В целом можно сказать, что уровень защиты повысился, но лучше использовать SSL.

Подключение

Подключается Безопасная авторизация в настройках главного модуля на закладке Авторизация:

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

По нажатию на Сгенерировать ключ происходит генерация ключа RSA .

Размер ключа зависит от библиотек, установленных на сервере. По умолчанию используется модуль PHP openssl, который создаёт 1024-битный ключ. Его и рекомендуется использовать. Если модуль не установлен, то возможно использование bcmath с генерацией 512-битного ключа. Если нет ни того, ни другого модуля, включить шифрование нельзя.

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

Внимание! На браузерах клиентских компьютеров должно быть разрешено использование Javascript.

Алгоритм работы

  1. Вместе с формой авторизации клиенту передается открытый ключ.
  2. Перед отправкой формы авторизации, Javascript перехватывает отправку, зашифровывает пароль, с использованием открытого ключа, и отправляет на сервер.
  3. Сервер принимает шифротекст, расшифровывает его с использованием секретного ключа, и проводит аутентификацию пользователя.


Пример настройки прав пользователей
113 / 278

Распространенная ситуация: каждый из редакторов сайта должен отвечать за строго определенный его раздел или функционал. При этом редактор сайта не должен иметь возможность изменить что-либо в неподвластной ему части сайта.

Для решения данной задачи администратору сайта необходимо настроить права доступа соответствующим образом. Разберем это на примере (организация доступа к сайту по разделам).


Постановка задачи
114 / 278

Пусть у нас имеется сайт производственной компании, на котором помимо продажи продукции и списка оказываемых услуг выводится новостная лента фирмы, а также информация о ней в соответствующем разделе:

Нажмите на рисунок, чтобы увеличить

Постановка задачи

Распределение обязанностей:

  • администраторы интернет-магазина отвечают за размещение информации о продаваемой мебели и оказываемых услугах,
  • контент-менеджеры - за наполнение новостной ленты,
  • отдельный сотрудник - за статическую информацию о компании (история, вакансии и пр.),
  • просмотр информации о продукции, услугах и компании доступен всем посетителям,
  • Новостную ленту видят все посетители, но детальный просмотр новости доступен только подписчикам и администрации магазина.
  • Администраторы интернет-магазина могут добавлять, но не изменять или удалять новости.


Наполнение каталога товаров и услуг
115 / 278

Наполнение каталога товаров и услуг

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

В параметрах компонента Каталог посмотрите, из какого инфоблока берутся данные о продукции:

Нажмите на рисунок, чтобы увеличить

Теперь перейдите в административную часть сайта, на страницу настройки параметров инфоблока Контент > Информ. блоки > Типы информ. блоков > Товары и услуги > [s1]Продукция, закладка Доступ и выставьте права доступа указанным на скриншоте образом:

Выполните аналогичные действия для инфоблока услуг компании.


Наполнение новостной ленты
116 / 278

Для настройки управления новостной лентой предстоит настроить компонент и информационный блок.

Настройка компонента

В публичной части сайта перейдите в раздел Новости. Нажмите кнопку Изменить страницу и дважды щелкните по значку комплексного компонента Новости .

В открывшейся форме настроек комплексного компонента Новости перейдите к группе полей Дополнительные настройки:

Нажмите на рисунок, чтобы увеличить

Поставьте галочку в поле Использовать дополнительное ограничение доступа , после чего появится список Группы пользователей, имеющие доступ к детальной информации. Зажав клавишу Ctrl выделите в нем следующие группы:

  • Администраторы
  • Подписчики
  • Администраторы интернет-магазина
  • Контент-редакторы

Сохраните внесенные изменения.

Настройка информационного блока

Перейдите в административную часть и перейдите к закладке Доступ формы настроек инфоблока новостей. С помощью расширенного режима управления правами инфоблока надо задать право доступа для администраторов интернет-магазина Добавление:

Нажмите Сохранить для применения внесенных изменений.


Права на изменение статических страниц
117 / 278

Дать права на редактирование - означает выполнить последовательность действий по настройке различных параметров системы.

Общий доступ на редактирование

Дадим права доступа на редактирование информации о компании и контактах сотруднику с именем Даша, изначально не имеющей доступ к административному разделу сайта.

Перейдите в раздел Компания и нажмите Изменить раздел и выберите пункт меню Доступ к разделу .

В открывшемся окне измените право доступа для контент-редакторов на Чтение и нажмите Добавить право доступа.

В категории Пользователи поиском найдите сотрудника Дашу , кликните по ее имени левой кнопкой мыши и нажмите Выбрать, окно закроется, после чего укажите право доступа к разделу для Даши как Запись:

Произведите аналогичные действия для раздела Контакты и сохраните внесенные изменения.

Редактирование конкретных разделов

Чтобы Даша могла воспользоваться своим правом записи для раздела Компания и Контакты, ей необходимо иметь право доступа на чтение к папке /bitrix/admin . Задать право доступа для папки можно для группы пользователей , поэтому перейдем на страницу административного раздела Настройки > Пользователи > Группы пользователей, и, нажав на кнопку контекстной панели Добавить группу, создадим группу Редакторы:

Заполните поля, отметьте галочкой пользователя Даша как участника данной группы и сохраните данную группу.

Затем в административном разделе пройдите на страницу Контент > Структура сайта > Файлы и папки > bitrix и выберите в меню действий папки admin пункт Права на доступ продукта . Для группы Редакторы должно быть установлено право Чтение.

Доступ к файловой структуре

Для редактирования страниц сайта необходимо иметь доступ к файловой структуре. Чтобы его задать для нашей созданной группы, в административном режиме перейдите на страницу Настройки > Настройки продукта > Настройки модулей > Управление структурой, закладка Доступ:

Для редакторов установите право доступа Редактирование файлов и папок и нажмите Сохранить.

Теперь пользователь Даша может редактировать страницы раздела Компания и Контакты как из административной, так и публичной части сайта.


Если пропадает авторизация пользователя
118 / 278

Если пропадает авторизация пользователя

Возможные причины проблемы:

  1. Лишние переносы строк (или иные символы) в скриптах конфигурации.

    Необходимо убедиться, что в коде файлов dbconn.php, init.php и after_connect.php, расположенных в папке bitrix/php_interface, не содержится переносов строк перед "<?" и после "?>".
  2. Файлы с сессиями продукта создаются, но PHP не хватает прав, чтобы к ним обратиться.

    Попробуйте в файле /bitrix/php_interface/dbconn.php закомментировать строку:

    //@umask(~BX_DIR_PERMISSIONS);
  3. Установлен лимит времени на бездействие пользователя, при превышении которого сессия удаляется.

    Вам необходимо в настройках группы пользователя на вкладке Безопасность увеличить значение Время жизни сессии (минут).
    Значение по умолчанию можно изменить в файле php.ini (Bitrix Environment\Apache2\zendserver\etc): параметр session.gc_maxlifetime.
  4. Значение параметра Маска сети для привязки сессии в настройках безопасности группы пользователей.

    Если оно равно, например, 255.255.255.255, то это означает, что при изменении IP пользователя авторизация будет сброшена.
  5. Значение параметра session.cookie_domain в файле php.ini на сервере.

    Если оно задано - убедитесь, что оно соответствует URL вашего сайта. Если значение параметра session.cookie_domain равно www.site.ru, а Вы обращаетесь к системе по URL site.ru, то в этом случае сессия не будет сохранена, и, соответственно, авторизация не сохранится.
    Для решения проблемы необходимо установить в настройках PHP корректное значение параметра session.cookie_domain.
  6. Неверно прописан домен в настройках главного модуля и для сайта отдельно.

    Проверьте значение поля URL сайта на странице административного режима Настройки > Настройки продукта > Настройки модулей > Главный модуль.
    Проверить значение поля URL сервера можно, открыв настройки нужного сайта на странице административного раздела Настройки > Настройки продукта > Сайты > Список сайтов.

    Примечание: также одной из причин может быть некорректное значение в параметрах сайта поля Путь к корневой папке веб-сервера для этого сайта, либо Доменное имя. Доменное имя можно сменить или удалить путем внесения изменений в файл /hosts.
  7. При переносе сайта не скопировался файл /.access.php.

    В данном файле хранятся права групп пользователей к сайту, и если данного файла нет, то для всех пользователей право доступа устанавливается как Запрещен.

    Проблема решается одним из способов:

    • вам надо на странице административного раздела Контент > Структура сайта > Файлы и папки в меню действий корневой папки сайта выбрать пункт Свойства папки и на вкладке Доступ установить для группы Все пользователи (в том числе неавторизованные) право Чтение;
    • в корневую папку сайта загрузить файл .access.php со следующим содержанием:
      <? $PERM["/"]["*"]="R"; ?>
  8. При многосайтовости вас выкидывает на форму авторизации при переходе по публичным страницам сайта.

    Проверьте содержимое файла .access.php на идентичность следующему коду:

    <?
$PERM["/"]["*"]="R";
?>

  9. Авторизация не учитывается на вашем домене.

    На закладке Авторизация страницы настроек главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль) поставьте галочку в поле Распространять авторизацию на все домены.
  10. Проблема в работе сервера (нужна поддержка сессий в php, должна быть указана папка сохранения сессий и права на запись в эту папку).

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

Примечание: если работа в административном режиме прерывается появляющейся формой авторизации, то чтобы дать себе возможность что-то поправить в настройках сайта, после авторизации не совершайте никаких действий порядка 10-30 секунд, и, возможно, форма авторизации не появится.


Регистрация по номеру телефона
119 / 278

Регистрация по номеру телефона

Начиная с версии 18.5.0, в "1С-Битрикс: Управление сайтом" появились возможность регистрироваться и восстанавливать пароль по СМС. Теперь при регистрации наравне с почтовым ящиком можно использовать и номер мобильного телефона.

Рассмотрим пошагово, как настроить этот полезный функционал:

  1. Сначала установите и настройте модуль Служба сообщений, привязав одну из служб сообщений.
  2. Далее укажите в настройках Главного модуля службу отправки СМС по умолчанию и выберите соответствующий номер отправителя (Настройки >Настройки продукта > Настройки модулей > Главный модуль (Почта и СМС)):

  3. И в завершении перейдите на вкладку Авторизация и разрешите регистрацию пользователей по номеру телефона, при необходимости сделав это поле обязательным (Настройки >Настройки продукта > Настройки модулей > Главный модуль (Авторизация)):

    Подробнее о настройке остальных полей (по желанию) можете прочитать в документации по продукту.

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

Готово! Теперь регистрация пользователей будет осуществляться по номеру мобильного телефона.

Вид в публичном разделе
  1. Форма регистрации:

  2. Восстановление пароля:

Документация по теме:

  • Настройки главного модуля (закладка "Почта и СМС")
  • Настройки главного модуля (закладка "Авторизация")


Как восстановить пароль администратора
120 / 278

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

Способ первый

  1. Пароль восстанавливается для пользователя с ID=1 (т.к. это первый пользователь, зарегистрированный в системе, и в связи с этим обладающий правами администратора). Поэтому для начала вспомните, какой логин был у этого пользователя (по умолчанию устанавливается admin).
  2. Далее сохраните следующий скрипт в php-файл c любым именем:
    <?
require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");
echo $USER->Update(1,array("PASSWORD"=>'Bitrix*123456'));
echo $USER->LAST_ERROR;
require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");
?>
  3. Закачайте созданный скрипт через FTP в корневой каталог сайта www/имя сайта/... и откройте его в браузере . После этого у пользователя с ID=1 (по умолчанию - администратор) установится пароль: Bitrix*123456

    Примечание: В коробочной версии Битрикс24 файл со скриптом необходимо разместить в папке (например: www/имя портала/pub или другой), а не в корневой каталог.

  4. Теперь авторизуйтесь на сайте под прежним логином (см. п. 1) и стандартным паролем (см. п. 3). В панели управления установите свой новый пароль.

Если доступ для неавторизованных пользователей закрыт, то перед процедурой восстановления пароля надо поправить файл .access.php в корне сайта, заменив:

$PERM["/"]["*"]="D";
на:
$PERM["/"]["*"]="R";

Внимание! Обязательно удалите залитый файл со скриптом после восстановления пароля, а также верните все внесенные изменения!

Способ второй

  1. Cохраните следующий скрипт в php-файл c любым именем:
    <?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

global $USER;
$USER->Authorize(1);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>
  2. Закачайте созданный скрипт через FTP в корневой каталог сайта www/имя сайта/... и откройте его в браузере.
  3. Зайдите на сайт (при этом ни логин, ни пароль не будут запрашиваться), и в административном разделе для своей учетной записи установите пароль.

Внимание! Обязательно удалите залитый файл со скриптом после восстановления пароля!

Документация по теме

Изучите дополнительно:

  • Как закрыть доступ к сайту другому администратору


Как создать форму авторизации (регистрации) на простых компонентах
121 / 278

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

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

  • /auth/index.php - существующая страница раздела /auth;

    • Создаваемые страницы:
  • /auth/registration.php - страница регистрации;
  • /auth/forget.php - страница забытого пароля (восстановления пароля);
  • /auth/personal.php - страница профиля (личных данных пользователя).

  1. Сначала нужно отключить запрос стандартной авторизации. Откроем страницу /auth/index.php (Контент > Структура сайта > Файлы и папки > auth) в режиме редактирования PHP.

    Удалим строку define("NEED_AUTH", true); (или можно её отключить, прописав в начале //):

  2. Далее нужно удалить всю имеющуюся информацию на странице авторизации (/auth/index.php) и разместить два компонента:
    • Форма авторизации (system.auth.form)
    • Форма подтверждения регистрации (system.auth.confirmation)

    В дополнительных настройках компонента Форма авторизации (system.auth.form) укажем адреса трех создаваемых страниц (регистрации, забытого пароля и профиля):

    Компонент Форма подтверждения регистрации (system.auth.confirmation) можно не настраивать.

  3. Теперь приступим, собственно, к созданию трех необходимых страниц и размещению на них соответствующих компонентов.
    • /auth/registration.php - страница регистрации;

      Разместим на этой странице компонент Настраиваемая регистрация (main.register). При желании можно в настройках этого компонента выбрать поля, которые должны отображаться в форме, а также обязательные для заполнения поля.

    • /auth/forget.php - страница забытого пароля (восстановления пароля);

      На этой странице нужно разместить системный компонент system.auth.forgotpasswd, но сделать это можно только не совсем привычным способом.

      Сначала разместим компонент Форма авторизации (system.auth.form).

      Теперь в административном разделе изменим эту страницу (Контент > Структура сайта > Файлы и папки > auth) в режиме редактирования PHP. Вместо system.auth.form пропишем system.auth.forgotpasswd в соответствующей строке. Должно получиться так:

      После этого на странице /auth/forget.php будет подключен компонент восстановления пароля.

    • /auth/personal.php - страница профиля (личных данных пользователя).

      Разместим на этой странице компонент Параметры пользователя (main.profile). В настройках этого компонента можно выбрать поля, которые будут отображаться в форме.

  4. Теперь в настройках Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль) укажем Страницу регистрации (для системного компонента авторизации): /auth/registration.php

  5. Наконец, пропишем адреса созданных страниц в настройках компонента, выводящего ссылки на авторизацию и личный кабинет. В данном случае, это sale.basket.basket.line :

Готово! Форма регистрации и авторизации создана, и в настройках используемых компонентов можно выбрать те поля, которые нужны именно вам.

Документация по теме:

  • Как изменить стандартную форму авторизации (регистрации)? (способ с кастомизацией компонента и изменением шаблона сайта)
  • Компонент Форма авторизации (system.auth.form)
  • Компонент Форма подтверждения регистрации (system.auth.confirmation)
  • Компонент Настраиваемая регистрация (main.register)
  • Компонент Параметры пользователя (main.profile)
  • Компонент Ссылка на корзину (sale.basket.basket.line)


CAPTCHA
122 / 278

CAPTCHA (от англ. "Completely Automated Public Turing test to tell Computers and Humans Apart" - "полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей") - компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Основная идея теста: предложить пользователю такую задачу, которую с лёгкостью может решить человек, но которую несоизмеримо сложнее решить компьютеру. В основном это задачи на распознавание символов.

В этой главе вы узнаете, как оградить свой сайт от ботов , просто настроив CAPTCHA.


Настройка CAPTCHA
123 / 278

Внимание! Для работы CAPTCHA на сервере должна быть установлена библиотека FreeType library и Библиотека GD (функции imagecreatetruecolor и imagejpeg). Проверить их наличие можно на странице Проверка системы .

Настройка CAPTCHA

Форма Настройка CAPTCHA (Настройки > Настройки продукта > CAPTCHA) предназначена для настройки защиты от автоматических регистраций .

Нажмите на рисунок, чтобы увеличить

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

CAPTCHA необходимо настраивать так, чтобы исключить, по возможности, автоматическое распознавание. Но необходимо искать компромисс между защитой от спама и неудобством для посетителей. Рекомендуемые параметры:

  • прозрачность текста в процентах - 40-50%,
  • угол отклонения от вертикали - от -30 до 30,
  • добавить нелинейные искажения,
  • шрифт лучше поменять на bitrix_captcha.ttf или какой-то другой не очень распространенный.

Чтобы при этом пользователи не сильно страдали, допустимые символы можно ограничить только цифрами.

Ниже даны примеры CAPTCHA, затрудняющие автоматическое распознавание:


Подключение CAPTCHA
124 / 278

После настройки основных параметров необходимо подключить CAPTCHA. Существует несколько вариантов подключения:

В настройках
модуля

В ряде модулей (Главный, Блоги, Wiki и других) CAPTCHA подключается прямо в настройках модуля. Например, опция Использовать CAPTCHA при регистрации в настройках Главного модуля позволяет включить использование CAPTCHA при регистрации новых пользователей:

Настройки главного модуля

В параметрах
компонента

CAPTCHA возможно подключить и для отдельных компонентов , например, Добавление элементов инфоблока (комплексный компонент), Каталог (комплексный компонент) и других. Рассмотрим пример использования CAPTCHA в компоненте Форма обратной связи, где опция Использовать защиту от автоматических сообщений (CAPTCHA) для неавторизованных пользователей позволяет включить CAPTCHA только для данного компонента:

Параметры компонента "Форма обратной связи"

Настройка показа
в формах

Использование CAPTCHA в формах создания/редактирования ограничивается в политике безопасности группы пользователей. Опция Количество попыток ввода пароля до показа CAPTCHA позволяет задать количество неправильных попыток ввода пароля, после которых будет в форме авторизации выводиться CAPTCHA для пользователя из соответствующей группы:

Внимание! Если в шаблоне компонента не предусмотрен вывод CAPTCHA, то возможна ситуация, когда система (при малом значении в поле Количество попыток ввода пароля до показа CAPTCHA) как бы "забывает" пароль пользователя не давая ему авторизоваться в системе. При этом при входе в административную часть (ваш_сайт/bitrix/admin/) авторизация осуществляется.

Это происходит потому, что при последовательном неправильном наборе пары логин/пароль и при малом значении в поле Количество попыток ввода пароля до показа CAPTCHA) система ждёт ввода верного кода CAPTCHA. А пользователь этого не делает, так как шаблон не предусматривает вывод CAPTCHA.

В своих скриптах, модулях
или компонентах

Для начала создайте саму CAPTCHA :

01      <?include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");
02	$cpt = new CCaptcha();
03	$captchaPass = COption::GetOptionString("main", "captcha_password", "");
04	if(strlen($captchaPass) <= 0)
05	{
06	    $captchaPass = randString(10);
07	    COption::SetOptionString("main", "captcha_password", $captchaPass);
08	}
09	$cpt->SetCodeCrypt($captchaPass);
10	?>

После этого выводите в нужном месте формы три элемента: скрытое поле со сгенерированным кодом, поле для ввода капчи пользователем и саму картинку.

<input name="captcha_code" value="<?=htmlspecialchars($cpt->GetCodeCrypt());?>" type="hidden">
<input id="captcha_word" name="captcha_word" type="text">
<img src="/bitrix/tools/captcha.php?captcha_code=<?=htmlspecialchars($cpt->GetCodeCrypt());?>">

В скрипте, на который сабмитится форма, добавьте проверку:

01      <?
02      if(!$APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"]))
03	{
04	    // Неправильное значение
05	}
06	else
07	{
08	    // Правильное значение
09	}
10	?>

Документация по теме

  • CAPTCHA


AD/LDAP интеграция
125 / 278

При проведении интеграции продуктов компании «1С-Битрикс» с информационной системой организации часто возниканет потребность в разграничении прав сотрудников компании на доступ к ресурсам корпоративного портала или сайта и его управлению. Стандартным решением данной задачи является создание нескольких групп пользователей Bitrix Framework с различным уровнем и распределение сотрудников по этим группам.

Модуль AD/LDAP интеграция позволяет исключить повторные операции и сократить затраты времени и труда на управление группами пользователей корпоративной информационной системы. С его помощью можно установить соответствие между группами пользователей корпоративной сети и группами пользователей Bitrix Framework, что позволяет организовать централизованное управление всеми группами пользователей корпоративной информационной системы.


Назначение и возможности модуля
126 / 278

Что может модуль LDAP

AD/LDAP модуль реализован с учетом особенностей работы протоколов LDAP и AD , один из которых должен быть установлен на корпоративном сервере.

В основе работы перечисленных протоколов лежит принцип хранения информации в виде записей, обладающих набором атрибутов и хранящихся в базе данных с древовидной иерархической структурой. Таким образом, при настройке на сервере локальной вычислительной сети LDAP или AD протокола информация о группах пользователей будет представляться в следующем виде:

Используя данную структуру хранения данных, модуль AD/LDAP позволяет настраивать соответствие групп пользователей корпоративной сети группам пользователей Bitrix Framework.

Модуль позволяет подключаться к нескольким AD. Обращение к AD серверу происходит при каждой авторизации пользователя, либо при импорте пользователей.

Таблица соответствий

Соответствие групп пользователей задается в специальной таблице соответствий в административном разделе Bitrix Framework. При этом возможно несовпадение имен групп пользователей Bitrix Framework с именами групп пользователей корпоративной сети. Например, группе пользователей корпоративной сети Techsupport, к которой относятся сотрудники технической поддержки корпоративной сети, может быть поставлена в соответствие группа пользователей Techsupport stuff, созданная в Bitrix Framework. В результате сотрудники службы технической поддержки корпоративной сети смогут выполнять обязанности сотрудников службы технической поддержки Bitrix Framework.

Группы пользователей внутри компании обладают правами на доступ к определенным ресурсам корпоративной сети, а сопоставленные им группы пользователей в Bitrix Framework обладают правами на доступ к ресурсам продукта «1С-Битрикс». Например, группа пользователей Techsupport наделена правами на доступ к почтовому серверу сети, а группа пользователей Bitrix Framework Techsupport stuff обладает правами на доступ к модулю Техническая поддержка.

В соответствии с приведенным выше примером, пользователь, относящийся к группе Techsupport корпоративной сети, при попытке авторизации в системе Bitrix Framework будет добавлен в группу пользователей Techsupport stuff системы Bitrix Framework. После чего в системе автоматически будет заведен аккаунт данного пользователя, на основе данных, хранящихся на корпоративном сервере.

Пользователь в нескольких группах

Допустима привязка пользователя к одной, двум или более группам. В системе могут быть настроены группы пользователей, для которых не установлено соответствие с группами пользователей в корпоративной сети. Принадлежность пользователей к такой группе задается вручную администратором системы. Все изменения аккаунта пользователя на корпоративном сервере будут автоматически учтены в аккаунте пользователя в системе Bitrix Framework во время его следующей авторизации. При этом изменения затронут пользователей только тех групп, для которых задано соответствие группам пользователей корпоративной сети.

Итак:

Модуль AD/LDAP позволяет:

  • интегрировать проекты, созданные на Bitrix Framework в корпоративную сеть;
  • Импортировать пользователей корпоративной сети в продукты Bitrix Framework;
  • настроить соответствие групп пользователей корпоративной сети и групп пользователей Bitrix Framework;
  • автоматически создавать аккаунт пользователя после его регистрации исходя из таблицы соответствий (данные для создания аккаунта запрашиваются из базы данных корпоративного сервера);
  • централизованно управлять изменениями аккаунтами пользователей системы через корпоративный сервер.

Модуль AD/LDAP интеграция так же позволяет использовать NTLM авторизацию . Чтобы ею воспользоваться, нужен веб-сервер IIS или Apache с модулем mod_ntlm или mod_auth_sspi.


Схема работы модуля
127 / 278

Как это работает

Общая схема работы модуля описывается следующей последовательностью действий:

  1. Пользователь проходит авторизацию в системе Bitrix Framework (вводится логин и пароль, используемые пользователем для авторизации в корпоративной сети);
  2. Система обращается к указанному в настройках AD/LDAP серверу и проверяет наличие пользователя с указанными данными (паролем и логином) в базе пользователей на корпоративном сервере:
    • если пользователя с такими данными в корпоративной сети не существует , то система запрещает вход;
    • если пользователь существует, то определяется группа пользователей корпоративной сети , к которой он относится, и сопоставленная ей группа пользователей Bitrix Framework (с помощью таблицы соответствий).
  3. Далее проверяется наличие аккаунта пользователя в системе:
    • если аккаунт не найден, то система получает данные о пользователе из базы данных корпоративного сервера и создает его аккаунт;
    • если аккаунт в системе уже был создан, т. е. пользователь уже авторизовался в Bitrix Framework, то система проверяет, были ли выполнены какие-либо изменения в профиле пользователя на корпоративном сервере. Если да, то соответствующие изменения выполняются и с профилем пользователя в Bitrix Framework.
  4. Пользователь получает разрешение на доступ к ресурсам Bitrix Framework и авторизуется. Права пользователя определяются в зависимости от настроек группы пользователей Bitrix Framework, к которой он был приписан.


Настройка модуля
128 / 278

Настройки

Перейдите на страницу Настройки модуля (Настройки > Настройки продукта > Настройки модулей > AD/LDAP интеграция).

Нажмите на рисунок, чтобы увеличить

Далее опишем поля, заполнение которых может вызвать затруднения.

  • Если используется NTLM авторизация, то установите флажок в поле Использовать NTLM авторизацию.

    Примечание: Для работы NTLM авторизации требуется выполнить настройку соответствующих модулей веб-сервера , а также задать домены для NTLM авторизации в настройках AD-серверов на сайте.

  • Если в силу каких-то причин для хранения логина пользователя вы используете другую переменную массива $_SERVER, то укажите эту переменную в поле Имя переменной PHP, в которой хранится логин пользователя NTLM. Учтите, что большинство модулей продукта используют именно переменную REMOTE_USER .
  • Если в локальной сети несколько LDAP-серверов, то в поле Сервер домена по умолчанию укажите тот, который используется для NTLM-авторизации.
  • Снятый флажок на опции Создавать новых пользователей при первой удачной авторизации при использовании протокола AD позволяет "зафиксировать" пользователей, имеющих доступ к сайту. Например, создается пять учетных записей, снимется флажок с опции и вход в систему имеют только указанные пять пользователей.
  • С помощью опции Создавать пользователя, если пользователь с таким логином уже существует указывается, будет ли создаваться второй пользователь, если при импорте обнаруживается пользователь с таким логином.
  • Также, при необходимости, настройте переадресацию NTLM авторизации на 8890 и 8891 порты.

Примечание: необходимо помнить, что компьютер, на котором размещен сервер Apache, должен быть включен в домен Windows.

Примечание: в некоторых случаях при работе с Internet Explorer старых версий возможны ситуации сбоя в работе продуктов "1С-Битрикс". Проблема выражается в сбое в работе кнопок в административной и публичных частях. Для решения этой проблемы добавьте в корневой файл .htaccess строку
SSPIPerRequestAuth On

Документация по теме:

  • Настройки модуля


Принадлежность пользователей к подразделениям на AD-сервере
129 / 278

Кто есть кто в иерархии компании

Необходимо специальным образом определить на AD-сервере принадлежность пользователей к подразделениям, иерархию подразделений компании, а также начальников подразделений. При импорте пользователей в продукты «1С-Битрикс», эта структура также может быть импортирована, при этом пользователям сразу назначаются нужные подразделения. Также, что более просто, можно задать одно фиксированное подразделение всем пользователям из AD.

Для задания структуры компании в AD используются всего 2 специальных атрибута пользователя :

  • department - символьное наименование подразделения, к которому относится данный пользователь.
  • manager - DN (Distinguished name, уникальный идентификатор в AD) пользователя, являющегося начальником данного.

На основании этой связи и строится иерархия компании:

  • Если начальник находится в другом подразделении, то это определяет связь между подразделениями: подразделение manager'а считается вышестоящим над данным. При этом текущий пользователь будет считаться начальником своего подразделения.
  • Если manager - в том же подразделении, то никаких дополнительных действий предпринято не будет, и это единственный способ явно указать, что пользователь сам не является начальником подразделения. Из чего можно сделать вывод, что для всех подчиненных в подразделении должен быть задан начальник из него же.
  • Если у пользователя не задано подразделение, но задан начальник, он считается принадлежащим тому же подразделению, что и начальник. Для начальника будут также действовать все те же правила и умолчания, так что такие "умолчательные" определения могут выстроиться в последовательную цепочку.
  • Если задано подразделение, но нет начальника - данное подразделение попадает в корень структуры компании, и пользователь сам будет его начальником.
  • Если же у пользователя нет ни подразделения, ни начальника, ему будет присвоено подразделение по умолчанию, задаваемое в настройках модуля.

Пример

Допустим, у нас существует следующая структура:

- Отдел 1
-- Начальник 1
-- Сотрудник 1
-- Отдел 2
   -- Начальник 2
   -- Сотрудник 2

Чтобы построилась такая иерархия, нужно чтобы у всех сотрудников корректно были заданы подразделения, в которых они работают (в атрибуте department), а также, чтобы у обоих сотрудников в поле manager был указан их непосредственный начальник (Начальник 1 и Начальник 2 соответственно). И самый важный момент, у Начальник 2 в атрибуте manager должен быть указан Начальник 1.


Регистрация сервера
130 / 278

Запись о сервере

Создание записи об AD/LDAP сервере выполняется в административном разделе Bitrix Framework, в которой указываются все необходимые сведения о сервере и соответствия групп пользователей.

Каждая запись регламентирует доступ к одному корню дерева каталогов. Если сведения о группах пользователей корпоративной сети хранятся в базах данных нескольких серверов или в нескольких базах данных одного сервера, то следует создать несколько записей, регламентирующих доступ к ним.

  1. Перейдите на страницу Active Directory/LDAP серверы (Настройки > AD/LDAP) и нажмите кнопку Добавить, расположенную на контекстной панели. Откроется форма создания новой записи.

  2. На закладке Сервер указываются сведения о корпоративном сервере и параметры доступа к базе данных групп пользователей, расположенной на нем. Опишем поля, заполнение которых может вызвать затруднения.

    Форма создания новой записи об AD/LDAP сервере

    • Домен для NTLM авторизации - используется для определения нужного AD/LDAP сервера при авторизации в виде домен\логин (задается на латинице), а также при автоматической NTLM авторизации (должно соответствовать домену организации, включая регистр).

      Такой вид будет указывать на конкретную запись, в соответствии с которой должен быть осуществлен поиск аккаунта пользователя на корпоративном сервере.

      Если имеется несколько LDAP-серверов, то использование этого поля становится необходимым, так как на разных серверах могут быть пользователи с одинаковым именем. В этом случае с помощью мнемонического имени будет определяться запись, указывающая на сервер и корень дерева каталогов, в котором следует искать аккаунт, используемый для его авторизации в Bitrix Framework.

      Если в настройках нескольких серверов указан один и тот же домен, то с версии 15.0 обращение происходит не к первому подходящему, а перебираются все подходящие сервера.

    • Сервер:порт - адрес и порт корпоративного сервера с базой данных групп пользователей (389 порт является стандартным для обращения к LDAP серверу).
    • Логин пользователя с правами доступа на чтение к дереву - укажите логин для выполнения административного входа на сервер в формате логин@домен или домен\логин.
    • Кнопка Проверить - для проверки введенных выше данных и установления пробного соединения с сервером. Если проверка произведена успешно , то сервер возвратит список доступных корней деревьев. Если же при проверке произошла ошибка, то вверху страницы будет выведена надпись красного цвета с указанием причины ошибки.
    • Корень дерева - укажите корень дерева каталогов, в котором будет осуществляться поиск бюджетов авторизуемых пользователей.
    • Максимальное количество объектов, возвращаемых при одном поиске - укажите максимальное количество записей , получаемых за один запрос.
  3. На закладке Настройка полей указываются значения параметров для схемы данных бюджетов пользователей, хранимых на сервере. Стандартные значения параметров как для LDAP, так и для AD сервера подставляются в поля формы автоматически. Выбор типа сервера осуществляется путем нажатия ссылки с соответствующим названием в заглавии раздела.

    Если вам необходимо добавить поля в группу Соответствие полей пользователя и атрибутов AD (LDAP) , то воспользуйтесь ссылкой [добавить…]. В настройках LDAP-сервера необходимо указывать минимально необходимые поля, такие как Активность, Имя, Фамилия, E-Mail адрес, т.е. поля которые необходимо постоянно переносить (синхронизировать из AD). Остальные поля можно настроить при импорте в форме импорта пользователей .

    Каждое из полей, добавленное в эту группу будет проверяться на изменения при синхронизации и, при несоответствии, изменяться на стороне продукта "1С-Битрикс". То есть, если пользователь изменил какое-либо поле в своем профиле, то при последующей синхронизации полю будет возвращено прежнее значение.

    Поэтому рекомендуется при первичном импорте пользователей добавить максимально возможное число полей, а после импорта, если используется периодическая синхронизация, удалить поля, которые не нуждаются в периодической проверке.

    Отделы и структура компании

    Эта секция отображается только при редактировании уже созданного подключения и если установлен модуль Intranet. Она позволяет настроить параметры импорта структуры компании в Bitrix Framework. Поясним некоторые поля.

    Значения параметров для LDAP сервера

    • Укажите Подразделение, внутрь которого будет импортирована структура компании с AD-сервера. Указание фиксированного места для импорта очень полезно, если в компании несколько филиалов, каждый со своим сервером. Тогда в структуре компании можно вручную создать подразделение для каждого филиала, и в настройках каждого сервера выбрать свое.

      Если выбрать нет, то структура будет импортироваться в корень дерева подразделений.

      Если при импорте имена подразделений в AD совпадут с существующими в системе - будут использованы существующие подразделения.

    • Используйте опцию Импортировать в структуру компании пользователей, у которых не указано подразделение для того, чтобы пользователи, у которых не указано подразделение в Active Directory, также импортировались в структуру Bitrix Framework. Импортироваться они будут в подразделение указанное в поле Название подразделения по умолчанию .
  4. На закладке Группы осуществляется загрузка групп пользователей корпоративной сети и Bitrix Framework в таблицу соответствий и задание соответствий этих групп.
    • Чтобы добавить названия групп пользователей в таблицу, нужно нажать кнопку Обновить список групп . После обновления списка групп пользователей в данном разделе отобразится таблица соответствий:

    Настройка соответствий групп

    • Соответствие задаётся выбором в поле Группа на удаленном сервере групп пользователей корпоративной сети и выбором соответсвующей группы пользователей Bitrix Framework в поле Локальная группа. Таким образом, в одной строке таблице будет размещена группа пользователей корпоративной сети и поставленная ей в соответствие группа пользователей Bitrix Framework.
    • Для удаления строки соответствия из таблицы, установите флажок в поле Удалить и нажать кнопку Применить.
    • В поле Отмеченные ниже группы не участвуют в импорте пользователей укажите группы, которые не должны участвовать в импорте, даже если они выбраны в качестве источника в колонке Группа на удаленном сервере.

      Если необходимо пользователей из одной и той же группы на сервере прописать в две разные локальные группы системы Bitrix Framework, то выберите эту группу в колонке Группа на удаленном сервере несколько раз и для каждой строки назначьте свои группы в колонке Локальная группа.

      Если в качестве Локальной группы в двух строках выбрана одна из имеющихся групп, а в Группах на удаленном севере – две разных, то в локальную группу добавятся только те пользователи, которые есть в обеих группах.

  5. Периодическая синхронизация баз настраивается на закладке Синхронизация:

    • Для активации полей настройки синхронизации поставьте флажок в поле Выполнять периодическую полную синхронизацию.
    • Значение в поле Период, каждые зависит от частоты, с которой изменяются профили сотрудников в вашей компании.
    • Введите атрибут LDAP атрибут с датой изменения для ведения лога изменений. (Или оставьте по умолчанию.)

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

  6. После сохранения запись будет добавлена в список на странице Active Directory/LDAP серверы.

    Для изменения или удаления записи нужно выбрать соответствующий пункт в меню действий выбранной записи.

Документация по теме:

  • Создание и редактирование сервера


NTLM авторизация
131 / 278

NTLM авторизация позволяет входить на сайт/портал без ввода логина/пароля (используя данные авторизации Windows на AD сервере).


Настройка NTLM авторизации со стороны продукта
132 / 278

Пошаговая настройка

  1. Зарегистрируйте в системе AD/LDAP-сервер .
  2. При регистрации сервера обязательно укажите значение в поле Домен для NTLM авторизации . Он должен полностью (включая регистр) совпадать с названием домена.

  3. В настройках модуля отметьте опцию Использовать NTLM авторизацию . Если в силу каких-то причин для хранения логина пользователя вы используете другую, не REMOTE_USER, переменную массива $_SERVER, то в поле Имя переменной PHP, в которой хранится логин пользователя NTLM измените имя переменной на нужное. Помните при этом, что большинство модулей продукта используют именно переменную REMOTE_USER .

    Если в локальной сети несколько LDAP-серверов, то в поле Сервер домена по умолчанию выберите тот, который используется для NTML-авторизации. Даже если LDAP-сервер один, то все равно желательно указать значение этого поля, чтобы сотрудникам не требовалось вводить домен при первом входе в Bitrix Framework.

  4. Настройте на NTLM авторизацию на серверах Apache и IIS .
  5. Произведите настройку браузеров сотрудников .

Документация по теме:

  • Настройка NTLM-авторизации (учебный курс "Виртуальная машина BitrixVM")
  • BitrixVM3.1 с поддержкой NTLM авторизации (блог)
  • Новая версия BitrixEnv4 и BitrixVM4 (Настройка NTLM авторизации пользователей) (блог)
  • NTLM авторизация в нескольких базах данных одного сервера AD (форум)

    Внимание! Статья предполагает изменение файлов ядра, это может привести к нестабильной работе, а также потери права на техническую поддержку.


Настройка NTLM-авторизации для Apache
133 / 278

Поддержка NTLM-авторизации по умолчанию включена в дистрибутив продукта. Для этого рекомендуется использовать виртуальную машину VMBitrix, в ней настройка окружения для NTLM-авторизации выполняется через меню.
Если вы не используете рекомендуемый компанией "1С-Битрикс" пакет, то вам необходимо в настройках вашего окружения сделать следующее:

Для Centos 6

  1. Загрузите модуль mod_auth_sspi.
  2. Скопируйте его в папку c:\<путь_до_папки>\apache\modules\.
  3. В файле httpd.conf добавьте строку:
    LoadModule sspi_auth_module modules/mod_auth_sspi.so.
  4. В файле .htaccess добавьте следующие строки:
    AuthName "My Intranet"
AuthType SSPI
SSPIAuth On
SSPIPackage NTLM
SSPIDomain MYDOMAIN
SSPIPerRequestAuth On
SSPIAuthoritative On
SSPIOfferBasic On
Require valid-user

    При использовании стандартного пакета Битрикс: Веб-окружение указанные строчки в этом файле необходимо не создавать, а раскомментировать.

Для Centos 7

  1. Загрузите модуль auth_ntlm_winbind_module и установите его:

  LoadModule auth_ntlm_winbind_module modules/mod_auth_ntlm_winbind.so
  2. Для SSL обязательно добавьте:

  LoadModule ssl_module modules/mod_ssl.so
  # httpd 2.4
  LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Для всех видов установки

  1. В строке SSPIDomain MYDOMAIN файла .htaccess смените MYDOMAIN на имя вашего домена.
  2. Сохраните внесенные изменения.


Настройка NTLM-авторизации для IIS
134 / 278

Настройка авторизации при использовании IIS сервера производится аналогично настройкам на Linux . Подразумевается что, IIS при этом уже настроен на работу с PHP.

Для включения поддержки NTLM-авторизации для IIS выполните следующие действия:

  1. Откройте Диспетчер служб IIS;
  2. Перейдите к нужному сайту в левой части диспетчера;
  3. Выберите Проверка подлинности в основной области диспетчера служб IIS;
  4. В открывшимся списке включите опцию Проверка подлинности Windows.

Далее нужно настроить порты: 8890 (для http) или 8891 (для https) и 80 (для http) или 443 (https).

Документация по теме:

  • Windows Authentication (www.iis.net)


Настройка NTLM модуля Linux для Битрикс
135 / 278

Как настроить NTLM для Linux вне BitrixVM

Если вы не используете Виртуальную машину BitrixVM или Linux (BitrixEnv), то вам необходимо настроить ваше окружение для работы с модулем AD/LDAP "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке". Для этого вам нужно выполнить действия:

  1. Добавить хост в домен. (Описания не будет, если вы работаете на собственном окружении, вы знаете как это сделать.)
  2. Задать настройки сервера Apache под выбранный сайт.
  3. Произвести настройки NTLM модуля вашего окружения.
  4. Произвести настройки "1С-Битрикс: Управление сайтом".

Если хост уже находится в домене, и на нем находится несколько сайтов, то создайте настройки Apache сервера для сайтов, у которых не включена авторизация в домене.

Важно:
  1. Нельзя подключить разные сайты к разным доменам, так как хост единовременно находится только в одном домене.
  2. Если на сайте не установлен модуль LDAP, такой сайт нельзя авторизовать через NTLM.

Настройка NTLM авторизации

Для настройки NTLM необходимо задать в настройках вашего окружения следующую информацию:

Что нужно сделать
Netbios domain name (TEST) | Netbios имя домена (по стандарту не может быть больше 15 символов);
Full domain name (TEST.LOCAL) | FQDN имя для домена (будет использовано как realm в настройках kerberos);
Domain password server | FQDN имя или IP адрес сервера авторизации;
Domain admin user name | пользователь в AD, обладающий правами добавления машин в AD;
Domain admin user password | пароль пользователя;
Enter site name (default) | для какого сайта необходимо создать настройки у apache.

После того как все опции введены, запустите команду по настройке системы. Выполнение может занять некоторое время. После успешного завершения настроек должна появится информация о доменных настройках хоста.

Теперь переходите к настройкам NTLM со стороны "1С-Битрикс: Управление сайтом".


Настройка браузеров сотрудников
136 / 278

Internet Explorer

Для успешной NTLM авторизации нужно, чтобы веб-сервер находился в зоне Local Intranet.

Нажмите на рисунок, чтобы увеличить

Mozilla Firefox

Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris на странице about:config)


Проблемы и решения
137 / 278

Частые проблемы и как их решить

  • После изменения профиля AD пользователя данные возвращаются в исходное значение
  • Для AD-пользователей не работает галка "Запомнить меня на этом компьютере"
  • Доступ к разделу Extranet без NTLM
  • Настройка авторизации на IIS

После изменения профиля AD пользователя данные возвращаются в исходное значение

Профиль пользователей, авторизующихся через Active Directory, при каждом входе синхронизируется с сервером AD, при этом все локально сделанные настройки перезаписываются данными, указанными на сервере. Изменить такое поведение можно:

  • либо установив для данного пользователя локальную авторизацию (для этого нужно вручную задать ему тот же пароль, что и в AD и изменить Тип авторизации на Внутренняя проверка на странице редактирования пользователя ). Тогда авторизация пользователя будет проходить не через AD, а локально;
  • либо внести изменения данных пользователя не на сайте, а в AD. Тогда на сайте они тоже автоматически изменятся при синхронизации с сервером;
  • либо уменьшить количество полей, по которым осуществляется синхронизация, в настройках AD сервера на сайте (Настройки > AD/LDAP, закладка Настройка полей ). В этом случае можно при импорта пользователей из AD/LDAP (Настройки > Пользователи > Импорт пользователей), например, указать нужные нам поля, а потом в настройках AD сервера на сайте удалить все поля. Тогда у пользователя будут первоначально заданы все необходимые данные, и впоследствии, он сможет менять их.

Для AD-пользователей не работает опция "Запомнить меня на этом компьютере"

Запомнить пароль невозможно, т.к. при авторизации AD-пользователей система обращается к указанному в настройках AD/LDAP серверу и проверяет наличие пользователя с указанными логином и паролем в базе пользователей на корпоративном сервере и дальше уже происходит авторизация (см. урок Схема работы модуля ).

Из соображений безопасности сайт не сохраняет у себя логин и пароль.

Доступ к разделу Extranet без NTLM

Чтобы корректно настроить доступ к папке extranet без авторизации через NTLM, необходимо:

  1. В файле /.htaccess добавить строки:
    AuthName "My Intranet"
AuthType SSPI
SSPIAuth On
SSPIPackage NTLM
SSPIDomain MYDOMAIN
SSPIPerRequestAuth On
SSPIAuthoritative On
SSPIOfferBasic On
Require valid-user
  2. В файлах /extranet/.htaccess и /bitrix/.htaccess добавить строку:
    Satisfy any
  3. В /bitrix/admin/.htaccess добавить:
    Satisfy all

В результате NTLM авторизация будет работать для всех папок в публичной части сайта, кроме extranet, а также в административной части сайта.

Настройка авторизации на IIS

Настройка авторизации при использовании IIS сервера производится аналогично настройкам на Linux . Подразумевается что, IIS при этом уже настроен на работу с PHP, разрешена доменная авторизация и на сайте настроены нужные порты: 8890 (для http) или 8891 (для https) и 80 (для http) или 443 (https).


Проверьте себя
138 / 278

Ответьте на несколько вопросов по теме Пользователи и авторизация, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Если пользователь приписан к нескольким группам, то он обладает минимальным уровнем прав из доступных для него в рамках этих групп.
Верно
Увы, вы ошиблись. Пользователь обладает максимальным уровнем прав из доступных для него групп. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
2 Сайты "1С-Битрикс: Управление сайтом" имеют двухуровневую систему разграничения прав доступа.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
3 Настройка прав доступа выполняется для всех модулей.
Верно
Увы, вы ошиблись. Часть модулей доступна только группе Администраторы. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
4 После установки системы обязательно нужно создать учетную запись Администратора.
Верно
Увы, вы ошиблись. Учетная запись администратора создаётся при установке системы автоматически с идентификатором 1. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
5 Пользователей на сайт можно добавлять не только по одному, но и импортировать целым списком.
Верно
Аплодисменты, вы ответили правильно! Импортировать можно из файла CSV и из Active Directory / LDAP.
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
6 Регистрация на сайте доступна только по электронной почте.
Верно
Увы, вы ошиблись. Начиная с версии 18.5.0 "1С-Битрикс: Управление сайтом" регистрация доступна и по мобильному телефону. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
7 Если пароль администратора утерян, то его можно восстановить.
Верно
Аплодисменты, вы ответили правильно! Существует два способа восстановления пароля администратора.
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
8 Параметры отображения CAPTCHA можно задать вручную.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
9 Модуль AD/LDAP позволяет настраивать соответствие групп пользователей корпоративной сети группам пользователей Bitrix Framework.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
10 Обращение к Active Directory серверу происходит только при импорте пользователей.
Верно
Увы, вы ошиблись. Обращение к AD серверу происходит ещё и при каждой авторизации пользователя. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
11 Авторизация на сайте/портале возможна без ввода логина/пароля.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. NTLM позволяет авторизоваться используя данные авторизации Windows на AD сервере. Советуем почитать тему ещё раз.


Практические задания
139 / 278

После изучения главы рекомендуем выполнить несколько практических заданий. Их можно выполнять на:

  1. тестовой лаборатории предоставленной компанией 1С-Битрикс
    2. либо
  2. на установленной на локальный компьютер пробной версии 1С-Битрикс: Управление сайтом

Первый вариант проще: Виртуальная лаборатория предполагает установку системы в упрощённом, в отличие от локальной версии 1С-Битрикс: Управление сайтом, варианте. При такой установке для получения идентичного изображения у пользователя и на скриншотах заданий выберите на шаге Решение для установки: Интернет-магазин . На остальных шагах менять установки по умолчанию не нужно.

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

Примечания:
  1. Настоятельно рекомендуем НЕ выполнять задания на работающем, "боевом" сайте.
  2. Если вы всё же пытаетесь выполнять задания на работающем сайте, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

  1. Настройте доступ менеджеру к просмотру заказов магазина. Для этого:
    • Создайте новую группу пользователей Менеджеры;
    • Создайте нового пользователя и добавьте в созданную группу;
    • Выполните необходимые настройки доступа для группы, чтобы менеджер имел доступ к просмотру заказов . Также менеджеру должна быть доступна административная панель в публичном разделе.

    Решение
    Задание составлено по материалам уроков:
    • Работа с учетными записями пользователей.
    • Управление группами пользователей.
    • Типовые роли пользователей сайта.

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  2. Импортируйте список пользователей с помощью CSV файла:
    • Пусть в списке импорта будут такие данные: логин, пароль, имя, фамилия, эл. почта, день рождения и пол;
    • Все импортируемые пользователи должны попасть в группу Зарегистрированные пользователи.

    Решение
    Задание составлено по материалам уроков:
    • Страница импорта.
    • Импорт пользователей из CSV-файла.

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

    Обратите внимание, что пароль в данных пользователя после импорта Вы не увидите. Но пользователь сможет авторизоваться с этим паролем.

  3. Настройте CAPTCHA с профилем Линии и рекомендуемыми параметрами из урока Настройка CAPTCHA:
    • прозрачность текста в процентах - 45%,
    • угол отклонения от вертикали - от -30 до 30,
    • добавить нелинейные искажения,
    • установить шрифт bitrix_captcha.ttf.

    Проверить результат можно на примере формы регистрации .

    Решение
    Задание составлено по материалам урока:
    • Настройка CAPTCHA.

    Результат:

    Сначала установим профиль Линии:

    Теперь выполним остальные настройки. При этом при внесении изменений профиль изменится на Пользовательский:

    Нажмите на рисунок, чтобы увеличить


Безопасность сайта
140 / 278
В обязанности администратора напрямую входит решение проблем, связанных с безопасной эксплуатацией сайтов. В этой главе мы расскажем, как обеспечить и контролировать безопасный доступ пользователей к сайту.


Обеспечение безопасности
141 / 278

Безопасность сайта - ваша забота, а мы поможем

В значительной мере безопасность проекта закладывается при его создании . Тем не менее от администратора зависит:

  • Использование надежных паролей для пользователей, имеющих доступ в административную часть.
  • Обеспечение надежного хранения админских паролей, паролей доступа по FTP. (Предпочтительно использование SFTP/SCP)
  • Обеспечение доступа на сайт по SSL.
  • Грамотная работа с модулем Проактивная защита .
  • Грамотное использование штатных систем безопасности Bitrix Framework.
  • Грамотное использование разделения прав доступа пользователей .
Внимание! Статистика Техподдержки Bitrix Framework показывает что основная проблема со взломами сайтов - это вирусы на административных компьютерах. Можно порекомендовать использовать регулярно обновляемые антивирусы, регулярно обновлять компоненты системы (браузер, флеш, Java, саму систему и прочее).

Дополнительно

  • Безопасная авторизация
  • Как восстановить пароль администратора
  • Организация разделения прав доступа между контент-менеджерами

Документация по теме:

  • Проактивная защита
  • Эксплуатация уязвимостей (блог)
  • Эксплуатация уязвимости – противостоим модулем «Проактивная Защита» 1С-Битрикс (блог)
  • Безопасность сайта: поиск троянов (блог)


Настройка HTTPS-соединения
142 / 278

Как перевести сайт на протокол HTTPS

Перевод сайта на работу по протоколу https обеспечивает защиту от атак, основанных на прослушивании сетевого соединения. Действия по такому переводу не сложны, но требуют определённых знаний. В административном разделе "1С-Битрикс: Управление сайтом" создана специальная страница с указанием последовательности работ по настройке HTTPS соединения. Поясним каждый из пунктов этого списка.

Нажмите на рисунок, чтобы увеличить

Внимание! Для выполнения работ администратор должен иметь полный доступ к проекту.

Подготовить сайт к переходу на HTTPS

  • Изменить ссылки, используемые в проекте, с абсолютных на относительные: в каждом файле проекта поменять ссылки вида http://_ваш_сайт/bitrix/admin/*** на /bitrix/admin/*** (убрать указание на протокол и домен).
  • Проверить и изменить ссылки для контента (видео, картинки), загружаемого со сторонних ресурсов, протокол, по которому проект запрашивает контент.

    Пункт лёгкий для исполнения, если используются стандартные компоненты "1С-Битрикс: Управление сайтом": штатные компоненты работают по умолчанию "как надо". Если используются кастомизированные компоненты, то проверьте , что этот пункт в них выполняется.

    Сложнее ситуация, если используется решение от партнёров "1С-Битрикс". В этом случае нужно либо обратиться к разработчику решения для внесения таких правок, либо произвести эти правки самостоятельно.

    Определить наличие неверных указаний протокола можно с помощью консоли. При открытии страниц сайта будут отображены неверные ссылки:

  • Изменить подключение внешних скриптов с абсолютных на относительные. Внешние скрипты: различные счётчики, виджеты "Обратный звонок" и подобные, обращение к сторонним библиотекам, шрифтам и так далее.

    Если используются внешние скрипты, то нужна уверенность, что они работают корректно. Если это счётчики Google или Yandex или скрипты иного "серьёзного" проекта, то тут, как правило, всё работает правильно. Если разработчик стороннего скрипта недостаточно профессионален, то такие ошибки так же отслеживаются в консоли. Самостоятельное исправление невозможно, нужно либо обратиться к разработчику внешнего скрипта с просьбой исправить его работу, либо поискать другой внешний скрипт, решающий ваши задачи и работающий корректно по протоколу HTTPS.

Установить SSL-сертификат

  • Выбрать и получить сертификат. Простая процедура, просто выберите поставщика, оплатите и получите.
  • Установить полученный сертификат на хостинг.

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

    Если используется BitrixVM, то как установить сертификат описано в уроке Добавление ssl-сертификатов в BitrixVM .

    Если сертификат из нескольких файлов
    Некоторые поставщики сертификатов выдают три файла и несколько промежуточных сертификатов. В этом случае сделайте следующее (на примере поставщика Comodo):

    Все полученные файлы (private.key, vash_domen.crt и промежуточный сертификаты) скопируйте под правами root по ssh на вашу BitrixVM в папку /etc/nginx/ssl/1. (Папку надо предварительно создать.)

    Объедините ваш сертификат домена и промежуточный сертификат в один файл формата pem. Важно соблюсти обратную последовательность: сначала должен быть сертификат для домена, затем промежуточные сертификаты №2, №1 и корневой сертификат. Сделайте это через любой текстовый редактор или через командную строку сервера.

    cd /etc/nginx/ssl/1/
cat vash_domen.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > cert.pem

    Полученный файл cert.pem скопируйте в папку /nginx/ssl/, заменив старый файл. Пропишите в конфигурационном файле NGINX путь к публичному ключу - /etc/nginx/bx/conf/ssl.conf:

    ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/private.key;

    Перезагрузите NGINX:

    [root@1 conf]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

  • Проверить доступность сайта через HTTPS-протокол. В консоли не должно быть красных строк.

Выполнить важные изменения на сайте

  • В файле robots.txt в директиве Host исправить протокол с http на https.
  • Установить 301 редирект с HTTP на HTTPS.

    301 редирект на HTTPS задаётся в файле .htaccess. Это файл занимает много места в памяти, поэтому через год редиректы рекомендуется удалить. За этот год произойдёт полная переиндексация сайта в поисковых системах.

    Примеры установки редиректа:

    RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
    RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
    RewriteEngine On
RewriteCond %{HTTP:SSL} !1
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]

    Если предложенные варианты не работают, то обратитесь к хостеру. Нужно понять как на хостинге различается https/http трафик. В некоторых реализациях тип протокола определяется только по какому-то дополнительному элементу, например, в NGINX добавляется специальный заголовок.

    Если используется BitrixVM, то достаточно отключить http в меню виртуальной машины. (Выполняется после подключения ssl-сертификатов в BitrixVM.)

    Внимание! Отключение протокола HTTP - обязательная опция, оставлять его нельзя.

  • Изменить ссылки в файле sitemap.xml. Аналогично с файлами проекта изменяются ссылки в файле sitemap.xml. Либо пересоздать этот файл с выбором настройки HTTPS в поле Адрес карты сайта.

    • Примечание: В списке выше указаны основные моменты настройки системы на работу по протоколу HTTPS. Кроме них нужно дополнительно произвести настройки функционала, если этот функционал используется:
    • Если используется CDN, то поставить флажок в поле Сайт работает по https в настройках сервиса Ускорение сайта CDN.
    • Установить флажок в поле Использовать в выгрузке протокол https в выгрузке Yandex. (Рабочий стол > Магазин > Настройки > Экспорт данных).
    • В настройках модуля E-mail маркетинг надо включить https для ссылок в письмах.
    • Указать пути в настройках модуля Push and Pull (Настройки > Настройки продукта > Настройки модулей > Push and Pull).
    • Отключить HTTP в Глобальных действиях Панели управления масштабированием.
    • Изменить настройки URL сайта в форме редактирования сайта , если ваш сайт подключён к Контролеру другого сайта.
      • В случае коробочной версии Битрикс24 к ним добавляются:
    • Установка протокола https в поле Публичный адрес сайта на страницах:
      • Настройки > Настройки продукта > Настройки модулей > Коннекторы для внешних мессенджеров
      • Настройки > Настройки продукта > Настройки модулей > Открытые линии
      • Настройки > Настройки продукта > Настройки модулей > Распознавание лиц
      • Настройки > Настройки продукта > Настройки модулей > Телефония
      • Настройки > Настройки продукта > Настройки модулей > Чат-боты Битрикс24

Оповестить поисковики об изменениях

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

  • Добавить HTTPS-версию сайта в панель для вебмастеров Яндекс Вебмастера и Google Search Console.

    При этом старый сайт удалять не рекомендуется до тех пор, пока ИКС не "переедет" на новый сайт. Теоретически, после того как это произойдёт, можно старый сайт удалить, но рекомендуется оставить его не менее чем на год. В Google сайт лучше не удалять совсем.

  • Изменить адрес в панели Яндекс Вебмастера и Google Search Console.

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


Контроль за изменениями в системе
143 / 278

Следим за изменениями

Одной из задач обеспечения безопасности в работе сайта является мониторинг изменений в системе. Для осуществления такого мониторинга можно использовать несколько инструментов.

Журнал событий

Журнал событий описан выше , вы с ним, вероятно, уже знакомы. Настраивается он на одноименной закладке Главного модуля.

Журнал изменений

Специальный компонент Журнал изменений , который выводит список изменений:

  • пользователи (добавление);
  • страницы (изменение, добавление, удаление);
  • меню (изменение, создание, удаление);
  • файлы (изменение, добавление, удаление, перемещение, копирование, переименование);
  • разделы (добавление, изменение, удаление, перемещение, копирование, переименование);
  • инфоблоки (добавление, изменение, удаление элементов и разделов);
  • форумы общие и в рамках социальных сетей (сообщение: скрытие,показ, изменение, перенос, удаление; тема: показ, скрытие, прикрепление, открепление, открытие, закрытие, удаление, изменение).

Для использования компонента создайте отдельную страницу на сайте с доступом к ней для нужной группы пользователей. Разместите на ней указанный компонент и настройте его.

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

В чём разница?

Журнал изменений и Журнал событий в чем-то перекликаются. Отличие их в том, что Журнал изменений более подходит для мониторинга изменений контента, а Журнал событий - для мониторинга изменений настройки системы.


Пример настроек закладки Безопасность группы пользователей
144 / 278

Настраиваем оптимальное время жизни авторизации

Одна из задач, которую приходится решать администратору - это сочетание безопасности работы сайта и удобства работы пользователя. Например, снять с пользователя необходимость частой авторизации.

Неопытный администратор долгую авторизацию пользователя пытается решить через параметр Время жизни сессии , что не правильно. Долгая жизнь сессии (более 20-30 минут) у множества пользователей неизбежно приведёт к замедлению работы сайта из-за увеличения количества сессий на активных сайтах.

Гораздо лучше для этого использовать сочетание параметров закладки Безопасность (Настройки > Пользователи > Группы пользователей > {группа_пользователей}).

Прежде всего устанавливаем маску для Маски сети для привязки сессии. Этот параметр можно задать достаточно строго, так как за короткий период жизни сессии пользователь вряд ли сменит провайдера.

Для долгой авторизации можно использовать настройку трёх параметров:

  • Поле Максимальное количество компьютеров, на которых может быть одновременно запомнена авторизация не должно быть большим. Для сотрудников, работающих только в организации, естественно, это - 1. Для тех, кто может входить на сайт с разных компьютеров (рабочий, домашний, мобильные устройства) - число должно быть определено конкретно. Если в одной и той же группе есть пользователи с существенно разным числом компьютеров, то есть смысл подумать о создании новых групп пользователей. (Если руководством проекта задаются строгие требования к безопасности.)
  • Для пользователей, работающих с разных мест имеет значение поле Маска сети для привязки сохраненной авторизации. Оно позволяет сохранять авторизацию используя разных провайдеров. Чем меньше провайдеров используется, тем строже может быть маска. Если постоянно используется один и тот же, то рекомендуется маска 255.255.255.0. Если провайдеров может быть несколько, то маску нужно расширить, скажем, 255.255.0.0. Выбор вместо 0 промежуточных значений (что позволяет повысить безопасность) зависит от конкретных условий работы вашей сети.
  • Значение поля Срок хранения авторизации, запомненной на компьютере пользователя не рекомендуется больше одной недели.

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


Проблема ботов
145 / 278

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

О том, как противодействовать нежелательным действиям ботов, рассказывается в этой главе.


Что делать с ботами?
146 / 278

Что делать с ботами?

Бот (сокр. от «робот») в интернет-проектах и сервисах - специальная программа, имитирующая деятельность человека. Может использоваться для различных технических нужд: повышения удобства остальных пользователей, совершения однотипных операций владельцами проекта. Однако существует и практика использования ботов, когда остальным участникам неизвестно, что это бот: для троллинга или спама, скрытой записи логов канала, для вандализма.

Цели регистрации ботов - коммерческий спам или политическое влияние. В обоих случаях регистрация ботов может происходить как "про запас", так и аккаунты сразу могут начать вести активную деятельность.

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

В популярных CMS боты могут даже использовать инструменты самой CMS для придания ощущения "живого" пользователя, как в примере выше, где бот использовал не просто живую ленту на странице собственного аккаунта, а создал сообщение в гаджете Заметки.

Боты, "заточенные" под определённую CMS могут реагировать на какие-то присущие ей особенности, например, на стандартный шаблон демонстрационной версии, который, из соображений экономии, владелец сайта не стал менять, а просто "чуть-чуть" подправил под себя.

Подавляющее большинство ботов регистрируется на сайтах автоматически, без участия человека. В некоторых случаях (когда ресурс особо "ценен" с точки зрения спама или политических манипуляций, но с высокой степенью защиты) регистрацию проводят люди, а аккаунт потом передаётся под управление программам-спамерам.

Если на сайте регистрируется, допустим, по 20-40 ботов в день (это реальный кейс), то через полгода на сайте будет уже 180 дней х 30 ботов = 5400 профилей (возможно, даже реальных пользователей на сайте не будет столько). Эти аккаунты готовы к программному управлению извне (писать рекламные посты, изменить свой профиль, добавив в него ссылки, плюсовать или минусовать авторитет других и друг друга, писать матом или в личные сообщения и тому подобное).

Когда число регистрирующихся ботов достигает некоторой большой величины, допустим, 40 штук в день при определённой посещаемости сайта, то приходится прибегать к экстренной мере: временному отключению возможности самостоятельной регистрации в настройках Главного модуля (опция Позволять ли пользователям регистрироваться самостоятельно? ).

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

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

Компания "1С-Битрикс" вряд ли сможет создать решение проблемы ботов "из коробки". Любое такое программное решение боты достаточно быстро научатся обходить. Это просто вопрос денег - заплатить программистам за разработку обхода. Для популярной CMS такие вложения быстро окупятся. Нужно применять своё, "нестандартное" решение, либо использовать комплекс мер.

Чем более нестандартный (хоть и даже простой) способ вы придумаете, тем меньше будет ботов. Ваши решения не будут обходиться просто потому что это дорого: программная разработка алгоритма регистрации на одном, конкретно взятом сайте.

От ручного спама не защититесь и от написания софта "под вас" тоже, но это обычно сопутствует суперпопулярности. "Ловля на взлете" для раскрученных ресурсов не может быть эффективной на 100%, поэтому и вряд ли оправданы какие-то усложненные регистрации. Нужно периодически ещё проверять базу пользователей.


Борьба с автоматической регистрацией
147 / 278

Несколько способов борьбы с автоматической регистрацией ботов

CAPTCHA

CAPTCHA - классический инструмент защиты от автоматической авторизации. Достоинства и недостатки этого метода хорошо известны, но пренебрегать этим методом защиты не нужно. Очень часто простое изменение настроек стандартной CAPTCHA может дать серьезный результат.

Пока нет возможности "из коробки" подключать разную CAPTCHA. Но есть достаточно большие возможности по её настройке, это снижает вероятность автоматической регистрации ботов. Например, используйте кириллический шрифт, который не смогут правильно набрать нерусскоязычные работники бирж. Впрочем, в последнее время появились и русские биржи по регистрации аккаунтов. Но число таких бирж не велико и их услуги стоят дороже.

Если вас не удовлетворяют возможности штатного функционала CAPTCHA, то можно "усилить" этот функционал.

Доступ на сайт через соцсети

Позволить входить на сайт только через социальные сети. Метод плох тем, что есть люди, которые ими не пользуются. И ещё тем, что не для всех такой способ авторизации кажется приемлемым.

Поля формы регистрации

Добавить в форму регистрации невидимое поле и скрыть его с помощью CSS. Скрывать с учётом того, что особо продвинутые боты обнаруживают display: none. Невидимое поле нужно назвать как-нибудь привлекательно для ботов в контексте содержания сайта: Компания, telefpone. К этому полю можно поставить знак *, - бот решит что без его заполнения не отправится форма.

Следом следует программное условие, что если это поле заполнено, то блокировать пользователя, либо возвращать ему тот же ответ, что и при удачной регистрации.

Другой вариант: подменить поле Имя. Для бота будет стандартное, для пользователей - названное вами, а при регистрации менять значения. Алгоритм регистрации не изменится, бот будет по-прежнему вводить поле "имя(стандартное)" и не проходить регистрацию.

Защита по IP

Как вариант защиты очень часто рекомендуют подключить к сайту список IP адресов спамботов, такие списки благо есть. Но практика показывает, что возможности этого способа защиты существенно ограничены.

Во-первых, есть вероятность отсеять простого человека который:

  • имеет прокси с этим IP,
  • получил динамический IP который есть в базе (очень малая вероятность),
  • человек, случайно попавший в базу.

Во-вторых, этих IP-адресов тысячи и десятки тысяч и ими не удобно эффективно управлять. Бессмысленно с ними возиться ради ботов, гораздо проще использовать нестандартные приёмы для защиты от автоматической регистрации. Кроме того, уже на нескольких специализированных форумах есть услуга регистрации аккаунтов не через прокси, а с IP реальных людей. Судя по всему используются ботнеты.

Организационные меры защиты

Возможен такой вариант: пользователь после регистрации попадает в группу Новички с минимальными правами. Он может только заполнить профиль и ответить на форуме. Личные сообщения, постинг ссылок, добавление файлов, открытие новой темы и прочего ему запрещено. Как только он оставит на форуме N сообщений (на выбор администратора), он переходит в группу зарегистрированные пользователи, которая имеет базовые пользовательские права.

Можно создать и группу Активные пользователи, которые будут иметь расширенный набор прав и туда пользователь попадёт после набора M сообщений.

Штатно в Bitrix Framework такое реализовать не получится, нужны некоторые доработки. Пример возможного кода:

//при добавлении сообщения форума, если количество сообщений больше FLS_NUM_POSTS,
//то припишем пользователя к специальной группе
define("FLS_NUM_POSTS", 50);
define("FLS_FORUM_GROUP", 27);
AddEventHandler("forum", "onAfterMessageAdd", "FlsOnForumMessageAdd");
function FlsOnForumMessageAdd($ID, $arFields)
{
   $arGroups = CUser::GetUserGroup($arFields["AUTHOR_ID"]);
   if(!in_array(FLS_FORUM_GROUP, $arGroups))
   {
      $arProfile = CForumUser::GetByUSER_ID($arFields["AUTHOR_ID"]);
      if(intval($arProfile["NUM_POSTS"]) >= FLS_NUM_POSTS-1)
      {
         //добавим в группу
         $arGroups[] = FLS_FORUM_GROUP;

         //запишем новую группу
         CUser::SetUserGroup($arFields["AUTHOR_ID"], $arGroups);

         //обновим сессию текущему пользователю
         if($GLOBALS["USER"]->GetID() == $arFields["AUTHOR_ID"])
            CUser::SetUserGroupArray($arGroups);
      }
   }
}

В качестве организационных мер можно предусмотреть:

  • Использование подтверждения регистрации по E-mail . Это штатная функция Главного модуля.
  • Обязательную регистрацию на сайте по номеру телефона.
  • Использование платного модуля от партнёров Отправка пароля при регистрации.

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

Несколько уровней регистрации

Самый "тяжёлый" способ. Не в плане технической реализации, а в плане удобства для пользователей. Суть проста: выполнение регистрации в несколько этапов.

Такую регистрацию могут пройти только специально написанные под конкретный проект боты. Либо производится ручная, человеческая регистрация с последующей передачей аккаунта под управление ботам.

Есть более мягкий вариант, когда авторизация происходит в один этап, но в её конце пользователям предлагается завершить авторизацию, заполнив ещё некоторое количество полей. Авторизовать на сайте пользователей можно и сразу, после заполнения минимума обязательных полей. И дать возможность им пользоваться сайтом. Но те из них, которые не сделали завершение авторизации (то есть не заполнили поля, которые их просили заполнить) попадают под подозрение, что они - боты. В дальнейшем их можно будет удалить или ограничить в правах (поместить в группу подозрительных), пока не заполнят.


Если боты всё же зарегистрировались
148 / 278

Удаляем мусор

Если боты всё же зарегистрировались, то придётся их вычислять и удалять. Как определить кто из пользователей - человек, а кто - бот? По поведению. Бото-природу скрыть можно, но трудно.

Имя и логин. Просматривая список новых зарегистрированных пользователей, обращайте внимание на тех, у кого совпадают имя, фамилия и логин, написанные прямо или задом наперёд с подчёркиванием - это в 99.9999% случаях боты. Обычно, это невменяемые имена, примеры:

Имя: VoideFaroToor
Фамилия: VoideFaroToor
Login: VoideFaroToor

или:

Имя: Retp1yr_
Фамилия: ry1pteR
Login: Retp1yr

География посещений. Она должна быть логически понятной. Как пример: если на сайте провинциального города зарегистрировалось большое число пользователей с IP из Южной Америки, то вероятность что эти аккаунты созданы ботами - очень высока. Конечно, в Парагвае могут оказаться бывшие жители провинциального российского города, но не в массовых количествах.

Время посещения и скорость публикации сообщений. Тут особых комментариев не надо: если пользователь заходит постоянно в 4:30 утра и за 2 минуты публикует 5 длинных и разноплановых сообщений, то это - бот.

Сторонние инструменты. Яндекс позволяет следить за поведением посетителей с помощью Вебвизор'а. Зайдите и посмотрите что же делал пользователь на сайте. Боты характеризуются очень малой активностью. В то время как живые посетители, довольно активно просматривают страницы.

Боты идентифицируются совпадением нескольких пунктов одновременно. Например, малое время пребывания на сайте и странная география или странное имя/логин и взрывные пики посещаемости. Вебвизор в Метрике позволяет уже детально проследить поведение каждого пользователя и собрать доказательства фиктивных переходов.

Чтобы не ошибиться в оценках бот/не бот, определите изначально что значит "рациональное поведение пользователя" именно для вашего проекта. К примеру: сайт знакомств. Пользователь регистрируется чтобы получить некоторые преференции, например просмотр анкет. А будет ли логичным следующее поведение пользователя на таком сайте: зашел на сайт, просмотрел несколько страниц, зарегистрировался, ушел? Нет, не будет. Зарегистрировавшись пользователь пойдет смотреть анкеты, а вот бот скорее всего поступит именно так как написано.

Более точную карту поведения можно составить проанализировав поведение заведомо известных вам аккаунтов-людей на вашем сайте.


Как закрыть доступ к сайту другому администратору
149 / 278

Как закрыть доступ к сайту другому администратору

Иногда бывают такие ситуации, когда необходимо "вчерашнему" администратору сайта закрыть доступ к этому сайту (например, при смене подрядчика, создавшего и сопровождавшего Ваш сайт). Как же это сделать, ведь у него, как у администратора, есть все "адреса/пароли/явки"?

Чтобы подрядчик не смог восстановить свой доступ (см. урок Как восстановить пароль администратора), выполните три действия:

  1. Сначала найдите Пользователя с ID=1 (Настройки > Пользователи > Список пользователей) и смените E-mail и пароль:

    Примечание: Пользователь с ID=1 по умолчанию является администратором. Конечно, можно лишить его этих прав, сняв соответствующую галку. Однако мы настоятельно рекомендуем этого не делать, так как Вы сами потом не сможете восстановить пароль администратора, если возникнет такая необходимость.

  2. Смените пароль доступа по FTP, чтобы подрядчик не смог зайти на Ваш сервер.
  3. Проверьте у всех остальных пользователей (Настройки > Пользователи > Список пользователей) наличие полных прав на Главный модуль (есть хоть и маленькая, но все-таки вероятность того, что подрядчик создал своего тестового пользователя и дал ему права администратора).


Проактивная защита
150 / 278

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


Предотвращаем вторжения
151 / 278

Проактивная защита: предотвращаем вторжения

Защита от хакерских атак, взлома и кражи хранящейся на сайте информации — важная задача для любого действующего проекта, даже если он не имеет доступа к сети Интернет.

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

Рассмотрим основные операции по настройке модуля Проактивная защита, который является важным дополнением к стандартной политике безопасности продукта и существенно повышает уровень защиты веб-проекта.

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

Все настройки параметров Проактивной защиты, в том числе и страница просмотра текущего уровня безопасности Панель безопасности, расположены в разделе Настройки > Проактивная защита.

Главная цель модуля Проактивная защита — уберечь сайт от возможных ошибок при доработке проекта сторонними разработчиками. Этот модуль реализует целый комплекс защитных мероприятий для сайта и сторонних приложений.

Понятие проактивной защиты веб-проекта объединяет в себе следующее:

  • надежную аутентификацию пользователя с использованием одноразовых паролей;
  • технологию защиты сессии пользователя;
  • проактивный фильтр защиты от атак;
  • контроль целостности системы;
  • защиту от фишинга;
  • защиту от DDoS;
  • веб-антивирус;
  • шифрование данных.

Не секрет, что любая включенная функция — дополнительная нагрузка на сервер. Поэтому работа с модулем Проактивная защита — это вечный поиск компромисса между защитой от потенциальной опасности и реальной загруженностью сервера.

Документация по теме:

  • Пользовательская документация по модулю "Проактивная защита"


Немного теории: уязвимости
152 / 278

Немного теории: уязвимости

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

Соответственно, уязвимости можно разделить на два основных типа:

  • атаки непосредственно на систему;
  • атаки на клиентов веб-приложений.

Атаки непосредственно на систему

Это атаки, осуществляемые на систему непосредственно, без всякого участия "сторонних" программ.

  • SQL-инъекция. Один из самых частых и действенных способов атаки, связанный с недостаточной фильтрацией данных, используемых в SQL-запросах. Эта критическая уязвимость приводит к тому, что злоумышленник может выполнить произвольные SQL-запросы к базе данных. В рамках "философии программирования" в Bitrix Framework запрещено обращаться непосредственно к базе. Но разработчики сайтов иногда отходят от этого принципа.
  • Внедрение в имя файла. Уязвимость связана с использованием в качестве части имени файла недостаточно фильтруемого значения, принятого от пользователя. Нападающий может изменить имя файла таким образом, чтобы включить и выполнить на уязвимом сайте произвольный PHP-файл.
  • Выполнение системных команд. Уязвимость связана с недостаточной фильтрацией данных. С помощью инъекции в класс системных функций можно выполнить произвольные команды на целевом сервере в контексте пользователя, от которого работает php.
    Примеры опасных команд такого рода: system, passthru, exec, и.т.д.
  • Подбор реквизитов доступа. Нападающий может подобрать простые пароли.
  • Логические ошибки в коде. Данный тип ошибок особенно тяжело диагностируется и имеет наибольшее разнообразие. Логическая ошибка в коде возникает, когда при некоторых ситуациях код работает не так, как предполагается.

Атаки на клиентов веб-приложения

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

  • Межсайтовый скриптинг. Уязвимость возникает тогда, когда данные, принятые от пользователя, выводятся в браузер без надлежащей фильтрации. Уязвимость может быть использована для изменения вида HTML-страниц уязвимого сайта в контексте браузера целевого пользователя, похищения cookie данных браузера целевого пользователя с последующим внедрением в его сессию под его учетной записью.
  • Межсайтовая подделка запроса. Если каким-либо образом заставить браузер пользователя сделать запрос к уязвимому серверу, браузер сделает этот запрос с текущими cookie данного пользователя.
  • Социальная инженерия. Злоумышленник может представиться администратором сайта и попросить пароль у пользователя, или изменить пароль на какой-то заданный, или узнать "любимое блюдо" и т. п.
  • Фишинг. Создается подставной веб-сайт, который повторяет дизайн целевого сайта и имеет похожий URL. Например, lc-bitrix.ru (здесь первый символ — "эль", а не "один"), на него заманивается пользователь в надежде, что он введет свои логин и пароль, которые будут доступны злоумышленникам. Уязвимость может быть использована совместно с XSS и CSRF.


Немного теории: уровни Проактивной защиты
153 / 278

Немного теории: уровни Проактивной защиты

Любой веб-проект на базе Bitrix Framework обязательно имеет начальный уровень защиты. Повысить этот уровень можно с помощью модуля Проактивная защита, настроив один из следующих уровней безопасности:

  • Стандартный;
  • Высокий;
  • Повышенный.

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

Информация о текущем уровне безопасности сайта представлена на странице Панель безопасности (Настройки > Проактивная защита > Панель безопасности).

Ниже для каждого уровня приведена соответствующая таблица параметров и их значений, а также указаны рекомендации по изменению значений параметров (т.е. если для какого-то параметра установлено несоответствующее значение, то в поле Рекомендации будет отображено необходимое для выполнения действие).


Настройки модуля Проактивная защита
154 / 278

Настройки модуля

Модуль Проактивная защита настраивается в Административной части на странице Настройки > Настройки продукта > Настройки модулей > Проактивная защита

Нажмите на рисунок, чтобы увеличить

На вкладке Настройки предлагается настроить параметры блокировки по IP-адресу и журналирования событий в системе.

Настройки блокировки по IP

  • Разрешать блокировать себя по IP (с показом предупреждения) - при отмеченной опции станет доступна блокировка самого себя по IP-адресу. При попытке заблокировать свой IP появится предупреждение, а после второй попытки сохранения - выполнится блокировка.
  • Путь к файлу-флажку запрета блокировки по IP - Укажите путь к файлу-флажку, с помощью которого можно снять установленные ограничения IP-адресов, в поле Путь к файлу-флажку. Создание такого файла-флажка выполняется вручную и помогает получить доступ в случае блокировки себя по IP. Название файла можно оставить по умолчанию , либо указать своё.

    Пример работы с файлом-флажком
    Рассмотрим работу с файлом-флажком на примере ситуации случайной блокировки самого себя по IP-адресу:
    1. Пусть в настройках модуля указан такой путь к файлу-флажку: /bitrix/modules/ipcheck_disable_ourproject267. Название файла придумано своё: ipcheck_disable_ourproject267;
    2. Выполним блокировку своего IP. Сразу же после блокировки появляется ошибка 403 Forbidden, т.е. доступ с указанного IP к ресурсу запрещен;
    3. Для возвращения доступа подключаемся к серверу по FTP и в файловой структуре переходим по пути /bitrix/modules/;
    4. Создаем пустой файл с названием ipcheck_disable_ourproject267;
    5. Как только файл создан, все блокировки по IP снимаются и ресурс становится доступен;
    6. Заходим в административный раздел, удаляем IP из стоп-листа, после чего удаляем файл флажок, чтобы вернуть существующие ограничения по остальным IP (если они имеются).

    Внимание: Удалите файл-флажок сразу как будут решены проблемы с доступом. В настройках модуля Проактивная защита и в Стоп-листе появится соответствующее предупреждение .

Настройки журналирования

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

Доступ

На закладке Доступ распределяются права доступа к модулю для групп пользователей.

Документация по теме:

  • Настройки модуля


Сканер безопасности
155 / 278

Как работать с нашим собственным инструментом Сканер безопасности рассказывается в этой главе.


Что может сканер безопасности
156 / 278

Сканер безопасности

Сканер безопасности - это инструмент, который позволяет выявить потенциальные ошибки и упущения, связанные с безопасностью сайта.

  • Чтобы сканер имел возможность проводить статический анализ уязвимостей, необходимо установить и включить в системе PHP расширение Tokenizer.
  • При статическом анализе уязвимостей сканер может "подвисать" на проверке больших скриптов (больше 100 Кб). Рекомендуется убирать такие скрипты на время проверки сканером или разбивать скрипты на части.

На текущий момент сканер может следующее:

  • Выполнять внутреннее сканирование окружения проекта (к примеру, безопасно ли хранятся файлы сессий);
  • Выполнять проверку настроек сайта (к примеру, включен ли WAF, установлен ли пароль к базе данных и т. д.);
  • Выполнять поиск потенциальных уязвимостей в коде проекта с помощью статического анализа;
  • Запускать внешнее сканирование.

    Примечание: Внешнее сканирование будет запущено, если сайт доступен снаружи (например, расположен на хостинге, а не на локальной машине) и в опции URL сайта (без http://) настроек главного модуля указан правильный адрес.

Минимальные системные требования по сканеру безопасности:

  • Статический анализ уязвимостей - наличие расширения tokenizer (см. выше), max_execution_time не менее 20 секунд, memory_limit не менее 256Мб;
  • Проверка прав доступа к файлам - max_execution_time не менее 20 секунд.

После нажатия кнопки Запустить сканирование система произведет поиск угроз безопасности и выдаст рекомендации по их устранению.

Примечание: Для некоторых сообщений сканера доступны подробные описания обнаруженной проблемы в секции Детали.

Документация по теме:

  • Сканер безопасности - верный друг и помощник (блог)
  • Сканер безопасности


Трактовка результатов сканера безопасности
157 / 278

Трактовка результатов сканера безопасности

Сканер разделен на две части - локальную и внешнюю. Внешнее сканирование позволяет произвести проверку сайта "снаружи". Локальная - отвечает за проверки, которые невозможно/нецелесообразно выполнить “снаружи”, например, настройки сайта или исполнение php/python/perl/etc скриптов в директории хранения загружаемых файлов гораздо эффективнее проверять именно изнутри.

Локальное сканирование

Настройки окружения

Директория хранения файлов сессий доступна для всех системных пользователей

Сообщение об этой угрозе можно увидеть, когда директория хранения файловых сессий PHP (session.save_path (phpinfo), по умолчанию /tmp) доступна для всех (other), например:

         $ stat -c 'Perms: %A' /tmp Perms: drwxrwxrwt

Если вы не используете хранение сессий в БД и пользуетесь shared-хостингом, то в большинстве случаев ваш "сосед" сможет получить полный доступ к вашему сайту, модифицировав сессионные данные. Это хороший повод задать ему вопрос и потребовать внести правки в конфигурацию, таким образом, дабы сессионные файлы каждого пользователя были отделены друг от друга, и на эти директории были установлены корректные файловые права. Пользователям выделенных серверов это менее критично, но все же рекомендовано.

Если настройка производится самостоятельно, то необходимо создать другую папку (можно даже внутри /tmp, в большинстве случаев) и выставить на неё корректные файловые права, затем указать её в настройках php. Настраивая этот параметр, учтите что у вас есть все шансы загубить авторизацию на сайте или же отключить garbage collector сессионых файлов. Посему - лучше обратитесь к специалисту или в ТП хостинга.

Предположительно в директории хранения сессий находятся сессии других проектов

Подобное сообщение можно встретить, если несколько сайтов используют одну директорию для хранения сессий. Очень часто это можно встретить при использовании выделенных серверов, когда есть N сайтов и все они хранят свои сессии где-нибудь в /tmp/php_sess. Начиная с версии модуля main 12.5.0 это стало не столь критично, но, тем не менее, стоит это исправить, указав собственную директорию хранения сессий для каждого сайта.

Чем это опасно? При такой конфигурации сессии получаются "сквозные", т.е., допустим, есть сайт A и сайт B:
a) Мы регистрируемся на сайте B, получаем идентификатор пользователя 7;
b) Теперь зайдя на сайт A с идентификатором сессии от сайта B, мы окажемся авторизованными под пользователем с идентификатором 7, но сайта A (а что если пользователь с идентификатором 7 на сайте A администратор?).

php/python/perl/etc скрипты исполняются в директории хранения загружаемых файлов

Используя API Битрикс, пользователь сайта не может загрузить .php, .py, .psp, .pl и т.д. файлы без наличия необходимых прав. Но, к сожалению, как в пользовательском коде, так и в коде разработчиков "Маркетплейс" все еще встречается "кастомная" загрузка файлов, которая может позволить загрузить файлы с потенциально опасными расширениями. Именно поэтому лучше исключить эту возможность, корректно сконфигурировав ваш веб-сервер.

.htaccess файлы обрабатываются Apache в директории хранения загружаемых файлов

Аналогично предыдущему, только вектор атаки через загрузку файлов направлен на загрузку .htaccess файлов с "кастомными" конфигурациями. Например, такой:

         <Files ~ "^\.ht"> Order allow,deny Allow from all </Files> AddHandler zend-enabler-script .htaccess <IfModule mod_mime.c> AddType application/x-httpd-php .htaccess </IfModule> #<?php assert($_GET[0]); ?>
Необходимо найти все текущие правила:
         $ find ./upload -type f -name '.htaccess' -print -exec cat {} \; ./upload/support/not_image/.htaccess Deny from all ./upload/.htaccess <IfModule mod_mime.c> RemoveHandler php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .ico .shtm .shtml .fcg .fcgi .fpl .asmx .pht .py .psp AddType text/plain php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .ico .shtm .shtml .fcg .fcgi .fpl .asmx .pht .py .psp </IfModule> <IfModule mod_php5.c> php_flag engine off </IfModule>
Перенести их в конфигурацию виртуального хоста вашего сайта и добавить AllowOverride None для директории загружаемых файлов, например, так:
         <Directory /home/bitrix/www/upload/support/not_image> AllowOverride none Order allow,deny Deny from all </Directory> <Directory /home/bitrix/www/upload> AllowOverride none AddType text/plain php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .ico .shtm .shtml .fcg .fcgi .fpl .asmx .pht .py .psp php_value engine off </Directory>

Apache Content Negotiation разрешен в директории хранения загружаемых файлов

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

         AddHandler type-map .var
Это означает, что если в директории загружаемых файлов у вас будет лежать файл с именем test.var.gif и содержимым:
         GIF89: any Content-language: ru Content-type: text/html; Body:----------ru-- <img src=x onerror=prompt(/XSS/)> ----------ru--
(вполне валидная картинка, по мнению PHP), то при запросе этого файла нам будет отдано тело с типом text/html, что логично, т.к. обработчики в Apache вызываются до определения типа:
         $ http -v http://bus-win.my/upload/test.var.gif GET /upload/test.var.gif HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, compress Host: bus-win.my User-Agent: HTTPie/0.7.2 HTTP/1.1 200 OK Accept-Ranges: bytes Content-Language: ru Content-Length: 34 Content-Type: text/html Date: Sun, 27 Oct 2013 09:57:40 GMT Server: Apache/2.4.3 (Unix) OpenSSL/1.0.1c PHP/5.4.7 <img src=x onerror=prompt(/XSS/)>
А не как мы ожидали image/gif, что, разумеется, приводит к возможности XSS нападения.

Эта возможность придает гибкости Apache для обработки мультиязычной статики, но безопасности вашего сайта только вредит.

Настройки PHP

Разрешено чтение файлов по URL (URL wrappers)

Чтобы оградить разработчика от "сюрпризов" и повысить безопасность сайта - allow_url_fopen должен быть Off.

Cookies доступны из JavaScript

Имеется в виду, что при установке cookie ваш сайт не передает дополнительный флаг httpOnly для HTTP-заголовка Set-Cookie, который указывает на запрет чтения/записи данных Cookie посредством JavaScript, отсюда и название. XSS атаки наиболее распространены, и получить пользовательские cookies это самый простой их вектор (сейчас все чаще XSS нападение используется для CSRF атак). Поэтому необходимо использовать любую возможность для уменьшения рисков. Флаг httpOnly рекомендуется указывать как минимум для ID сессии, для этого достаточно в настройках PHP указать:

         session.cookie_httponly = On

Ссылки по теме:

  • httpOnly (owasp.org);
  • Директива PHP session.cookie_httponly.

Не установлен дополнительный источник энтропии при создании идентификатора сессии

Отсутствие дополнительной энтропии может использоваться для предугадывания случайных чисел. Необходимо в настройках php указать:

         session.entropy_file = /dev/urandom
         session.entropy_length = 128"

Включено использование тегов в стиле ASP
Многие разработчики не догадываются о существовании подобной опции, а как следствие могут не учесть её в различных проверках. Необходимо в настройках php указать:
         asp_tags = Off

Cookies - не единственное хранилище идентификатора сессии
Хранение идентификатора сессии не только в Cookies может служить источником атак разного типа. Необходимо в настройках php указать:
         session.use_only_cookies = On

Включен вывод ошибок
Вывод ошибок предназначен для разработки и тестовых стендов, он не должен использоваться на конечном ресурсе. Необходимо в настройках php указать:
         display_errors = Off

Настройки сайта

Ограничен список потенциально опасных расширений исполняемых файлов

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

Проактивный фильтр выключен

Выключенный проактивный фильтр не сможет отразить попытки нападения на ресурс.

Защита редиректов выключена

Редирект на произвольный сторонний ресурс может служить подспорьем для множества атак, защита редиректов исключает эту возможность (при использовании стандартного API).

Уровень безопасности административной группы не является повышенным

Пониженный уровень безопасности административной группы может значительно помочь злоумышленнику.

Включена отладка SQL запросов (\$DBDebug в значении true)

Отладка SQL запросов может раскрыть важную информацию о ресурсе. Рекомендуется установить значение переменной \$DBDebug в false.

Ошибки, связанные с паролями. Рекомендуется усложнить пароли согласно указаниям сканера.
  • Пароль к базе данных пустой
  • Символы пароля к БД в одном регистре
  • Пароль к БД не содержит чисел
  • Пароль к БД не содержит спецсимволов(знаков препинания)
  • Длина пароля к БД меньше 8 символов

Пользователи

Эти проверки появились только с версии модуля 14.0.3. Основная их цель - проверить, все ли привилегированные пользователи используют MFA, у всех ли установлен пароль достаточной сложности и так далее.

У некоторых пользователей административной группы установлен слабый пароль

Сканер безопасности берет список пользователей из административной группы и пытается подобрать пароль к ним методом перебора по словарю. В случае успеха будет выведен список пользователей, которым необходимо установить более сложный пароль. Зачастую слабый пароль у пользователей административной группы оказывается вследствие того, что изначально они небыли администраторами, т.е. административный доступ предоставляется ранее зарегистрированному пользователю, чьи политики безопасности не требовали стойкого пароля.

Выключена двухэтапная авторизация

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

Не все администраторы сайта используют OTP

То же самое, что и в предыдущем пункте. Необходимо оповестить администраторов сайта о необходимости использования OTP.

Внешнее сканирование

Доступен листинг директорий

Включенный Directory AutoIndex встречается повсеместно и сулит как минимум неконтролируемым доступом к загруженным пользовательским файлам. Для nginx необходимо убрать директиву autoindex, она выглядит примерно так:

         location / { autoindex on; ...}
Для Apache это Options +Indexes в конфигурационном файле:
         <Directory /home/bitrix/www> Options +Indexes </Directory>

Открыт доступ к важным сервисам

Всегда помните - все сервисы, необходимые только сайту, не должны быть видны "наружу". Случаи неконтролируемого доступа к критически важным сервисам (например, memcached) - совсем не редкость. Это важный момент, т.к. доступ к memcached, где ваш сайт хранит свой кеш - это, по сути, полный контроль над ним. Если вы пользуетесь shared-хостингом - это отличный повод для "беседы" с ним. Если у вас не кластерная архитектура проекта, то правильнее всего использовать unix-сокет, когда у вас memcached используется для кластера - корректные настройки firewall + SASL.

Инъекция PHP-CGI параметров из строки запроса

Есть уязвимость в PHP: CVE-2012-1823. Она позволяет как читать файлы вашего сайта (/some_script.php?-s), так и в большинстве случаев исполнять произвольный php-код в контексте вашего сайта.
Рекомендуется незамедлительно обновить версию PHP, либо не использовать php-cgi вовсе.

Неправильно сконфигурирована связка Nginx + php-fpm

К сожалению, в интернете все еще достаточно много ужасных "How To" по настройке связки nginx + php-fpm, в которых ни слова не сказано о том, что php-fpm с конфигурацией по умолчанию и location в nginx примерно следующего содержания:

         location ~* \.php$ { fastcgi_pass backend; ...}
позволит злоумышленнику интерпретировать любой файл как php-скрипт.

К примеру, обратившись к аватару пользователя таким образом: /upload/main/f6f/photo.jpg/some.php, злоумышленник выполнит php-код, содержащийся в аватаре (например в EXIF или конце PNG).

Наиболее распространенными вариантами решения является либо указание в php.ini (если это удовлетворяет требованиям вашего проекта):

         cgi.fix_pathinfo=0
либо корректно сконфигурировать nginx, учитывая особенности вашего проекта.

Открыт доступ к служебным "статус" страницам

Так называемые статус-страницы позволяют злоумышленнику получить дополнительную информацию о вашем сайте, которая им столь нужна. Не стоит их радовать, ограничив доступ к ним (а лучше отключив/закрыв авторизацией, т.к. доверять localhost так же не стоит).

Наиболее распространенные:

  • Apache mod_status (например: http://apache.org/server-status);
  • PHP-FPM Status Page - pm.status-path.

Найдены временные файлы

При редактировании файлов на сервере по SSH или при использовании DCVS могут создаваться временные копии текущих файлов, в которых может содержаться важная информация (например, все еще актуальные данные о подключении к БД).

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

Найдены опасные файлы

Так же достаточно часто встречаются сайты, на которых остались какие-то файлы после отладки, установки и т.д.
Например: bitrixsetup.php, bx_1c_import.php, restore.php, log.txt и т.д.

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

Доступны настройки PhpMyAdmin

Еще одна частая проблема - доступны настройки PhpMyAdmin (папочка setup в новых версиях). Они как минимум позволяют прочесть текущую конфигурацию PhpMyAdmin и, вдобавок, в них постоянно находятся новые уязвимости. Внешнее сканирование сообщит, "куда нужно смотреть".

Публичный доступ к файлам контроля версий

Как ни странно - публичный доступ к служебным каталогам DCVS все еще достаточно актуальное явление. Зачастую это крайне опасно для вашего сайта - необходимо в срочном порядке закрыть доступ к таким каталогам (.git, .hg, .bzr и т.д.) и к файлам игнорирования (.gitignore, .hgignore и т.д.). В идеале необходимо пользоваться экспортом в вашей DCVS. Разумеется, внешнее сканирование сообщит, "куда нужно смотреть".

Разрешено отображение сайта во фрейме с произвольного домена

Эта ошибка по своей сути ничто иное как, проверка включена ли у вас защита от фреймов. Суть защиты заключается в запрете отображения целевого сайта во фрейме со стороннего сайта или запрете работы во фреймах вовсе. Это рекомендованная настройка нужна для предотвращения целого класса client-side атак (например, таких как Clickjacking, Framesniffing и т.п.).

Проверяемый сайт отвечает на хост по умолчанию

Это, пожалуй, одна из самых распространенных ошибок конфигурации для выделенных серверов. Суть проблемы заключается в том, что сайт отвечает на любой Host в заголовке запроса, вследствие чего, например, если $_SERVER["HTTP_HOST"] попадет в кеш компонента, то получаем классический content spoofing.

Проверить очень легко, запрашиваем наш сайт с правильным хостом:

         $ http -v head some.info HEAD / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, compress Host: some.info User-Agent: HTTPie/0.6.0 HTTP/1.1 200 OK Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: keep-alive Content-Encoding: gzip Content-Type: text/html; charset=windows-1251 Date: Fri, 25 Oct 2013 06:57:31 GMT Expires: Thu, 19 Nov 1981 08:52:00 GMT P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA" Pragma: no-cache Server: nginx/1.2.6 Set-Cookie: PHPSESSID=vp93uc1j3avoibvfkusn5p6gc5; path=/; HttpOnly X-Frame-Options: SAMEORIGIN X-Powered-CMS: Bitrix Site Manager (a0b80388d20et47833773cf8f6b7c738)
А теперь с произвольным:
         $ http -v head some.info 'Host: batman.inc' HEAD / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, compress Host: batman.inc User-Agent: HTTPie/0.6.0 HTTP/1.1 200 OK Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: keep-alive Content-Encoding: gzip Content-Type: text/html; charset=windows-1251 Date: Fri, 25 Oct 2013 06:57:35 GMT Expires: Thu, 19 Nov 1981 08:52:00 GMT P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA" Pragma: no-cache Server: nginx/1.2.6 Set-Cookie: PHPSESSID=55up92i9r2sorg24j78lud9li2; path=/; HttpOnly X-Frame-Options: SAMEORIGIN X-Powered-CMS: Bitrix Site Manager (a0b80388d20et47833773cf8f6b7c738)
Если мы видим одинаковый контент отданный для правильного и произвольного хоста - у нас неправильно сконфигурирован веб-сервер. Для решения этой угрозы, например, в nginx достаточно добавить сервер по умолчанию с перенаправлением на основной домен, например, такой (domain.com замените на ваш домен):
         server { listen 80 default_server; access_log /var/log/nginx/default.host.access.log main; return 301 $scheme://domain.com$request_uri; }
Перед этим не забудьте убедиться, что больше нет явно указанных серверов по умолчанию (с директивой default_server).

Подробнее можно посмотреть в документации nginx.

Найден phpinfo()

С завидным постоянством на сайтах можно увидеть файлы x.php, pi.php, phpinfo.php и т.д. с выводом phpinfo().
Эти файлы не должны быть доступны.

Внешнее сканирование укажет список таких файлов, которые необходимо удалить и впредь использовать встроенную в страницу административного интерфейса ссылку (Настройки > Производительность > PHP, ссылка Настройки PHP) с выводом phpinfo().

Включен Automatic MIME Type Detection для Internet Explorer

По умолчанию в Internet Explorer включен mime-сниффинг (MIME Type Detection in Windows Internet Explorer, Internet Explorer 8 Security Part VI: Beta 2 Update), что никак не идет на пользу безопасности пользователей вашего сайта. В двух словах, если в заголовке ответа Content-Type сказано text/plain, application/octet-stream, он отсутствует либо пуст - Internet Explorer сам решает какой тип у контента, основываясь на его содержимом (начиная с Internet Explorer 8 этим поведением можно управлять при помощи заголовка X-Content-Type-Options).

Самый простой пример эксплуатации этого - загрузка файла без расширения. Допустим, у нас есть скрипт позволяющий загружать только картинки, но сохраняющий их без расширения...

  • Загружаем через него файл test.gif с содержимым:
                 GIF89 <html> <script> prompt('XSS on ' + document.domain); </script> </html>
  • Т.к. это вполне "валидная" картинка с позиции PHP, она благополучно попадет на сервер, но сохранится без расширения (по условиям примера). Допустим, будет доступна по адресу: http://192.168.1.185:8080/upload/test.
  • Для начала проверяем, как его обработает Internet Explorer 10 с включенным mime-сниффингом:
                 $ http head http://192.168.1.185:8080/upload/test HTTP/1.1 200 OK Accept-Ranges: bytes Connection: keep-alive Content-Length: 80 Content-Type: application/octet-stream Date: Sun, 27 Oct 2013 12:14:45 GMT ETag: "526d026b-50" Last-Modified: Sun, 27 Oct 2013 12:09:15 GMT Server: nginx/1.4.3
    Т.к. тип отдаваемого контента application/octet-stream (по умолчанию, регулируется директивой default_type), Internet Explorer включает mime-сниффинг, и мы видим, что наша "картинка" была обработана как html-код:

  • А теперь с заголовком X-Content-Type-Options: nosniff.

    В nginx это можно сделать через add_header:

                 add_header X-Content-Type-Options nosniff;
    Проверяем:
                 $ http head http://192.168.1.185:8080/upload/test HTTP/1.1 200 OK Accept-Ranges: bytes Connection: keep-alive Content-Length: 80 Content-Type: application/octet-stream Date: Sun, 27 Oct 2013 12:18:21 GMT ETag: "526d026b-50" Last-Modified: Sun, 27 Oct 2013 12:09:15 GMT Server: nginx/1.4.3 X-Content-Type-Options: nosniff
    И видим, что Internet Explorer теперь предлагает нам сохранить этот файл:

Документация по теме

  • Трактовка результатов сканера безопасности (блог)


Стандартный уровень
158 / 278

Стандартный уровень

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

* для быстрого перехода к описанию настройки нужного Вам параметра кликните по одной из ссылок ниже:

  • 1 , 2 Проактивный фильтр и исключения из него;
  • 3 Ведение журнала вторжений;
  • 4 Контроль активности;
  • 5 Уровень безопасности группы администраторов;
  • 6 Использовать CAPTCHA при регистрации;
  • 7 Режим вывода ошибок (error_reporting);
  • 8 Показ ошибочных запросов базы данных.

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

1 , 2 Проактивный фильтр и исключения из него

Включение или отключение проактивного фильтра выполняется на странице Проактивный фильтр (Настройки > Проактивная защита > Проактивный фильтр) с помощью кнопки Включить проактивную защиту (или Выключить проактивную защиту).

На закладке Активная реакция настраиваются действия системы при попытке вторжения на сайт:

Выберите необходимый вам способ реакции на вторжение:
  • Сделать данные безопасными – опасные данные будут модифицированы, например, select будет заменен на sel ect.
  • Очистить опасные данные – введенные опасные данные будут удалены.
  • Оставить опасные данные как есть – с опасными данными никаких действий выполняться не будет.

Чтобы заблокировать пользователя на некоторое количество минут, отметьте опцию Добавить IP-адрес атакующего в стоп-лист. При этом период времени блокировки задается в поле На сколько минут добавлять в стоп-лист.

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

Для фиксирования попыток атаки отметьте опцию Занести попытку вторжения в журнал.

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

При необходимости могут быть заданы исключения из проактивного фильтра (закладка Исключения), т.е. проактивный фильтр не будет применяться на страницах, указанных на данной закладке.

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

Однако при необходимости можно добавить определенные страницы или конкретных пользователей в правило исключения

Исключение для конкретных страниц
  • Перейдите на вкладку Исключения страницы Настройки > Проактивная защита > Проактивный фильтр.
  • В поле Маски исключения внесите нужные вам страницы. С помощью кнопки Добавить можно увеличить число полей для исключений.

Исключение для конкретных пользователей

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

  • Перейдите на вкладку Доступ страницы Настройки > Настройки продукта > Настройки модулей > Проактивная защита.
  • Для нужных групп пользователей выберите уровень доступа: [F] Обход проактивного фильтра.

Примечание: проактивный фильтр не работает для тех групп пользователей, для которых в правах доступа к модулю Проактивная защита разрешена операция Обход проактивного фильтра. Определяется настройками уровня доступа (Настройки > Пользователи > Уровни доступа) к модулю проактивной защиты.

Примечание: Начиная с версии модуля 14.0.3, для страниц в публичной части сайта с сообщениями функционала "Защита редиректов от фишинга" и "Проактивный фильтр" добавлены теги noindex и nofollow.

3 Журнал вторжений

Журнал вторжений (Настройки > Проактивная защита > Журнал вторжений) предназначен для ведения логов событий, связанных с потенциальными угрозами безопасности сайта. Период времени, в течение которого хранятся записи, определяется настройками Главного модуля на закладке Журнал событий.

Информация о событии, которая фиксируется в журнале
  • дата и время события;
  • название произошедшего события;
  • объект события;
  • IP-адрес, с которого производилась атака. По ссылке [стоп-лист] можно добавить адрес в стоп-лист модуля Веб-аналитика.
  • URL страницы, на которой выполнялось вторжение;
  • имя пользователя, если событие было выполнено зарегистрированным пользователем или идентификатор гостя (при наличии модуля Веб-аналитика);
  • описание события;
  • срочность (SECURITY или WARNING);
  • источник события;
  • используемый User Agent;
  • сайт, на котором произошло событие.

В журнале фиксируются события следующих типов:

  • Со стороны модуля Веб-аналитика: превышение лимита активности.
  • Со стороны модуля Проактивная защита: попытки внедрения SQL и PHP, попытки атак через XSS, попытки заражения вирусами и фишинга через редирект.
  • Со стороны модуля Форум: операции над темами и сообщениями форумов.
  • Со стороны Главного модуля: успешный вход и выход из системы, запрос на смену и смена пароля пользователя, ошибки входа и входа при сохраненной авторизации, регистрация нового пользователя, ошибка регистрации и удаление пользователя.

Подробное описание всех полей списка смотрите на странице пользовательской документации .

4 Контроль активности

Контроль активности пользователей ведется на основе средств модуля Веб-аналитика и, следовательно, доступен только в тех редакциях продукта, в которые входит этот модуль. Контроль активности позволяет установить защиту от чрезмерно активных пользователей, программных роботов, некоторых категорий DDoS-атак, а также отсекать попытки подбора паролей перебором.

Включение или отключение контроля активности выполняется на странице Контроль активности (Настройки > Проактивная защита > Контроль активности) с помощью кнопки Включить контроль активности (или Выключить контроль активности).

На закладке Параметры задаются параметры максимальной активности пользователей вашего сайта.

Таким образом, если пользователь превысит количество запросов за указанное количество секунд, то он будет заблокирован на заданное время. При этом ему будет отображена специальная страница, шаблон которой можно отредактировать по ссылке редактировать шаблон. Для фиксирования превышения лимита активности в журнале вторжений необходимо отметить опцию Сделать запись в журнале событий.

Примечание: Контроль активности связан с работой модуля Веб-аналитика. Поэтому его настройку можно также произвести на странице настроек модуля (Настройки > Настройки продукта > Настройки модулей > Веб-аналитика, закладка Настройки, секция Ограничение активности).

5 Уровень безопасности группы администраторов

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

  • На странице Панель безопасности нажмите ссылку Включить повышенный для опции Уровень безопасности группы администраторов. Откроется форма редактирования группы на закладке Безопасность (Настройки > Пользователи > Группы пользователей).
  • В поле Предопределенные настройки уровня безопасности укажите повышенный уровень.
  • Сохраните внесенные изменения.

6 Использовать CAPTCHA при регистрации

Необходимым условием для защиты сайта на стандартном уровне является использование CAPTCHA при регистрации новых пользователей. Данная опция включается в настройках главного модуля на закладке Авторизация.

Настройка внешнего вида CAPTCHA выполняется на странице CAPTCHA (Настройки > Настройки продукта > CAPTCHA).

7 Режим вывода ошибок

Наряду с параметром Использовать CAPTCHA при регистрации, необходимо настроить еще один параметр главного модуля – Режим вывода ошибок (error_reporting), чтобы защита сайта осуществлялась на стандартном уровне безопасности.

  • Перейдите на страницу настроек Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль).
  • В поле Режим вывода ошибок (error_reporting) укажите Только ошибки или Не выводить.

    • Примечание: если выбрать режим Ошибки и предупреждения, то будет установлен начальный уровень безопасности.

  • Сохраните внесенные изменения.

8 Показ ошибочных запросов базы данных

Для осуществления защиты веб-проекта на стандартном уровне показ ошибочных данных должен быть выключен, т.е. переменная $DBDebug должна принимать значение code. Таким образом, в случае ошибки при создании соединения с базой или выполнения запроса полный текст ошибки будет отображаться только администраторам сайта. Если же переменная принимает значение true, то полный текст ошибки будет отображаться всем пользователям сайта.

Изменение значения переменной $DBDebug выполняется в файле /bitrix/php_interface/dbconn.php.

Документация по теме:

  • Проактивный фильтр
  • Контроль активности


Высокий уровень
159 / 278

Высокий уровень

Чтобы защита веб-проекта осуществлялась на высоком уровне безопасности, сначала необходимо настроить стандартный уровень безопасности, а затем выполнить настройку параметров для высокого уровня:

Высокий уровень безопасности

* для быстрого перехода к описанию настройки нужного Вам параметра кликните по одной из ссылок ниже:

  • 1 Журналирование событий главного модуля;
  • 2 Защита административной части;
  • 3 Хранение сессий в базе данных;
  • 4 Смена идентификатора сессий;
  • 5 Защита редиректов от фишинга.
  • 6 Защита от фреймов.

Внимание: если некоторые параметры высокого уровня безопасности принимают несоответствующие значения, то защита сайта будет осуществляться на стандартном или начальном (если настроены не все параметры стандартного уровня) уровне, но с учетом настроенных параметров на стандартном, высоком и повышенном уровнях.

1 Журналирование событий главного модуля

Параметр Журналирование событий главного модуля подразумевает целый ряд настроек Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль):

Чтобы защита сайта велась на высоком уровне, должны быть отмечены все опции секции События для записи в журнал . Даже если не будет отмечена только одна опция, то считается, что параметр Журналирование событий главного модуля принимает несоответствующее значение, и защита сайта будет осуществляться на стандартном (или начальном) уровне безопасности.

2 Защита административной части

Защита административной части сайта осуществляется с помощью ограничения доступа со всех, кроме указанных в настройках IP-адресов. Включение или отключение защиты выполняется на странице Защита административного раздела (Настройки > Проактивная защита > Защита административного раздела) с помощью кнопки Включить защиту (или Выключить защиту).

Внимание: перед включением защиты административной части необходимо внести в список IP-адреса и диапазоны, с которых разрешен доступ к административной части свой IP-адрес и дополнительные адреса (или диапазоны), с которых разрешен доступ.

Снять уже установленное ограничение по IP-адресам можно посредством создания специального файла, путь к которому задается в настройках модуля Проактивная защита. По умолчанию файл имеет имя следующего формата: ipcheck_disable_<случайный_набор_из_32_символов>.

3 , 4 Хранение сессий и смена идентификатора

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

  • Время жизни сессии (минут);
  • Маска сети для привязки сессии.

Но такие строгие настройки не всегда получается ввести, например в силу того, что пользователи могут работать с разных IP-адресов. Модуль Проактивная защита позволяет выполнить защиту сессий с помощью следующих инструментов:

  • хранение сессий в базе данных модуля безопасности;
  • смена идентификатора сессий через указанное время.

Включение (или отключение) механизма хранения данных сессий пользователей в базе данных выполняется на странице Защита сессий (Настройки > Проактивная защита > Защита сессий) с помощью кнопки Включить хранение данных сессий в БД модуля (или Отключить хранение данных сессий в БД модуля).

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

Внимание! При переключении режима хранения сессий все пользователи потеряют авторизацию (данные сессий будут уничтожены).

Примечание: допустимо хранение сессий в memcached .

Настройка механизма смены идентификатора сессий выполняется на закладке Смена идентификатора формы настройки защиты сессий.

Чтобы выполнялась смена идентификатора, необходимо:

  • указать Время жизни идентификатора, в секундах, т.е. через какой промежуток времени будет изменяться идентификатор сессий;
  • нажать кнопку Включить смену идентификатора.

Смена идентификатора создает дополнительную нагрузку на сервер, но позволяет сделать похищение авторизованной сессии неэффективным.

Примечание: Хранение сессий также рекомендуется при конфигурации с несколькими веб-серверами веб-кластера .

5 Защита редиректов от фишинга

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

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

Включение или отключение защиты редиректов от фишинга выполняется на странице Защита редиректов (Настройки > Проактивная защита > Защита редиректов) с помощью кнопки Включить защиту редиректов от фишинга (или Выключить защиту редиректов от фишинга).

Параметры защиты от фишинга настраиваются на закладке Параметры:

Защита редиректов от фишинга может осуществляться:

  • Проверкой наличия HTTP-заголовка, описывающего страницу;
  • Проверкой наличия в HTTP-заголовке записи о текущем сайте, который описывает ссылающуюся страницу;
  • Добавлением цифровой подписи к ссылкам, генерируемым на сайте.

При включенной защите все системные ссылки обязательно подписываются дополнительным параметром индивидуальным для сайта и для этого перехода. Кроме того, можно защитить пользовательские ссылки перенаправлений, добавив их в поле Подписываемые URLs в секции Пользовательские (добавление полей ввода осуществляется с помощью кнопки Добавить).

Защита редиректов может выражаться одним из следующих действий:

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

    Текст сообщения задается с помощью поля Сообщение, а период задержки пользователя – в поле Задержка.
или
  • Перенаправлением на заведомо безопасный адрес, например, на главную страницу сайта.

    В этом случае необходимо задать адрес страницы сайта с помощью поля URL.

Примечание: Начиная с версии модуля 14.0.3, для страниц в публичной части сайта с сообщениями функционала "Защита редиректов от фишинга" и "Проактивный фильтр" добавлены теги noindex и nofollow.

Примечание: Начиная с версии модуля 20.0.0 cтраница защиты от редиректов отдает HTTP-статус 404 Not Found.

Для фиксирования попыток фишинга через редирект необходимо отметить опцию Занести попытку фишинга в журнал.

6 Защита от фреймов

Ограничение отображения страниц сайта во фреймах сторонних доменов позволяет защитить ресурс от Clickjacking'a (подсовывание невидимого фрейма с целевого ресурса для получения клика от пользователя), Framesniffing'а и существенно снижает риск проведения Cross-site scripting атак.

Включение или отключение ограничения отображения страниц сайта во фреймах на сторонних доменах осуществляется на странице Защита от фреймов (Настройки > Проактивная защита > Защита от фреймов), закладка Защита от фреймов.

На закладке Исключения можно указать страницы, для которых настройки ограничения применяться не будут.

Страницы можно указать по маскам (например: /bitrix/* или */news/*) как для всех сайтов, так и для конкретного.

Документация по теме:

  • Защита административного раздела
  • Защита сессий
  • Защита редиректов
  • Защита от фреймов


Повышенный уровень
160 / 278

Повышенный уровень

Чтобы защита веб-проекта осуществлялась на повышенном уровне безопасности, сначала необходимо настроить защиту на стандартном и высоком уровне, а затем настроить параметры повышенного уровня:

Повышенный уровень безопасности

* для быстрого перехода к описанию настройки нужного Вам параметра кликните по одной из ссылок ниже:

  • 1 Двухэтапная авторизация;
  • 2 Контроль целостности;
  • 3 , 4 , 5 , 6 Веб-антивирус.

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

1 Двухэтапная авторизация

Двухэтапная авторизация позволяет дополнить стандартную систему авторизации и позволяет значительно усилить систему безопасности сайта.

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

Подробнее про механизм двухэтапной авторизации можно посмотреть в соответствующей главе .

2 Контроль целостности

Форма, расположенная на странице Контроль целостности (Настройки > Проактивная защита > Контроль целостности), служит для выполнения проверки целостность ядра, системных областей, публичной части продукта.

Для защиты веб-проекта на повышенном уровне безопасности необходимо регулярно (примерно раз в неделю) выполнять проверку целостности системы. Кроме того, проверку целостности следует выполнять перед установкой обновлений системы, а после установки обновлений необходимо собрать новую информацию по файлам.

Примечание: некоторые обновления модуля могут потребовать переподписания скрипта контроля.

Первый запуск проверки целостности
  • Введите и запомните пароль, состоящий из латинских букв и цифр, длиной не менее 10 символов.
  • Подтвердите его в поле Пароль еще раз.
  • Задайте Ключевое слово, отличное от пароля, и запомните его.

  • Нажмите кнопку Далее.

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

Теперь можно приступать к сбору информации по файлам, чтобы в дальнейшем выполнить проверку целостности системы.

Сбор информации по файлам
  • На закладке Выбор действия отметьте опцию Собрать информацию по файлам:

  • Нажмите кнопку Далее. Откроется форма сбора данных.

  • Задайте параметры для сбора информации:
    • Область сбора данных – отметьте необходимые для обработки папки системы.
    • Расширения файлов – укажите расширения файлов, по которым должна быть собрана информация. Расширения файлов указываются через запятую без пробелов. По умолчанию информация собирается для файлов с расширениями php, js, htaccess.
    • Пароль для шифрования – введите и запомните пароль, который будет использоваться для шифрования и последующего дешифрования собранного верификационного файла.
    • Время выполнения шага – укажите количество секунд для выполнения одного шага сбора данных.
  • Нажмите кнопку Далее. Начнется процесс сбора данных, по окончании которого в целях безопасности рекомендуется скачать файл с данными на локальный компьютер.

Файл с верификационными данными собран, теперь можно выполнить проверку целостности системы.

Проверка целостности системы

При любом (кроме первого) запуске проверки целостности системы сначала проверяется сам скрипт контроля на наличие в нем изменений.

  • Введите пароль, которым вы подписали скрипт контроля, и нажмите кнопку Далее.

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

Примечание: если вы не увидели своего кодового слова в сообщении о результатах проверки, то скрипт контроля целостности файлов скомпрометирован (т.е. он был изменен и его результатам доверять нельзя). В этом случае необходимо заменить скрипт контроля целостности системы (например, можно сделать откат до более ранней версии модуля).

  • На закладке Выбор действия отметьте опцию Проверить файлы.

  • Нажмите кнопку Далее. Откроется форма выбора файла с верификационными данными.

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

  • В поле Пароль для дешифрования укажите пароль, который вы задавали при создании файла с верификационными данными.
  • Укажите время выполнения одного шага проверки (чем меньше время выполнения одного шага, тем больше нагрузка на сервер).
  • Нажмите кнопку Далее. Начнется процесс проверки целостности системы, по окончании которого будет выведен отчет:

3 , 4 , 5 , 6 Веб-антивирус

Веб-антивирус - система противодействия заражениям сайтов. Веб-антивирус выявляет в html-коде потенциально опасные участки и "вырезает" подозрительные объекты из кода сайта, тем самым препятствуя проникновению вирусов на компьютер пользователя.

Внимание! веб-антивирус не является заменой обычного антивируса.

Включение или отключение веб-антивируса выполняется на странице Веб-антивирус (Настройки > Проактивная защита > Веб-антивирус) с помощью кнопки Включить веб-антивирус (или Выключить веб-антивирус).

По умолчанию веб-антивирус всегда включен. Отключая его, Вы снижаете контроль за безопасностью своего сайта. Несмотря на ограничения доступа из Всемирной сети, корпоративный проект можно инфицировать.

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

Перейдите на страницу Настройки > Проактивная защита > Веб-антивирус, на вкладку Параметры. Откроется форма настройки параметров реагирования на угрозы.

В поле Интервал оповещения (минуты) можно изменить периодичность уведомления администратора при обнаружении модулем вируса. Значение можно оставить по умолчанию.

Вне зависимости от выбранного режима работы (только Оповестить или Вырезать) пользователь не получает сообщения. Но в первом случае система выдает посетителю сайта вместе с кодом запрошенной страницы код подозрительного объекта (и компьютер сотрудника тоже может заразиться вирусом). Во втором случае подозрительный код вырезается из отдаваемой пользователю страницы. В любом случае администратор получает уведомление (на почту и в Журнал вторжений).

Примечание: Строго говоря, вирус не присутствует на сайте. На сайте есть ссылка на связку скриптов и вирус, которыми заражаются посетители проекта. Заражение может реализоваться двумя способами:
  • Первый: на каком-либо сайте выставляется ссылка на вирус. Задача вируса — заразить посетителей. Если этот сайт посещает некоторый человек с устаревшим браузером, то связка скриптов (эксплоитов) "пробивает" браузер и заражает ПК посетителя. Компьютер посетителя пополняет армию ботов в какой-нибудь зомби-сети.
  • Второй: на этот сайт заходит не просто посетитель, а администратор другого сайта и тоже заражается. В этом случае вирус не просто пополняет зараженным компьютером армию ботов, а находит на компьютере сохраненные пароли от серверов, обслуживаемых этим администратором. Пароли передаются автору вируса, который заходит на сайты с помощью похищенных паролей и добавляет на них ссылки на свой вирус.

С полем Действия при обнаружении вируса нужно быть внимательными. Проблема заключается в том, что любая система может допускать ложные срабатывания. Количество ложных срабатываний веб-антивируса минимально, но, к сожалению, они все же встречаются. Иными словами, если вы выберете параметр Вырезать из кода сайта, то в случае ошибки можете нанести ущерб самим себе.

Как отличить ошибку от ложного срабатывания?

Работа веб-антивируса основана на эвристическом анализе потенциально опасных блоков в HTML-коде. В целом распознавание "вирусных" и легитимных блоков может быть сложной задачей даже для человека, а не только для программы.

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

Если вы уверены, что блок, на который срабатывает веб-антивирус, легитимный и не содержит ссылки на загрузку вирусов, то данное срабатывание антивируса является ложным. В этом случае вам необходимо взять некоторую строку из этого блока (достаточно длинную и достаточно уникальную) и добавить ее в исключения веб-антивируса на одноименной вкладке страницы Веб-антивирус. В результате антивирус перестанет срабатывать на любые обрабатываемые им блоки, содержащие указанную строку.

Маска исключений должна быть достаточно уникальной, но при этом покрывать все блоки данного типа (если они генерируются динамически). Вероятность того, что при добавлении достаточно длинной строки (содержащей, например, имена нормальных переменных или функций из корректного блока) случайно будет разрешен вирус, невелика.

Если срабатывание антивируса не ложное, то все будет намного сложнее. Удалить обнаруженный код — дело несложное. Нужно понять, как он оказался на вашем сайте. Почти со стопроцентной уверенностью можно утверждать, что "вирусный" блок был помещен злоумышленником с помощью пароля, похищенного через компьютер какого-либо сотрудника, имеющего доступ на сервер через FTP (SSH, SFTP и т. п.). Этот компьютер заражен вирусом, укравшим пароль от сервера.

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

Для отслеживания изменившихся файлов рекомендуется использовать инструмент Контроль целостности. Если же вы не используете данный инструмент, то в общем случае поиск всех изменений, оставленных хакером, может быть таким:

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

При этом остается надеяться, что хакер оказался не слишком хитрым, ограничился внедрением JavaScript со ссылками на вирус и не оставил за собой скрытых бэкдоров (что, в общем-то, бывает достаточно редко).

Примечание: для детектирования вирусов, внедренных до старта буферизации вывода, необходимо задать
  • либо в php.ini:
    • auto_prepend_file = /www/bitrix/modules/security/tools/start.php
  • или в файле .htaccess:
    • php_value auto_prepend_file "/www/bitrix/modules/security/tools/start.php"

Документация по теме:

  • Веб-антивирус
  • Двухэтапная авторизация
  • Контроль целостности


Двухэтапная авторизация
161 / 278

В этой главе рассказывается, как значительно усилить систему безопасности продуктов «1С-Битрикс» с помощью механизма двухэтапной авторизации и системы одноразовых паролей.


Система одноразовых паролей
162 / 278

Система одноразовых паролей дополняет стандартную систему авторизации и позволяет значительно усилить систему безопасности продуктов «1С-Битрикс».

Одноразовый пароль (англ. one time password, OTP) — это пароль, действительный только для одного сеанса аутентификации. Действие одноразового пароля также может быть ограничено определенным промежутком времени. Преимущество одноразового пароля по сравнению со статическим в том, что пароль невозможно использовать повторно. Таким образом, злоумышленник, перехвативший данные из успешной сессии аутентификации, не может использовать скопированный пароль для получения доступа к защищаемой информационной системе.

При каждой авторизации пользователь получает новый секретный код, что исключает возможность его получения злоумышленниками. При включении системы OTP в продукте «1C-Битрикс» можно авторизоваться только с использованием дополнительного одноразового пароля.

В продуктах «1C-Битрикс» поддерживаются два алгоритма генерации одноразовых паролей:

  • по счетчику ( HMAC-Based One-time Password, HOTP ) - код будет доступен до тех пор, пока пользователь не запросит новый;
  • по времени ( Time-based One-time Password, TOTP ) - код будет доступен в течение 30 секунд с момента его получения, после чего он автоматически обновится.

Внимание! Все коды доступа являются одноразовыми, повторное их использование для авторизации невозможно.

Краткое описание технологии

Для расчета значения OTP принимаются два входных параметра - секретный ключ (начальное значение для генератора) и текущее значение счетчика (количество необходимых циклов генерации или текущее время, в зависимости от выбранного алгоритма). Начальное значение хранится как в самом устройстве, так и на сайте после инициализации устройства.

В случае использования алгоритма по счетчику (HOTP), счетчик в устройстве увеличивается при каждой генерации OTP, на сервере - при каждой удачной аутентификации по OTP.
В случае использования алгоритма по времени (TOTP), счетчик в устройстве не хранится, на сервере лишь корректируется возможное небольшое смещение времени устройства при каждой удачной аутентификации по OTP.

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

В случае нарушения синхронизации счетчика генерации в устройстве и на сервере, её можно легко восстановить - привести значение на сервере в соответствие значению, хранящемуся в устройстве. Для этого администратор системы или сам пользователь (при наличии соответствующих разрешений) должен сгенерировать два последовательных значения одноразовых паролей (OTP) и ввести их в форму на сайте.

Примечание:

Количество действующих кодов авторизации по счетчику после предыдущей успешной авторизации ограничивается параметром Размер окна проверки паролей.

Количество действующих кодов авторизации по времени ограничивается временным интервалом 1 минута в обе стороны (по 2 кода, которые действительны 30 секунд).

Документация по теме:

  • Двухэтапная авторизация (ОТР) (курс "Пользователь сервиса Битрикс24")
  • Одноразовый_пароль (Wikipedia)
  • HMAC-Based One-Time Password Algorithm (Wikipedia)
  • Time-based One-time Password Algorithm (Wikipedia)


Механизм двухэтапной авторизации
163 / 278

Включение механизма двухэтапной авторизации

Включение/отключение механизма двухэтапной авторизации на сайте производится на странице Двухэтапная авторизация (Настройки > Проактивная защита > Двухэтапная авторизация).

Настройки механизма двухэтапной авторизации

На закладке Параметры (Настройки > Проактивная защита > Двухэтапная авторизация) можно настроить параметры механизма двухэтапной авторизации:

Подробное описание значений полей
  • Размер окна проверки паролей - задается размер окна проверки паролей, если используется алгоритм генерации паролей по счетчику ( мобильное приложение или аппаратное устройство OTP ).

    Если на устройстве была нажата кнопка несколько раз (например, случайно), но не было выполнено ни одной удачной аутентификации, то при превышении числа нажатий значения, заданного в этом параметре, произойдет нарушение синхронизации счетчика генерации, и пользователь не сможет выполнить вход на сайт.
  • Алгоритм генерации паролей по умолчанию - выбирается алгоритм генерации паролей, который будет использоваться в системе по умолчанию:
    • по счетчику - HOTP (RFC4226);
    • по времени - TOTP (RFC6238).
  • Разрешить запоминание одноразового пароля - опция позволяет разрешить запоминание введенного одноразового пароля с помощью соответствующей опции в форме авторизации, что позволит в следующий раз его уже не запрашивать.

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

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

    Например, в случае утери устройства для двухэтапной авторизации, пользователь сможет самостоятельно авторизоваться на сайте только с помощью этих кодов.

  • Требовать двухэтапную авторизацию - опция позволяет указанным ниже пользователям через заданное время принудительно включить двухэтапную авторизацию.

    В редакциях Стандарт и Малый бизнес есть возможность включить двухэтапную авторизацию, но нет модуля Социальная сеть, где по умолчанию выводятся публичные инструменты подключения пользователями этой авторизации. В этом случае нужно добавить в публичную часть страницу с размещённым на ней компонентом Подключение устройства OTP (bitrix:security.user.otp.init).

  • Количество дней для подключения - указывается период, в течение которого пользователь должен подключить свое устройство для двухэтапной авторизации. Отсчет времени начнется при первой авторизации пользователя после включения опции требовать двухэтапную авторизацию.

    По истечении указанного времени доступ на сайт будет возможен только с использованием одноразового пароля. Если в этом поле выбрано "0", то система будет требовать OTP уже при следующей авторизации пользователя.

  • Пользователи с обязательной двухэтапной авторизацией - указываются пользователи, для которых будет принудительно подключена двухэтапная авторизация.

После включения механизма на сайте необходимо, чтобы пользователи произвели подключение своих устройств двухэтапной авторизации.

Внимание! В случае если пользователь в указанный промежуток времени не подключил свое устройство для двухэтапной авторизации и не может зайти на сайт, администратор может на странице редактирования пользователя отключить для него двухэтапную авторизацию на необходимое время.

Если не получается зайти на портал

При жалобах пользователей на невозможность войти на портал при подключённой двухэтапной авторизации нужно сделать следующее:

  • При алгоритме по времени пользователь должен проверить расхождение времени на его устройстве и на сервере сайта (портала).
  • При алгоритме по счётчику администратору нужно повторно подключить телефон пользователя как аппаратное устройство.

Документация по теме

  • Пример настроек закладки Безопасность группы пользователей (курс Администратор. Базовый)


Подключение устройств
164 / 278

Как подключить аппаратное устройство OTP или мобильное приложение, рассказывается в этой главе.


Какие устройства можно подключить
165 / 278

После включения механизма двухэтапной авторизации всем пользователям нужно подключить одно из устройств OTP:

  • Мобильное приложение - пользователь самостоятельно подключается в публичной части сайта (продукты Битрикс 24).

    Также мобильное приложение можно подключить и в административной части сайта, обладая соответствующими правами.
  • Аппаратное устройство - подключение производится только через административную часть сайта (администратором или пользователем, обладающим соответствующими правами).

Внимание! Одновременно можно использовать лишь одно средство (мобильное приложение/аппаратное устройство) для двухэтапной авторизации. При подключении нового устройства авторизоваться с помощью старого будет уже невозможно.


Мобильное приложение
166 / 278

Мобильное приложение

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

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

Рекомендуется использовать мобильное приложение Bitrix24 OTP:

Его можно скачать по следующим ссылкам:

Подробнее про работу с приложением можно посмотреть в статье на helpdesk.bitrix24.ru.

Также для двухэтапной авторизации можно использовать и другие приложения.

Внимание! Перед подключением двухэтапной авторизации проверьте правильность установленного времени и часового пояса в вашем мобильном устройстве.

Подключение приложения в административной части сайта

Подключить приложение можно и в публичной, и в административной части сайта.

Подробнее про подключение приложения в публичной части сайта смотрите в уроке Мобильное приложение Bitrix24 OTP.

Для подключения мобильного приложения в административной части перейдите на страницу редактирования пользователя (Настройки > Пользователи > Список пользователей), вкладка Двухэтапная авторизация:

Примечание: Вкладка отображается только если в системе включено использование механизма двухэтапной авторизации.

  1. С помощью кнопки Подключить телефон выберите алгоритм генерации паролей, который будет использоваться для двухэтапной авторизации сайта и поддерживаться приложением:
    • По счетчику (HOTP);
    • По времени (TOTP).
  2. В открывшейся форме отсканируйте с помощью приложения QR-код
    • При использовании алгоритма по счетчику получите первый код и введите его в первое поле.
      Затем сгенерируйте второй код и введите его во второе поле.
    • При использовании алгоритма по времени получите код и введите его в единственное поле.

    В случае отсутствия возможности отсканировать QR-код воспользуйтесь ссылкой Ввести данные вручную

    • Адрес сайта вида www.site.ru;
    • E-mail, с которым был зарегистрирован пользователь на сайте;
    • Секретный ключ, который указан на картинке (можно не обращать внимания на пробелы);
    • Тип ключа.
  3. Сохраните внесенные изменения.

После чего подключение будет завершено, а форма на вкладке Двухэтапная авторизация примет следующий вид:

Описание возможных действий
  • Отключить - позволяет отключить двухэтапную авторизацию бессрочно или же на определенное количество дней.
  • Резервные коды - позволяет перейти к форме работы с резервными кодами.
  • Синхронизировать - позволяет перейти к форме синхронизации устройств.
  • Подключить новый брелок/телефон - позволяет произвести подключение нового устройства двухэтапной авторизации.

Резервные коды доступны, если на странице настроек двухэтапной авторизации отмечена соответствующая опция.

Внимание! Одновременно можно использовать лишь одно средство (мобильное приложение/аппаратное устройство) для двухэтапной авторизации. При подключении нового устройства авторизоваться с помощью старого будет уже невозможно.


Аппаратное устройство
167 / 278

Аппаратное устройство

Помимо мобильного приложения, для двухэтапной авторизации можно использовать и аппаратные устройства, например, USB-токен JaCarta WebPass .

Чтобы подключить брелок, необходимо перейти на страницу редактирования пользователя (Настройки > Пользователи > Список пользователей), вкладка Двухэтапная авторизация:

  1. С помощью кнопки Подключить брелок выберите алгоритм генерации паролей, который будет использоваться для двухэтапной авторизации сайта в соответствии с документацией к устройству:
    • По счетчику (HOTP);
    • По времени (TOTP).
  2. В открывшейся форме заполните следующие поля:
    • Секретный ключ - секретный ключ, который поставляется вместе с устройством.
    • Первое значение пароля на устройстве - вводится код, который необходимо сгенерировать с помощью устройства.
    • Следующее значение пароля на устройстве - вводится следующий по счету код, сгенерированный устройством.
  3. Сохраните внесенные изменения.

После чего подключение будет завершено, а форма на вкладке Двухэтапная авторизация примет следующий вид:

Описание возможных действий
  • Отключить - позволяет отключить двухэтапную авторизацию бессрочно или же на определенное количество дней.
  • Резервные коды - позволяет перейти к форме работы с резервными кодами.
  • Синхронизировать - позволяет перейти к форме синхронизации устройств.
  • Подключить новый брелок/телефон - позволяет произвести подключение нового устройства двухэтапной авторизации.

Резервные коды доступны, если на странице настроек двухэтапной авторизации отмечена соответствующая опция.

Внимание! Одновременно можно использовать лишь одно средство (мобильное приложение/аппаратное устройство) для двухэтапной авторизации. При подключении нового устройства авторизоваться с помощью старого будет уже невозможно.


Резервные коды
168 / 278

Резервные коды

Функционал резервных кодов используется для доступа на сайт в тех случаях, когда нет возможности использовать устройство двухэтапной авторизации. Например, если утерян брелок или телефон с приложением.

Примечание: Доступность функционала резервных кодов зависит от настроек двухэтапной авторизации.

Администратор сайта может получить список резервных кодов с помощью ссылки Резервные коды на странице редактирования пользователя (Настройки > Пользователи > Список пользователей), вкладка Двухэтапная авторизация:

Действительны только коды, созданные последними.

Также, в случае, когда пользователь не может воспользоваться своим устройством для входа на сайт, можно просто на время отключить двухэтапную авторизацию для него.

Примечание: В публичной части сайта получение Резервных кодов пользователем можно сделать с помощью создания администратором сайта страницы и размещения на ней компонента Резервные коды OTP (bitrix:security.user.recovery.codes).


Синхронизация
169 / 278

Синхронизация

Синхронизация необходима для случаев, когда на устройстве генерации одноразовых паролей по счетчику была произведена генерация паролей несколько раз (например, случайно нажата кнопка на аппаратном устройстве), но не было выполнено ни одной удачной аутентификации. Тогда, в случае превышения числа нажатий значения, заданного в параметре Размер окна проверки паролей, произойдет нарушение синхронизации счетчика генерации, и пользователь не сможет выполнить вход на сайт.

В этом случае необходимо выполнить повторную синхронизацию пользователя с устройством – привести значение на сервере в соответствие значению, хранящемуся в устройстве. Для этого администратор системы или сам пользователь (при наличии соответствующих разрешений) должен сгенерировать два последовательных значения одноразовых паролей и ввести их в форму редактирования параметров пользователя.

Примечание: Чтобы избежать нарушений синхронизации, можно увеличить значение параметра Размер окна проверки паролей.

Количество действующих кодов авторизации по счетчику после предыдущей успешной авторизации ограничивается параметром Размер окна проверки паролей.

Количество действующих кодов авторизации по времени ограничивается временным интервалом 1 минута в обе стороны (по 2 кода, которые действительны 30 секунд).


Компоненты
170 / 278

Компоненты

В редакциях Стандарт и Малый бизнес есть модуль Проактивная защита, но нет модуля Социальная сеть, который выводит форму подключения пользователями двухэтапной авторизации. Администратор должен создать публичные страницы для размещения компонентов подключения и резервных кодов.

Примечание: Доступ к информации, выводимой компонентами в публичной части сайта, имеют только авторизованные пользователи.

Вывод страницы подключения двухфакторной авторизации с помощью компонента

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

Для вывода формы необходимо:
  • Создать страницу, на которой разместится инструкция по подключению;
  • С помощью визуального редактора добавить компонент Подключение устройства OTP;
  • Сделать удобную для пользователей ссылку на эту страницу;
  • Теперь на этой странице пользователи смогут подключить двухфакторную авторизацию, следуя инструкции.

Пример создания такой страницы

Рассмотрим пример добавления страницы подключения двухфакторной авторизации в Интернет магазине в личном кабинете пользователя:

  • Создадим новую страницу с названием Двухфакторная авторизация;
  • В визуальном редакторе добавим компонент Подключение устройства OTP:

    Нажмите на рисунок, чтобы увеличить

  • Добавим в меню личного кабинета пользователя пункт Двухфакторная авторизация со ссылкой на созданную страницу;
  • Теперь пользователь сможет подключить себе двухфакторную авторизацию:

    Нажмите на рисунок, чтобы увеличить

Для вывода формы управления резервными кодами в публичной части используется компонент Резервные коды OTP.

Дополнительно

  • Подключение пользователем двухэтапной авторизации
  • компонент Социальная сеть - пользовательская документация
  • компонент Подключение устройства OTP - пользовательская документация
  • компонент Резервные коды OTP - пользовательская документация


Стоп-лист
171 / 278

Стоп-лист

Модуль Проактивная защита имеет собственный Стоп-лист (Настройки > Проактивная защита > Стоп-лист), отличный от стоп-листа модуля Веб-аналитика.

На странице Стоп-лист представлена информация о правилах блокировки доступа определенных IP-адресов к Вашему сайту или некоторым его разделам.

Список заблокированных IP-адресов создается либо вручную, либо автоматически.

Автоматическое создание Стоп-листа

Правило добавления в Стоп-лист создается автоматически в следующих случаях:

  • при включении механизма защиты административной части сайта;
  • при срабатывании проактивного фильтра на вторжении (если в качестве активной реакции на вторжение выбрано Добавить IP-адрес атакующего в стоп-лист на <количество> минут).

Создание вручную Стоп-листа

Чтобы создать правило блокировки вручную (например, на основе анализа журнала вторжений), выполните следующее:

  1. Нажмите на кнопку Добавить, расположенную на контекстной панели страницы стоп-листа проактивной защиты. Откроется форма создания (редактирования) правила блокировки доступа к сайту:

    2. Создание правила блокировки доступа

  2. Заполните поля формы необходимым Вам образом.

    Вы можете заблокировать доступ как к административной, так и к публичной части сайта, указав при этом IP-адреса или диапазоны адресов, которые будут заблокированы. Вы можете заблокировать доступ не ко всему сайту, а только к некоторым его разделам и страницам, для этого необходимо задать маски путей, доступ к которым необходимо заблокировать. Исключения в правиле задаются как по IP-адресам, так и по маскам путей.

    Примечание: каждый IP-адрес или маска пути задается в отдельном поле, которое добавляется по кнопке Добавить.

    Диапазон IP-адресов указывается с помощью дефиса, например, 192.168.0.1-192.168.0.100.
  3. Сохраните внесенные данные.

В результате пользователю, для IP-адреса которого имеется правило блокировки доступа, при попытке зайти на сайт будет выдана ошибка HTTP 403 – доступ запрещен.

Документация по теме

  • Стоп-лист
  • Создание и редактирование правила стоп-листа


Хосты/домены
172 / 278

Хосты/домены: ограничение доступа и перенаправление запросов

На странице Хосты/домены (Настройки > Проактивная защита > Хосты/домены) можно ограничить доступ или перенаправить на заданную страницу те запросы, у которых адрес в HTTP-заголовке Host не будет соответствовать разрешенным адресам.

Данный режим позволяет предотвратить подмену HTTP-заголовка Host и, соответственно, $_SERVER["HTTP_HOST"].

Доступны следующие настройки:

  • Ограничивать - включение режима ограничения для "не правильных" запросов;
  • Логировать - запись в журнал информации о запросах, которые имеют не соответствующие заголовки;
  • Активная реакция - выбор режима ответной реакции на запросы с несоответствующими заголовками:
    • Запрещать доступ - доступ к сайту будет ограничен;
    • Перенаправлять - будет произведено перенаправление на страницу, указанную ниже.
  • Адрес перенаправления - указывается страница, на которую будет производиться перенаправление;
  • Список разрешенных хостов/доменов - Указываются разрешенные хосты, с которыми будет производиться сравнение заголовков Host.

    Примечание: Допускается запись хостов через пробел и с новой строки.
    Возможно использование символа *, например: *.site.com.

    При использовании многосайтовости на разных доменах в этом списке обязательно должен быть указан домен второго сайта во избежание 403 ошибки.

Документация по теме:

  • Хосты/домены


Защита от DDoS
173 / 278

Защита от DDoS

DDoS (или DDos-атака) - (от англ. Denial of Service — отказ в обслуживании) атака злоумышленниками на вычислительную систему с целью доведения ее до отказа, вследствие которого доступ легальных пользователей системы к ее ресурсам будет затруднен или запрещен.

Примечание: Защита от DDoS недоступна в ограниченной лицензии .

Защита от DDoS предоставляется компанией 1С-Битрикс совместно с компанией Qrator. Для того, чтобы поставить сайт под защиту необходимо заполнить форму на странице Настройки > Защита от DDoS. После того, как форма будет заполнена, заявка на защиту от DDoS будет направлена в компанию Qrator, а на указанный в форме E-mail будет прислано письмо с дальнейшими указаниями по настройке.

Бесплатная защита в течение 10 дней на протяжении года предоставляется при активной лицензии "1С-Битрикс:Управление сайтом". Причем предоставляемые 10 дней включают в себя и процедуру подключения, и непосредственно саму защиту. При продлении лицензии будут предоставлены новые 10 дней.

Внимание! Предоставляемые 10 дней включают в себя непрерывную защиту, приостановить действие которой будет нельзя.

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


Проверьте себя
174 / 278

Ответьте на несколько вопросов по теме Безопасность сайта, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Для защиты от атак, основанных на прослушивании сетевого соединения, нужно перевести сайт на работу по протоколу https.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
2 Первым шагом при переходе на HTTPS является установка SSL-сертификата.
Верно
Увы, вы ошиблись. Перед переходим на HTTPS необходимо подготовить сайт, изменив все ссылки с абсолютных на относительные. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
3 Журнал изменений более подходит для мониторинга изменений контента, а Журнал событий - для мониторинга изменений настройки системы.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Для каждой группы пользователей можно настроить свои параметры безопасности.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Параметры безопасности можно настроить с учётом специфики работы различных групп пользователей. Советуем почитать тему ещё раз.
5 Единственный способ борьбы с автоматической регистрацией ботов - CAPTCHA.
Верно
Увы, вы ошиблись. Есть много способов борьбы с автоматической регистрацией (использование CAPTCHA - только один из способов). Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
6 Один администратор сайта не может закрыть доступ другому администратору.
Верно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
7 Проактивная защита является существенным дополнением к стандартной политике безопасности продукта. Поэтому одноименный модуль включен во все редакции продукта «1С-Битрикс: Управления сайтом» (кроме Старта).
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
8 Чтобы настроить защиту на Повышенном уровне, достаточно настроить стандартный уровень защиты, а затем настроить параметры повышенного уровня.
Верно
Увы, вы ошиблись. Для уровней защиты справедливо понятие "вложенности": чтобы настроить Повышенный уровень, нужно настроить сначала стандартный уровень защиты, потом высокий уровень, а уже в финале - параметры повышенного уровня. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
9 Инструмент Сканер безопасности позволяет провести не только локальное сканирование, но и внешнее.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
10 При включенном механизме двухэтапной авторизации можно использовать либо специальное аппаратное устройство генерации кодов, либо мобильное приложение Bitrix OTP.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
11 Если пользователь потерял устройство двухэтапной авторизации, то администратор сайта может либо выдать пользователю Резервные коды, либо временно отключить двухэтапную авторизацию конкретно для этого пользователя.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
12 В модуле Проактивная защита можно автоматически или вручную создать правило блокировки определенных IP-адресов.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Это можно сделать на странице Стоп-лист. Советуем почитать тему ещё раз.


Практические задания
175 / 278

После изучения главы рекомендуем выполнить несколько практических заданий. Их можно выполнять на:

  1. тестовой лаборатории, предоставленной компанией 1С-Битрикс
    2. либо
  2. на установленной на локальный компьютер пробной версии 1С-Битрикс: Управление сайтом

Первый вариант проще: Виртуальная лаборатория предполагает установку системы в упрощённом, в отличие от локальной версии 1С-Битрикс: Управление сайтом, варианте. При такой установке для получения идентичного изображения у пользователя и на скриншотах заданий выберите на шаге Решение для установки: Интернет-магазин . На остальных шагах менять установки по умолчанию не нужно.

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

Примечания:
  1. Настоятельно рекомендуем НЕ выполнять задания на работающем, "боевом" сайте.
  2. Если вы всё же пытаетесь выполнять задания на работающем сайте, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

  1. Включите Проактивную защиту и настройте Проактивный фильтр согласно следующим требованиям:
    • опасные данные должны быть модифицированы;
    • IP-адрес атакующего необходимо занести в стоп-лист на 4 часа, а попытку вторжения - в журнал;
    • для группы Администраторов интернет-магазина нужно сделать исключение (обход фильтра).

    Решение
    Задание составлено по материалам уроков:
    • Стандартный уровень
    • Стоп-лист

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  2. Включите Защиту административного раздела (не забудьте добавьте в исключения свой IP-адрес).

    Решение
    Задание составлено по материалам уроков:
    • Высокий уровень

    Результат:

    Нажмите на рисунок, чтобы увеличить

    Внимание: Помните, что перед включением защиты административной части необходимо внести в список IP-адреса и диапазоны, с которых разрешен доступ к административной части свой IP-адрес и дополнительные адреса (или диапазоны), с которых разрешен доступ.

  3. Включите механизм двухэтапной авторизации и настройте её согласно следующим требованиям:
    • алгоритм генерации паролей - по времени;
    • запрещено запоминание одноразового пароля;
    • разрешено использование резервных кодов;
    • двухэтапная авторизация обязательна для группы контент-редакторов сайта;

    Решение
    Задание составлено по материалам уроков:
    • Повышенный уровень
    • Включение и общие настройки механизма двухэтапной авторизации

    Результат:
    1. Включаем механизм двухэтапной авторизации (Настройки > Проактивная защита > Двухэтапная авторизация):

    2. На вкладке Параметры указываем нужные настройки:

  4. * После настройки механизма двухэтапной авторизации настройте свою учётную запись, скачав мобильное приложение для генерации кодов (например, бесплатное приложение BitrixOTP)

    Решение
    Задание составлено по материалам уроков:
    • Мобильное приложение

    Результат:
    1. Подключим телефон на странице редактирования своего профиля (Настройки > Пользователи > Список пользователей), вкладка Двухэтапная авторизация:

    2. В открывшейся форме продолжаем подключение согласно инструкции: скачаем и настроим приложение (например, считав QR-код), введём код подтверждения:


Производительность и отказоустойчивость
176 / 278

Быстро и надёжно

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

Умение решать задачи производительности и отказоустойчивости штатными инструментами Bitrix Framework - один из показателей квалификации администратора сайта. Список таких инструментов достаточно большой и с ними вы познакомитесь в этой главе.

Есть ещё один инструмент, описание работы с которым выделено в отдельный курс: Композитный сайт .

Так же рекомендуется использовать модуль Компрессия для передачи сжатых страниц.

Если вы в совершенстве овладели штатными инструментами, а производительность всё равно "хромает", возможно, что дело в разработке сайта. В этом случае вам поможет раздел Производительность при разработке на Bitrix Framework в курсе Разработчик Bitrix Framework.


Монитор производительности
177 / 278

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

Подробнее про оптимальную настройку сервера можно посмотреть в главе Конфигурирование веб-систем для оптимальной работы .


Настройки модуля
178 / 278

Настройки модуля

Глобальные параметры модуля определяются на странице настроек Монитор производительности (Настройки > Настройки продукта > Настройки модулей > Монитор производительности).

Нажмите на рисунок, чтобы увеличить

Для настройки модуля доступны следующие опции:

  • Максимальная длина URL при отображении - опция позволяет указать максимальное количество символов, которое будет использоваться для отображения URL'ов на административных страницах, относящихся к модулю.
  • Вести журнал предупреждений PHP - регистрация ошибок PHP, отображение ошибок на странице Ошибки PHP .
  • Вести журнал кеширования - регистрация информации о файлах кеша, просмотр информации - на странице Кеширование .
  • Записывать только операции с большими файлами кеша - сохранение операций только с файлами кеша, размер которых больше, чем указано в поле Размер файла кеша больше которого считать его большим.
  • Вести журнал SQL запросов - регистрация SQL запросы, просмотр записей на странице SQL Запросы .
  • Сохранять стек вызова для SQL запросов - сохранение стека запросов ,просмотр на странице SQL Запросы.
  • Записывать только медленные SQL запросы: - запись запросов с продолжительностью более чем указанные в поле Время исполнения после которого считать запрос медленным.
  • Включить монитор - запуск монитора производительности в выбранное время. Действие аналогично опции Тестировать производительность на странице Панель производительности (Настройки > Производительность > Панель производительности).

    Если монитор включен, то в поле Активность монитора будет отображен статус Работает, при этом ниже будет выведена информация: До окончания активности осталось: (часов:минут:секунд).

Настройка прав доступа производится типовым для Bitrix Framework способом. Подробнее про настройку доступа к модулям.

Документация по теме

  • Пользовательская документация по модулю "Монитор производительности"
  • Низкая оценка производительности на мощном железе (Блог)
  • "Монитор производительности" в работе (Блог)
  • Производительность сайта в картинках (Блог)
  • График времени генерации страниц сайта (Блог)
  • Модуль Производительности на практике. Оптимизация настроек сервера (Блог)
  • Оптимизация времени генерации страницы (Блог)


Публичная часть модуля
179 / 278

Просмотр статистики "с лица"

Для оценки производительности в публичной части сайта используется кнопка Отладка , которая позволяет отображать статистику прямо на странице:

Нажмите на рисунок, чтобы увеличить

Примечание: Для административной части сайта также доступна Статистика SQL-запросов, Время исполнения страницы и Статистика компрессии. Отображение статистики включается с помощью меню кнопки Отладка в публичной части сайта.

Что отображается в статистике

Статистика в целом по странице отображается внизу страницы:

  • Информация для опций Время исполнения страницы и Статистика компрессии
  • Информация для опции Статистика SQL-запросов .

    Ссылка Всего SQL запросов позволяет отобразить более подробную информацию обо всех запросах на странице в специальной форме (см. ниже).

  • При одновременно отмеченных опциях Время исполнения страницы и Статистика SQL-запросов внизу страницы будет доступна ссылка Время создания страницы , которая позволит отобразить статистику страницы в специальной форме:

    Примечание: При отмеченной опции Суммарная статистика по ссылке Время создания страницы будет доступна более подробная информация .

Информация о запросах

Для просмотра информации о запросах компонента, необходимо выбрать пункт меню Статистика включаемых областей и затем использовать ссылку вида Запросов: n, отображаемую в информационной области, которая расположена рядом с компонентом:

Откроется форма, в которой будет отображена информация о запросах :

Кеш

Данные о кеше выводятся во всплывающем окне:


Административные страницы модуля
180 / 278
В административной части сайта к модулю Монитор производительности относятся следующие страницы, расположенные в разделе Производительность (Настройки > Производительность).


Скорость сайта
181 / 278

Следите за скоростью работы сайта

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

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

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

На Рабочем столе в административной части есть гаджет, показывающий текущую скорость загрузки страниц вашего сайта:

Как считается Скорость сайта
Для подсчёта данных скорости сайта в этом инструменте используется стандартная функция любого современного браузера: Navigation Timing API. В браузере есть объект performance с ключом timing, который возвращает временные отметки этапов запроса к странице:

События полного цикла загрузки страницы:

Событие (метрика) | Описание
navigationStart | Время начала навигации
unloadEventStart | Время начала выгрузки предыдущего документа (0, если такового не было)
unloadEventEnd | Время завершения выгрузки предыдущего документа (0, если такового не было)
redirectStart | Время начала редиректа (или последовательности редиректов. 0, если таковых не было)
redirectEnd | Время окончания редиректа (или последовательности редиректов. 0, если таковых не было)
fetchStart | Время первого обращения в кэш браузера или начала загрузки страницы.
domainLookupStart | Время начала поиска адреса для доменного имени. Если страница извлекается из кэша, то свойство равнозначно предыдущей метрике.
domainLookupEnd | Время завершения поиска адреса для доменного имени. Если страница извлекается из кэша, то свойство равнозначно предыдущей метрике.
connectStart | Время начала соединения с сервером сайта или приложения. Если страница загружается из кэша или локально, то свойство равнозначно предыдущей метрике.
connectEnd | Время завершения соединения с сервером сайта или приложения. Если страница загружается из кэша или локально, то свойство равнозначно предыдущей метрике.
secureConnectionStart | Время первого "рукопожатия" при инициализации безопасного HTTPS соединения.
requestStart | Время начала загрузки основного документа (как из удаленного сервера, так и из кэша или локального ресурса). Технология Композитный сайт ускоряет именно этот отрезок тайминга - Request.
responseStart | Время до начала ответа сервера (время до первого полученного байта)
responseEnd | Время до полной загрузки основного документа
domLoading | Время установления свойству readyState значения "loading"
domInteractive | Время установления свойству readyState значения "interactive" - момент, когда пользователь может взаимодействовать со страницей
domContentLoadedStart | Время события DOMContentLoaded
domContentLoadedEnd | Время завершения всех действий связанных с предыдущим событием
domComplete | Время установления свойству readyState значения "complete"
loadEventStart | Время события onLoad
loadEventEnd | Время завершения всех действий связанных с предыдущим событием

Скоростью сайта считается время между navigationStart и domContentLoaded.

Технология подсчёта значения Скорость сайта следующая: из 1250 последних хитов вычитаются 250 (20%) самых медленных. Для оставшихся считается медиана, которая и выводится в гаджете. В результате полученное значение включает в себя как параметры сети, так и организацию бек-энда и фронт-энда.

Примечание: 20% "плохих" хитов откидываются чтобы исключить ошибку, связанную с неустойчивыми каналами связи (мобильный интернет, связь в средствах транспорта и подобные).

На Скорость сайта оказывают влияние различные факторы: производительность и настройки сервера, скорость "интернета" (доставки страничек сайта до посетителей), качество разработки сайта и использование различных технологий, ускоряющих его работу. Например, сторонние подключаемые скрипты, которые долго загружаются и исполняются, могут в итоге увеличивать общее время отображения страницы.

Сюда же входит правильность настройки сервера и его производительность, которую можно оценить на странице Монитор производительности . Чем медленнее или проблемнее сервер, тем больше времени понадобится для получения страницы, и тем хуже будет показатель скорости сайта.

Инструмент учитывает все эти параметры и показывает реальную картину работы вашего сайта для пользователей из сети.

Страница Скорость сайта

Для просмотра подробной информации о скорости загрузки сайта перейдите на страницу Скорость сайта (Настройки > Производительность > Скорость сайта).

В самом верху страницы выбирается сайт, для которого будет показана статистика. В списке доступны адреса всех сайтов, привязанных к лицензионному ключу. Ниже отображается оценочная характеристика скорости работы сайта:

Чтобы оперативно контролировать скорость работы сайта прямо с этой же страницы можно перейти к настройкам в Панели производительности , Композитного сайта и CDN .

Выводить только лишь средний показатель не эффективно. Страницы могут различаться как по количеству контента, так и по количеству скриптов и времени их выполнения. Для этого доступна соответствующая диаграмма, которая показывает, как распределились страницы и какие из них влияют на ухудшение среднего результата:

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

Еще ниже представлен график, отображающий статистику последних посещений сайта на разных этапах загрузки страницы:

  1. DNS (DNS Lookup). Хоть в большинстве своем, запрос к DNS по скорости близок к нулю, так как данные кешируются и браузерами, и самими серверами DNS (локальными, серверами провайдера и т.п.) инструмент "скорость сайта" учитывает этот параметр и выводит его на график.
  2. Дальше происходит Подключение к серверу (Connect to Server) и разрешение на дальнейшие действия. Это некое "рукопожатие", время которого так же выводится на график.
  3. Следующий шаг - это Ответ сервера (Request Document). Чем дальше от клиентов находится сервер, тем больше будет этот показатель. По нему можно ориентироваться, сколько теряется времени на ответ сайта посетителю.
    Данный ответ может быть не разовой операцией, ведь чем больше запросов делает страница к серверу, чтобы произвести загрузку ресурсов и т.п., тем дольше все будет отрабатываться.
  4. Дальше происходит Загрузка HTML (Receive Document). Здесь учитывается время загрузки HTML-страницы для ее последующей обработки.
  5. После того, как страница загрузилась, начинается процесс ее обработки - Обработка HTML ( часть блока Process the Document and Load the DOM) и загрузки ресурсов.
    Вот здесь при наличии ошибок в разработке, процесс загрузки страницы может очень "просесть", что будет заметно на графике.
  6. Далее следует Отрисовка страницы ( сумма процессов ), когда браузер обрабатывает содержимое страницы (синтаксический анализ HTML, CSS, обработка элементов JavaScript и отображение страницы) после загрузки её с сервера и до начала отрисовки.

Примечание: Все графики можно совместить, или отслеживать их в разрезе каждой страницы, поднося курсор к нужным узлам.

Документация по теме

  • Сайт глазами посетителей (Блог)


Страницы и компоненты
182 / 278

Страницы

На странице Монитор производительности: страницы (Настройки > Производительность > Страницы) можно просмотреть отчет по нагружаемости страниц:

Монитор производительности: страницы

Переход по ссылке с названием страницы позволяет просмотреть все её хиты на странице Хиты.

Компоненты

На странице Монитор производительности: компоненты (Настройки > Производительность > Компоненты) можно просмотреть отчет по используемым на страницах сайта компонентам или включаемым областям:

Монитор производительности: компоненты

Переход по ссылке в графе Запросы позволяет просмотреть все SQL Запросы компонента на странице SQL Запросы.

Кроме того на странице можно включить группировку по компонентам, если необходимо увидеть общую картину по использованию того или иного компонента.


Хиты
183 / 278

Учёт хитов

На странице Монитор производительности: хиты (Настройки > Производительность > Хиты) выводится отчет по хитам:

Монитор производительности: хиты

Переход по ссылке >> позволяет перейти на желаемую страницу в публичную часть сайта и просмотреть детальную статистику .

Примечание: Нажав кнопку Отладка или выбрав пункт меню Суммарная статистика (Отладка > Суммарная статистика) на Панели управления в публичной части сайта и перейдя по ссылке >> со страницы Монитор производительности: хиты (Настройки > Производительность > Хиты), можно просмотреть более детальную статистику .

Переход по ссылке с названием страницы (или по ссылке в графе Запросы) позволяет просмотреть все SQL запросы хита на странице SQL Запросы.

Переход по ссылке в графе Компоненты позволяет просмотреть отчет по используемым компонентам для хита на странице Компоненты.


SQL запросы
184 / 278

Отчёт по SQL запросам

Отчёты по запросам отображаются если в настройках модуля включены опции Вести журнал запросов и Сохранять стек вызова для SQL запросов.

На странице Монитор производительности: запросы (Настройки > Производительность > SQL запросы) отображается отчет по запросам SQL:

Двойной клик по строке таблицы с запросом или пункт меню действий План исполнения позволит просмотреть план исполнения запроса в новом окне .

После проведения теста в панели производительности наведение указателя мыши на текст запроса вызовет стек запроса. В первой строке отображается исходная функция, вызвавшая запрос:


Кеширование
185 / 278

Файлы кеша

Информация о файлах кеша доступна при включённой в настройках модуля Монитор производительности опции Вести журнал кеширования . В этом случае эта информация отобразится на странице Кеширование (Настройки > Производительность > Кеширование).

Кнопка Группировка позволяет выбрать режим отображения данных в таблице:

  • Без группировки - отображается вся информация о кеше, без каких-либо группировок;
  • Группировка по компонентам - информация о кеше сгруппирована по названию компонентов;
  • Группировка по типу - информация о кеше сгруппирована по типу кеша (управляемый / неуправляемый);
  • Группировка по каталогу - информация о кеше сгруппирована по каталогам, в которых хранятся файлы кеша;
  • Группировка по файлу - информация о кеше сгруппирована по файлам, в которых хранятся кеш.

Ссылки в таблице позволяют применять фильтр, согласно выбранному полю. Для полей таблицы в колонке Файл ссылка с названием позволяет перейти к просмотру содержимого этого файла.

Документация по теме:

  • Пользовательская документация


Таблицы в базе данных
186 / 278

Таблицы БД

На странице Таблицы в базе данных (Настройки > Производительность > Таблицы) можно просмотреть таблицы базы данных:

Таблицы в базе данных

При переходе по ссылке с именем таблицы позволяет просмотреть её содержимое.

Примечание: Система запоминает просмотренные таблицы и для удобства, в режиме просмотра данных таблицы, на контекстной панели будет доступно меню Последние таблицы (n), которое позволяет быстро переключаться между последними таблицами. На странице Таблицы также будут отображены Последние просмотренные таблицы .

Работа со страницей

Для таблиц доступны:

  • Групповые действия . Аналогичные действия также доступны и в меню действий для отдельных таблиц.
  • Фильтры. При введении текста в списке останутся только те таблицы, что содержат указанный текст .
  • Для таблиц модуля Инфоблоки, Поиск и Мгновенные сообщения реализована выборка строк с фильтром по текущему значению в связанных таблицах. Например, выберем таблицу b_search_content и в контекстном меню конкретной записи (в примере: ID=41) укажем выборку нужной строки . Произойдет выборка строк по таблице b_search_content, где SEARCH_CONTENT_ID=41.

    Навигация по связям таблиц базы данных

  • Вывод для значений подсказок с информацией , полученной из связанной таблицы.
  • По команде Изменить - редактирование записи в таблицах и сброс управляемого кеша после сохранения записи.
  • Редактирование сериализованных значений в альтернативном представлении.
  • Создание новых записей в таблицах с автоинкрементным первичным ключом.


Индексы
187 / 278

Индексы

Заочно нельзя сказать какие индексы необходимо создавать, надо всегда рассматривать конкретную ситуацию. Индексы нужны для конкретных выборок на конкретных проектах. В зависимости от архитектуры и логики проекта медленные запросы получаются у каждого свои, и для них нужны свои индексы, часто составные.

Страницы Анализ индексов и Список индексов - инструмент анализа и рекомендаций по созданию индексов.

Анализ индексов

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

После получения списка медленных запросов на странице Анализ индексов (Настройки > Производительность > Индексы > Анализ индексов) необходимо воспользоваться кнопкой Выполнить анализ собранных SQL запросов и отобразится список всех запросов, которые были совершены за это время, отсортированных по имени таблицы:

В общем списке в первую очередь нужно обращать внимание на запросы с большей продолжительностью и на большое их количество. Но и в случае больших величин у этих параметров не на каждый запрос стоит создавать индекс (возможно нужно просто исправить код компонента). Косвенным критерием успешности создания индекса служит время выполнения запроса до и после создания индекса.

При необходимости можно посмотреть план выполнения любого запроса. Команда Детальный анализ позволяет перейти к анализу конкретного запроса и созданию его индекса.

На этой странице жирным шрифтом выделяются таблица и колонки, к которым обращается запрос.

Структура таблицы - информационная закладка. Главное в ней - размер таблицы. И если размер большой (к примеру, больше 100 мегабайт), то построение и удаление индексов лучше проводить в часы наименьшей нагрузки на сайт.

Анализ запросов - закладка с собственно анализом запроса. При принятии решения о создании индекса учитывайте селективен ли этот запрос и процент селективности. Информация об этом выводится в таблице.

Создание индекса - закладка, на которой непосредственно принимается решение о создании (или нет) индекса. Те запросы, по которым не нужно создавать индекс можно внести в список Не предлагать создавать.

Запросы, по которым принято решение, пропадают из списка запросов и появляются на странице Список индексов.

Список индексов

Страница Список индексов (Настройки > Производительность > Индексы > Список индексов) отображает результаты ваших решений по анализу тех или иных запросов. "Зелёный" статус - индекс создан, "красный" статус - индекс не будет создаваться.


Настройки и ошибки PHP
188 / 278

Настройки

На странице Монитор производительности: настройки PHP (Настройки > Производительность > PHP) отображается сводная таблица Параметры окружения с анализом параметров PHP.

Монитор производительности: настройки PHP

С помощью ссылки Настройки PHP можно перейти на страницу с подробной информацией о PHP (phpinfo).

Ошибки

На странице Монитор производительности: журнал ошибок PHP (Настройки > Производительность > Ошибки PHP (N)) можно просмотреть журнал регистрации ошибок PHP, где N - общее количество ошибок.

Монитор производительности: сервер БД

Примечание: Данная страница отображается, только если в настройках модуля Монитор производительности указана опция Вести журнал предупреждений PHP.

Журнал ошибок PHP ошибок хранится в базе. Удалить журнал ошибок PHP можно с помощью опции Удалить собранные ранее данные в настройках модуля Монитор производительности.


Сервер БД
189 / 278

Наблюдаем за сервером

На странице Монитор производительности: сервер БД (Настройки > Производительность > Сервер БД) отображается сводная статистика производительности сервера базы данных и рекомендации:

Монитор производительности: сервер БД

Значения, отличающиеся от рекомендуемых, выделяются цветом:


История замеров производительности
190 / 278

История работы над производительностью

На странице История замеров производительности (Настройки > Производительность > История) выводятся результаты прошлых замеров производительности.

В таблице отображается производительность системы с указанием даты замера.


Панель производительности
191 / 278

Вы узнаете, как протестировать производительность, определить проблему и поправить "узкие" места сайта.


Панель производительности: поиск "узких" мест сайта
192 / 278

Поиск "узких" мест сайта

Для оценки производительности перейдите в раздел Монитор производительности (Настройки > Производительность > Панель производительности).

Нажмите на рисунок, чтобы увеличить

Нажатие кнопки Тестировать производительность позволит вам определить слабые места настройки хостинга. Важно понимать, что цифры в строке Конфигурация могут отличаться в разы при изменении нагрузки на сервер: если нагрузки нет, производительность может быть высокой, если есть – она сможет снизиться. Это связано с тем, что данные цифры показывают скорость открытия пустой страницы сайта и, естественно, зависят от общей загрузки сервера.

Проблема далеко не всегда кроется в хостинге, она может быть и в самом сайте. Модуль позволяет определить проблему и справить её. Для этого требуется запустить тест производительности в течение некоторого времени – для малопосещаемых проектов – час, для посещаемых можно выбрать меньшее время. Система будет фиксировать посещения и собирать статистику о времени выполнения каждой страницы, числе SQL запросов и другие параметры.

Показатель производительности - величина, обратная времени исполнения ядра продукта (среднему на 10 измерений).

Если Производительность = 18,66 , то публичная страница сайта с пустым шаблоном (например, версия для печати), с пустой рабочей областью будет создаваться за 1/18,66 или 0,0536 сек. Если говорить проще, то сервер сгенерирует 18 (пустых, но с подключением ядра) страниц в секунду. То есть чем выше число, тем производительнее работает сайт.

Умножив 18 (страниц в секунду) на 60 получим, что сервер может генерировать около 1080 пустых, но с подключением ядра, страниц в минуту. Так, если посещаемость ресурса составляет всего 1000 человек в день, то производительность сервера будет на пределе . Естественно, в реальных условиях производительность будет ниже, в зависимости от "нагруженности" различных страниц сайта, нагрузки на сам сервер и других условий.

Показатель производительности не вычисляется на основе производительности файловой системы, работы базы, сессий и почты. Эти цифры нужны для того, чтобы помочь системному администратору найти узкое место (если такое есть). Величина производительности всегда обратна величине среднего времени отклика.

Что важно знать

  • Оценка зависит от редакции продукта.
    Раз мы замеряем время работы ядра, очевидно, оно будет зависеть от размера ядра. Для редакции «Бизнес» со всеми включенными модулями оценка всегда будет ниже, чем на «Старте» на том же оборудовании. Эталонная оценка в Мониторе производительности продукта делалась на редакции «Бизнес».
  • Результат зависит от пользовательских функций в /bitrix/php_interface/init.php.
    Указанный файл подключается на каждый хит, в том числе и при работе административной части. Файл /bitrix/php_interface/init.php не должен содержать запросы к БД и любые другие ресурсоемкие операции.
  • Оценка будет меняться в зависимости от нагрузки.
    Чем больше нагружен сервер, тем ниже будет оценка. Но даже при пиковой нагрузке она не должна опускаться ниже приемлемого уровня, чтобы можно было говорить, что сервер справляется (например, не ниже 10 единиц, т.е. 0,1 сек. на страницу).
  • Показатель производительности не показывает возможности масштабирования системы.
    Процесс веб-сервера работает на одном ядре, а значит, когда измеряется производительность без нагрузки, число ядер процессора не влияет на результат. Другое дело под нагрузкой: многоядерная система в состоянии сохранить высокие показатели.
  • Для базы данных на отдельном сервере оценка производительности будет ниже.
    Когда речь идет о кластере, мы имеем масштабируемую систему: при увеличении нагрузки она должна сохранять хорошие показатели. Но при моментальном замере времени открытия страниц без нагрузки мы неизбежно увидим небольшое замедление за счет межсерверных коммуникаций.


Закладка Конфигурация
193 / 278

Закладка Конфигурация

В закладке отображаются текущие показатели производительности подсистем сервера и сравнение их с показателями эталонной системы.

Нажмите на рисунок, чтобы увеличить

Если какая-то подсистема не удовлетворяет оптимальным условиям, то будет выведена ссылка с рекомендациями по исправлению в колонке Примечание.

Основные ошибки конфигурации

  • Не установлен акселератор php.
    Наличие акселератора php просто жизненно необходимо, даже без дополнительных настроек страницы открываются в три раза быстрее, во столько же раз снижается нагрузка на процессор. Поддерживается акселератор OPcache.
  • Включено ограничение open_basedir.
    На shared хостинге сложно отделить клиентов друг от друга. Самый простой вариант: включить open_basedir, тогда на все операции с файлами происходит дополнительная проверка пути. Это существенно снижает производительность. Решением будет использовать собственный экземпляр Apache для каждого пользователя или установка дополнительных модулей на сервер для ограничения доступа. В этом случае ограничение open_basedir ставить не нужно! Доступ ограничивается системой для пользователя веб-сервера.
  • Не установлен или не настроен NGINX.
    Хоть это напрямую не влияет на оценку производительности, но чрезвычайно важно для нагруженных проектов: лучше когда статика (картинки, стили, ява скрипты) отдаётся NGINX'ом и не обрабатываться Apache. Посмотрите логи доступа Apache: там не должно быть ни одного запроса к статике!
  • Не настроена база данных.
    По возможности всегда используйте формат данных InnoDB, рекомендуемые настройки смотрите на странице монитора производительности Сервер БД.
  • Стоят не оригинальные драйвера оборудования.
    Особенно актуально для RAID контроллеров: при установке на Linux системах обычно предлагает к установке open source драйвера, которые не всегда достаточно эффективно работают с оборудованием. Всегда ставьте оригинальные драйвера с сайта разработчика.
  • PHP как CGI.
    PHP, запускаемый как CGI (не FastCGI) – плохая схема.
    На каждое обращение к php-скрипту запускается новый процесс интерпретатора PHP. Все это работает очень медленно, производительность сайта будет крайне низкой.

Как читать оценку подсистем

Монитор производительности не имеет прямого доступа к системным ресурсам, поэтому оценки, полученные средствами PHP, в большей степени отражают работу PHP, чем сервера.

  • Конфигурация - собственно, оценка производительности.
  • Среднее время отклика - цифра, обратная оценке производительности.
  • Процессор (CPU). Делается большое число простых математических вычислений. Задача не распараллеливается, поэтому идет оценка работы одного ядра процессора. Когда сайт работает на VPS, здесь часто можно увидеть, что "зажат" процессор.
  • Файловая система. Этот тест показывает не столько работу диска, сколько работу PHP с файлами: создается, исполняется, удаляется большое число простых файлов. Данный показатель зависит от производительности файловой системы и эффективности работы PHP акселератора. В целом хорошо показывает, как работает PHP на данной конфигурации (без учета работы базы).
  • Почтовая система. Отправляется тестовое письмо на hosting_test@bitrix.ru. Содержимое письма: "This is test message. Delete it." Никакая служебная информация не передается! Если настроена отправка почты на cron, этот показатель можно игнорировать.
  • Время старта сессии. Сессия стартует на каждый хит, поэтому это время будет прибавляться к работе каждой страницы. Проблемы обычно возникают, когда меняются настройки хранения сессий PHP так, что скапливаются сотни тысяч файлов сессий.
  • База данных (чтение/запись/удаление). Отправляется большое число простых запросов в базу. Это очень утрированный тест: он не показывает, как база будет работать со сложными запросами на больших объемах данных. Очевидно, что для базы данных на локальной машине цифры будут выше, чем для базы на отдельном сервере. Это нормально.


Закладка Битрикс
194 / 278

На закладке отображаются текущие настройки продукта, непосредственно влияющие на производительность, с соответствующими рекомендациями для оптимальной настройки.

Нажмите на рисунок, чтобы увеличить

Клик по рекомендации - переход на страницу системы, где выполняются эти настройки.


Закладка Разработка
195 / 278

Разработка

В этой закладке отображается список страниц сайта, среднего времени выполнения и предполагаемых ошибок разработчика.

Нажмите на рисунок, чтобы увеличить

Например, ошибка, которую предлагается исправить, - некэшированные компоненты.

Примечание: Для просмотра информации об ошибках используйте ссылку в колонке Ошибки разработки.

Чтобы увидеть причину ошибки нажмите на адрес страницы в колонке 20 самых нагружающих страниц.

Пример анализа

Список адресов и статистики выполнения для страницы /catalog/index.php:

Нажмите на рисунок, чтобы увеличить

Обратите внимание – на странице /catalog/index.php размещён комплексный компонент Каталог с включенным ЧПУ, поэтому реальные URL для этой страницы – разные. Приведенная таблица отсортирована по уменьшению времени выполнения страницы, и хорошо видно, что если в первый раз страница открывалась 1,5 секунды, то в последующие разы с постоянным уменьшением времени. При этом сработало кэширование компонентов, и, как следствие - уменьшение времени на выполнение SQL-запросов.

Проверим, какие компоненты выполняются на этой странице. Для этого нажмите на число в колонке Компоненты нужной страницы. Список компонентов и их характеристики для хита 14 по адресу /catalog/t-shirts/t-shirt-men-s-fire/.

Вы увидите список компонентов, подключаемых на странице, число SQL-запросов из них и тип кэширования. В этом списке ищутся те некэшированное компоненты, о которых сообщал монитор производительности.

Аналогичным образом просматривается список SQL-запросов на этой странице (для данного хита). Для определения, какой из компонентов не кэшируется вернитесь на страницу Монитор производительности: хиты и нажмите на ссылку >> перед адресом страницы, откроется сводная статистика по странице. Здесь вы увидите, на каком именно этапе построения страницы сайта затрачивается максимальное время .

Если на Панели управления нажата кнопка Отладка (Отладка > Суммарная статистика), то в этом окне будет отображён и список компонентов страницы . Любой из компонентов можно настроить, выбрав его из этого списка. Как правило, компоненты расположены в том же порядке, что и на странице диагностики.

Примечание: Подробнее про работу с монитором производительности в публичной части сайта смотрите в уроке Публичная часть модуля.


Закладка Масштабируемость
196 / 278

Получаем количественные данные

В модуле Монитор производительности доступен встроенный инструмент тестирования нагрузки многопоточных и веб-кластерных систем (Настройки > Производительность > Панель производительности, вкладка Масштабируемость).

Для проведения теста настройте форму. Поясним некоторые поля.

  • Сервер, который будет тестироваться. Для минимизации влияния самого тестирующего скрипта на результаты тестов рекомендуется запускать его не на тестируемых серверах, а на отдельном хосте.

    Также на тестируемом сайте необходимо на время проведения теста отключить опцию блокировки пользователя при большом количестве соединений ( Блокировать? ) в настройках модуля Веб-аналитика, закладка Настройки, секция Ограничение активности.

  • Страница (оставьте пустым для системного теста). В поле указывается адрес страницы, к которой будут происходить обращения во время теста, например, к индексной странице. При пустом поле обращение будет происходить к системной странице;
  • Максимальная продолжительность теста (минут). Задаётся время в течение которого продолжается тест по достижению числа соединений, указанных в поле Конечное количество одновременных соединений, причем в каждом последующем шаге теста количество одновременных соединений будет одно и то же.

Нажмите Начать тестирование, и в реальном времени будут строиться: таблица с результатами, графики генерации Страниц в секунду и Время генерации/получения страницы.

Таблица Результаты

Помимо колонок № теста и Соединений, пояснения к которым не требуются, в таблице также присутствуют следующие колонки:

  • Хитов - общее количество хитов произведенных за тест;
  • Ошибок - в данном случае под ошибками понимается ответ сервера, отличающийся от 200 ОК;
  • Страниц в секунду - количество страниц отданных тестируемым сервером за секунду;
  • Время генерации страницы - время генерации страницы на тестируемом сервере;
  • Время получения страницы - время получения страницы от тестируемого сервера.

График Страниц в секунду

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

В тесте с одинаковом количеством соединений график не должен иметь провалов.

График Время генерации/получения страницы

С увеличением количества одновременных соединений время отдачи страниц клиентам будет также увеличиваться (синий график), а время генерации не должно меняться в широких пределах (красный график).

Документация по теме:

  • Нагрузочное тестирование кластера, анализ различных сценариев и выводы


Пример нахождения мелких ошибок в производительности
197 / 278

Мелкие ошибки
в производительности сайта

Перед сдачей проекта протестируйте сайт и найдите ошибки в верстке, неправильно настроенного кэширования и другие мелкие недочеты. Для этого скачайте два-три раза все страницы на жесткий диск. Для этой цели хорошо подходит бесплатная программа wget, работающая под управлением Linux/Unix систем и встроенная в виртуальную машину VMBitrix.

В случае, если вы разрабатываете сайт на этой же виртуальной машине, вы получите полноценное тестирование с минимальными сетевыми задержками. Запуск тестирования несколько раз требуется для того, чтобы на каждой странице был создан кэш и повторный хит брался уже из кэша.

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

cd /tmp
mkdir test1
cd test1
rm -rf localhost
wget -m http://localhost
rm -rf localhost
wget -m http://localhost
rm -rf localhost
wget -m http://localhost

Для повтора теста повторите 2 последние команды. Если тестирование затянулось, прервать его можно, нажав CTRL+C.

Внимание! При большом числе обращений с одного адреса проактивная защита не позволит выполнить тестирование. Отключите контроль активности на странице Проактивный фильтр (Настройки > Проактивная защита > Проактивный фильтр).

Низкая скорость работы сайта
и низкая оценка производительности

В первую очередь необходимо проверить наличие акселератора php . Это специальный модуль, который выполняет прекомпиляцию php скриптов, что позволяет уменьшить время работы скриптов в среднем в три раза.

Затем проверить, не включено ли расширение open_basedir .

Медленное открытие
страниц

Наиболее просты в определении и легки для детектирования две проблемы:

  • все или значительная часть страниц сайта открывается не очень быстро;
  • некоторые разделы сайта почти не открываются или открываются очень медленно.

Причины могут быть разные, но, пожалуй, одни из самых частых:

Для первой проблемы. В коде страниц сайта имеются битые ссылки, которые переадресуются на индексную или на 404 страницу. Такие несуществующие адреса легко отлавливаются после получасового теста Монитора производительности.

Для второй проблемы: после сбоя некоторые таблицы базы данных оказались повреждены. В результате нагрузка на MySQL возросла в сотни раз. 5-ти минутный тест Монитора производительности показал, что причина – в нескольких поврежденных таблицах в разделе Каталог.


Кеширование
198 / 278

Система Bitrix Framework включают в себя разные технологии кеширования. Основные настройки кеширования расположены на странице Настройки кеширования (Настройки > Настройки продукта > Автокеширование). Настройки кеширования компонентов задаются отдельно для каждого в диалоге Параметры компонента.

Примечание: Отдельным видом кеширования является Композитный сайт .


Кеширование компонентов и меню
199 / 278

Внешнее сканирование

Управление автокешированием располагается на закладке Кеширование компонентов:

Нажмите на рисунок, чтобы увеличить

Использование технологии Автокеширования позволяет быстро подготовить сайт и компоненты проекта к работе в условиях стрессовых нагрузок или адаптировать сайт к работе. Для использования технологии достаточно включить её одной кнопкой в административном разделе. При этом все компоненты, у которых был включен режим автокеширования (Тип кеширования Авто + Управляемое ), создадут кеши и полностью перейдут в режим работы без запросов к базе данных.

Внимание! При использовании режима Автокеширования, обновление информации, выводимой компонентами, происходит в соответствии с параметрами отдельных компонентов.

Обновление кеша

Обновить содержимое закешированных объектов на странице вы можете:

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

    Когда сбрасываете кеш кнопкой Обновить кеш страницы, имейте в виду, что компонент может использовать привязку к группам для хранения кеша (опция Учитывать права доступа). При установленной опции кеш будет разный для разных групп пользователей. И тогда кеш сбросится только у тех пользователей, которые входят в те же группы, что и вы.

    Пример: Незарегистрированные пользователи будут по-прежнему видеть не актуальную страницу после нажатия кнопки Обновить кеш страницы при установленной опции Учитывать права доступа .
  2. В режиме Правки сайта используя кнопки для очистки кеша в панели отдельных компонентов.

    Очистка кеша отдельных компонентов

  3. Используя автоматический сброс кеша по истечении времени кеширования или при изменении данных, для чего в настройках компонента выберите режим кеширования Кешировать или Авто + Управляемое.
  4. Перейдя к настройкам выбранных компонентов и переведя их в режим работы без кеширования. (Значение Не кешировать в поле Тип кеширования)
Резюме:

В зависимости от настроек кеширования компоненты ведут себя по-разному:

  • При выборе опции Авто + Управляемое - автоматически обновляют кеш в течение заданного времени или при изменении данных.
  • Если выбрана опция Кешировать и время кеширования больше нуля, то они всегда работают в режиме кеширования.
  • Если выбрана опция Не кешировать и время кеширования равно нулю, то компоненты всегда работают без кеширования.

Кеширование меню

Для кеширования меню применяется специальный алгоритм, который учитывает тот факт, что большая часть посетителей - это незарегистрированные пользователи. Кеш меню управляемый и обновляется при редактировании меню или изменении прав доступа к файлам и папкам через административный интерфейс и API. Обычные пользователи вообще не заметят, что существует какой-то алгоритм кеширования.

Примечание: Если производить правку меню вручную, то также потребуется скинуть вручную и кеш меню.

Документация по теме

  • Автокеширование


Управляемое и неуправляемое кеширование
200 / 278

Управляемое кеширование

Технология управляемого кеширования или тегированный кеш (Сache Dependencies) автоматически обновляет кеш компонентов при изменении данных. Если управляемое кеширование включено, вам не потребуется вручную обновлять кеш компонентов, например, при изменении новостей или товаров, изменения сразу станут видны посетителям сайта. Управляемый кеш хранится в файлах каталога /bitrix/managed_cache/.

Это сильно упрощает работу контент-менеджера и ускоряет работу сайта за счет того, что измененный редактором контент уже отдается из кеша.

Внимание! Не все компоненты могут поддерживать управляемое кеширование.

Включение управляемого кеширования производится на закладке Управляемый кеш страницы Автокеширование.

Примечание: Технология Сache Dependencies, как и весь продукт, может хранить кеш как в файлах, так и используя Memcached, APC, eAccelerator . Для этого достаточно изменить один из конфигурационных параметров .

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

Тегированный кеш на инфоблок сбрасывается при операциях добавления/обновления/удаления элемента, раздела, свойства инфоблока и операциях с самим инфоблоком и правами на инфоблок.

Кроме этого, для каталожных компонентов происходит сброс тегированного кеша при изменении валюты и ее курсов (если выводились товары, имеющие цены в этой валюте в Базе Данных), а так же при изменении валюты показа (если включен режим показа в одной валюте).

Поясним на примере. В системе есть 3 валюты: RUB, EUR, BYN. У товаров цены в карточке указаны в EUR (т.е. сохранены в БД в такой валюте). Компонент выводит товары в Евро. Если изменить валюту EUR, то кеш сбросится. Изменение других валют (BYN или RUB) на кеше не скажется.
Если компонент выводит товар в валюте, которой нет в карточке товара, например RUB, то кеш будет также сбрасываться и при изменении RUB.

Неуправляемое кеширование

Фактически это возможность задать правила кеширования ресурсоемких частей страниц. Результаты кеширования сохраняются в виде файлов в каталоге /bitrix/cache/. Если время кеширования не истекло, то вместо ресурсоемкого кода будет подключен предварительно созданный файл кеша. Кеширование называется неуправляемым, поскольку кеш не перестраивается автоматически после модификации исходных данных, а действует указанное время после создания, которое задается в диалоге Параметры компонента.

Настройки неуправляемоего кеширования в диалоге "Параметры компонента"


HTML кеш
201 / 278

Внимание! С версии 16.0.14 главного модуля данный вид кеширования устарел и заменён технологией Композитный сайт .
С версии 18.0.5 Композитный сайт недоступен для "Битрикс24 в коробке".

HTML кеш

Примечание: HTML кеширование не поддерживается на многосайтовости на разных доменах .

Существует категория проектов, которые редко меняют содержание своих страниц. Однажды созданные на таких сайтах разделы или материалы могут не обновляться месяцами.

Для таких проектов рекомендуется использовать режим HTML кеширование вместо Автокеширования. В этом случае не происходит подключения PHP и дисковые подсистемы менее нагружены. Технология проста в эксплуатации, не требует от пользователя отслеживать изменения, защищена дисковой квотой от накрутки данных и самостоятельно восстанавливает работоспособность при превышении квоты или изменении данных. HTML кеширование работает в автоматическом режиме AJAX с компонентами 2.0.

Ограничения в использовании: Не рекомендуется включать HTML кеш (или включать обдуманно, по разделам) для проектов, которые используют модули Веб-аналитика и модуль Реклама .

При включенном HTML-кешировании происходят следующие процессы:

  • Обрабатываются только страницы, не указанные в маске исключения и указанные в маске включения.
  • Если на такие страницы заходит не авторизованный пользователь, то выполняется проверка существования файла кеша. И если файл найден, то выдается страница из кеша. В этом случае не будет работать модуль статистики (не засчитаются хиты этого пользователя), модуль рекламы, главный и другие модули.
  • Если страница в кеше не найдена, то код исполняется в обычном режиме. Когда страница полностью сформирована, ее копия сохраняется в HTML-кеш;
  • Если на момент включения кеша был установлен модуль Компрессии , то страница будет отдаваться в сжатом виде.

Очистка кеша происходит:

  • Автоматически, если сохраняемый объем приводит к превышению дисковой квоты кеша.
  • При любом изменении данных в административной части системы происходит полная очистка кеша.
  • Если в публичной части сайта происходит POST данных (например, добавление комментария или голосование). В этом случае сбрасывается соответствующая часть кеша.

Для неавторизованных пользователей происходит удаление сессии при переходе на закешированные страницы. В результате этого:

  • Не ведется учет статистики.
  • Модуль Реклама будет работать только в момент создания кеша. (Это не относится к внешней динамической рекламе (Begun и пр.).)
  • Для неавторизованных пользователей результаты сравнения товаров не будут сохранены.

Рекомендуется обязательно задать дисковую квоту в настройках HTML-кеширования во избежание DOS-атаки по дисковому пространству.

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

Управление HTML-кешированием

Управление HTML кешем располагается на закладке HTML кеш :

Закладка "HTML кеш"

  • Маска включения - указываются файлы и типы файлов, которые будут обрабатываться html кешем.
  • Маска исключения - указываются файлы и типы файлов, которые не будут обрабатываться html кешем.
  • Дисковая квота (мегабайт) - указывается дисковая квота кеша (задается в мегабайтах).

Файлы настроек и сами файлы кеша хранятся в папке /bitrix/html_pages/ .

Почему может не работать HTML кеш?

HTML работает только для пользователя "впервые" зашедшего на сайт, у которого нет ID сессии. То есть например, если администратор вышел из системы, то HTML кеш работать не будет. Следовательно, если на странице есть функционал, который не может работать без старта сессии, то на таких страницах не будет работать этот вид кеширования. Пример такого функционала - CAPTCHA .

Проверить работает или нет HTML-кеширование на какой-то конкретной странице можно добавив в URL страницы параметр ?show_page_exec_time=Y. Если внизу страницы появится надпись типа Время создания страницы: 0.****сек., то значит кеширование не работает. (Рекомендуется делать проверку в режиме инкогнито.)


Очистка файлов кеша
202 / 278

Очистка файлов кеша

Закладка Очистка файлов кеша (Настройки > Настройки продукта > Автокеширование) используется для удаления файлов кеша, содержащих устаревшую или сбойную информацию:

Закладка "Очистка файлов кеша"

  • Только устаревшие - Файлы, время жизни которых закончилось;
  • Все - Все файлы кеша;
  • Меню - Меню может быть закешировано, если происходят проверки доступа к различным пунктам меню, разделам. Данный пункт позволяет очистить этот кеш;
  • Весь управляемый - Все файлы раздела /bitrix/managed_cache/;
  • Все страницы HTML кеша - Удаление страниц HTML кеша.

После удаления файлов кеша выводимые данные будут обновлены до актуального состояния. Новые файлы кеша будут создаваться постепенно по мере обращений к страницам с закешированными областями.

Если растет папка /bitrix/cache/

В данной папке находятся файлы не управляемого кэша. Иногда при создании файлов кэша им присваиваются такие права, которые являются недостаточными для последующего изменения или удаления этих файлов процессом веб-сервера. Это приводит к росту объема этой папки.

При назначении прав на файлы и папки используются значения констант BX_FILE_PERMISSIONS и BX_DIR_PERMISSIONS из /bitrix/php_interface/dbconn.php, но часто срабатывает маска прав на сервере и чтобы избежать этого необходимо прописать в этом же скрипте:

umask(000);
@umask(~BX_DIR_PERMISSIONS);


Сжатие css и js файлов
203 / 278

Объединить и ужать

Одним из способов повышения производительности является использование штатной функции объединения и сжатия css и js файлов, которое включается в настройках главного модуля (Настройки > Настройки продукта > Настройки модулей > Настройки главного модуля, раздел Оптимизация CSS):

При включении этой опции в идеальном случае на странице подключается 3 css и 3 js файла:

  1. /bitrix/cache/css/SITE_ID/TEMPLATE_NAME/kernel/styles.css - содержит css файлы ядра (файлы подключаемые из /bitrix/js). Данный набор css уникален для шаблона сайта. И накапливает в себе все нужные файлы по мере открытия разных страниц. Соответственно после "прогрева" кеша на сервере, на стороне клиента для всех страниц сайта загружается один раз.

    Этот набор стилей, при подключении на страницу, формирует js переменную, в которой перечисляет уже загруженные стили для исключения повторной их загрузки средствами js. Также можно принудительно добавлять стили для загрузки.

  2. /bitrix/cache/css/SITE_ID/TEMPLATE_NAME/template_MD5(список файлов)/styles_MD5(от меток времени файлов).css. Этот набор содержит css файлы относящиеся к шаблону, в том числе файлы стилей подключенные в header.php и footer.php. Массив стилей формируется путем анализа файлов подключенных до рабочей области и после нее. Данный набор стилей в рамках шаблона сайта не уникален и может быть несколько вариантов. В идеале один или два.
  3. /bitrix/cache/css/SITE_ID/TEMPLATE_NAME/page_MD5(список файлов)/styles_MD5(от меток времени файлов).css . Этот набор содержит css файлы относящиеся к рабочей области и не уникален для шаблона сайта. То есть наборы для страниц формируются исключительно из наборов стилей в них участвующих, что снижает их вариативность. К тому же это самые маленькие по размеру наборы.

Для js файлов действует полностью аналогичный алгоритм.

Примечание: Слияние и сжатие файлов косвенно влияет на результаты выдачи в поисковых машинах. Файлы css и js влияют на время загрузки страницы поисковиком, что в свою очередь влияет на индексацию и ранжирование этой страницы. Это касается как Google, так и Яндекса: поисковый робот полностью выгружает страницу вместе со всеми скриптами и стилями, замеряет время загрузки и сравнивает со средним временем загрузки страниц в соответствующей тематике.

Включение опции Подключать минифицированные версии CSS и JS файлов позволяет уменьшить размеров файлов css, js и html. В процессе сжатия все комментарии к коду, переносы строк, лишние табы и пробельные символы удаляются. Это позволяет сэкономить от 10 до 20% от оригинального размера файла.

Опция Создавать сжатую копию объединенных CSS и JS файлов позволяет экономить ресурсы сервера. При её использовании создается сжатый файл, для того чтобы NGNIX не сжимал файл js и css "на лету", а брал уже готовый файл.


Облако 1С-Битрикс
204 / 278

Сохранять бэкап в "облаках" можно непосредственно из административного раздела вашего сайта. Модуль Облако 1С-Битрикс предоставляет пользователям доступ к практически безграничному объему хранилища в Amazon S3 (Simple Storage Service).

Примечание: Резервное копирование сайта в облако 1С-Битрикс, ускорение загрузки сайта CDN и инспектор сайтов недоступны в ограниченной лицензии .


Возможности штатных средств модуля
205 / 278

Штатные средства модуля содержат такие продвинутые функции, как:

  • Инспектирование сайта. Периодическая автоматическая проверка доступности и работоспособности сайта. Инспектор сообщит обо всех неполадках через E-mail или push-уведомления для мобильных устройств.
  • CDN. Раздача статического контента (картинки, файлы стилей css, скрипты js) через сеть дистрибуции контента (Content Delivery Network или Content Distribution Network, CDN). При этом значительная часть ресурсов сайта загружается посетителем с ближайшего к нему сервера. Это позволяет увеличить скорость загрузки страниц до нескольких раз!
  • Работа с резервными копиями. Создание и просмотр резервных копий непосредственно в административном разделе вашего сайта.

Схема работы резервного копирования с модулями Облако "1С-Битрикс" и Облачные хранилища:

Нажмите на рисунок, чтобы увеличить


Инспектор сайтов
206 / 278

Инспектор сайтов. Видеоурок

Инспектор сайтов периодически проверяет доступность и работоспособность сайта и сообщает обо всех неполадках через E-mail или push-уведомления для мобильных устройств.

Примечание: Проверка осуществляется со стороны серверов компании "1С-Битрикс", поэтому сайт должен быть доступен "снаружи".

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Инспектор сайтов отслеживает 4 параметра, очень важных для работы любого веб-проекта, и особенно интернет-магазина:

  • раз в 5 минут проверяет доступность сайта из двух географических точек;
  • раз в день проверяет срок действия домена.

    Инспектор сайта напомнит за 30 дней о необходимости продлить домен. Повторяться напоминания будут раз в неделю, пока домен не будет продлен.
  • раз в день проверяет срок SSL-сертификата;
  • раз в день проверяет срок действия лицензионного ключа.

    Инспектор сайта напомнит за 30 дней об окончании срока активности обновлений и технической поддержки для вашей лицензии.

Способы получения информации

Предусмотрены следующие способы получения информации от Инспектора сайта:

  • Гаджет на рабочем столе вашего сайта

    Гаджет покажет процент простоев вашего сайта или, если это магазин, потери в деньгах (высчитывается по средней сумме заказов за аналогичный промежуток времени при работоспособности сайта).

    Примечание: Из-за кеширования и проверок, что сайт точно восстановил свою работоспособность, статус сайта в "Гаджете на рабочем столе сайта" и "Мобильном приложении" обновляется не сразу, а лишь через некоторое время.

  • Страница Инспектор сайтов (Настройки > Облако 1С-Битрикс > Инспектор сайтов), на которой отображается детальная информация по всем параметрам инспектирования:

  • Письма на адрес электронной почты, указанный при добавлении сайта в инспектор:

    После обнаружения проблемы инспектором, на указанный почтовый адрес придет соответствующее уведомление в течение 3-9 минут.

    Примечание: После установки обновления сайт(ы) автоматически добавляется в список инспектируемых сайтов. E-mail для оповещения берется из настроек Главного модуля, а если там адрес не указан, то из настроек сайта.

  • Мобильное приложение для администрирования сайтов, в котором можно просматривать статистику инспектора по сайту и получать push-уведомления (с версии модуля bitrixcloud 14.0.1).

    Соответственно, доступны настройки для редактирования записей о сайтах (какие сайты, что проверять) и включение/выключение push-нотификаций.

Настройка

  1. Для корректной работы сервиса для инспектируемого сайта должен быть указан домен на странице Редактирования сайта (Настройки продукта > Сайты > Список сайтов > требуемый_сайт) или в поле URL сайта настроек Главного модуля (Настройки > Настройки продукта > Настройки модулей > Главный модуль).
  2. После чего необходимо перейти на страницу Инспектор сайтов (Настройки > Облако 1С-Битрикс > Инспектор сайтов) и с помощью соответствующей кнопки Добавить сайт для инспектирования .

Примечание: На странице настроек модуля Облако 1С-Битрикс можно указывать период времени, который будет использован для расчета и отображения информации на странице Инспектор сайтов (Настройки > Облако 1С-Битрикс > Инспектор сайтов).

Документация по теме

  • Инспектор сайтов 1С-Битрикс (Блог)
  • «1С-Битрикс Администрирование» - мобильное приложение для управления заказами (Блог)
  • Облако 1С-Битрикс (пользовательская документация)


Ускорение сайта CDN
207 / 278

Ускорение сайта (CDN)

Новый модуль Ускорение сайта (CDN) доступен с версии 12. Он позволяет загружать весь статический контент вашего сайта (картинки, файлы стилей css, скрипты js) через сеть дистрибуции контента ( Content Delivery Network или Content Distribution Network, CDN ).

Для пользователя это значит, что значительная часть ресурсов сайта загружается с ближайшего к нему сервера. Это позволяет увеличить скорость загрузки страниц в несколько раз.

Также подключение CDN снижает количество подключений и нагрузку непосредственно на сервера сайта. Так как всё статическое содержимое загружается пользователю не напрямую с ваших основных серверов, а с узлов CDN, которые умеют очень эффективно кэшировать контент.

Все современные браузеры имеют лимит на количество одновременных соединений к одному домену (обычно - не более 6). Таким образом, даже если ваш сервер может отдавать страницы с максимальной скоростью, а скорость клиентского подключения достаточно высока, все равно загрузка всех элементов страницы (картинок, скриптов, файлов стилей) будет осуществляться максимум в 6 потоков.

При включении модуля Ускорение сайта (CDN) ссылки заменяются на разные домены, и уже лишь каждый отдельный домен имеет ограничение на число соединений. Их же реальное максимальное число становится в несколько раз больше (по числу доменов, с которых осуществляется загрузка файлов).

Внимание! Модуль является бесплатной дополнительной опцией для любой лицензии на «1С-Битрикс: Управление сайтом» (кроме редакции «Первый сайт»). Функционал модуля доступен для сайтов с активной коммерческой лицензией (технической поддержкой) и имеющим доступ из интернета.

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

Ускорение сайта CDN не работает в паре с технологией Композитный сайт . Вам придётся выбирать либо Ускорение, либо Композитный сайт.

Схема работы

Схема работы CDN при подключении одного сайта выглядит примерно так:

После включения поддержки CDN ссылки на статические файлы сайта (картинки, файлы стилей css, скрипты js) будут заменены. Вместо локальных URL'ов будут использоваться служебные имена серверов сети CDN.

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

Примечание: В случае отсутствия ресурсов в CDN он их автоматически подгружает с сайта, указанного на закладке Дополнительно (Настройки > Облако 1С-Битрикс > Ускорение сайта (CDN)).

Размещение контента на многих серверах CDN и отдача его посетителям из ближайшей к нему точки сокращает сетевой маршрут передачи данных и делает загрузку сайта быстрее с точки зрения пользователя.

Примечание: Источником данных о статическом контенте, который автоматически будет загружаться в CDN, будет являться HTML, возвращаемый сервером.

Примечание: На данный момент загрузка статических данных в сеть CDN осуществляется только из папок /bitrix и /upload.

Частые вопросы
  • Что происходит с сайтом, если не продлена лицензия на продукт?

    • Ускорение отключается. Сам сайт продолжает работать.

  • Что делать, если необходимо заменить тот или иной статический файл? Как узлы CDN «узнают», что надо загрузить новую версию, а не продолжать отдавать из кеша старую?

    • Модуль "Ускорение сайта (CDN)" всегда формирует ссылки на файлы с уникальным идентификатором, который изменится при изменении файла. Таким образом, узлы CDN всегда будут отдавать актуальный контент. С точки зрения пользователя никаких дополнительных действий не требуется. Работайте с контентом сайта привычным для вас образом.

  • А как модуль "узнаёт", что надо перезалить тот или иной файл в CDN? Вот, например, поменял я в дизайне какую-нибудь CSS и залил её по FTP, когда в CDN она попадёт обновлённая?

    • Сразу окажется в CDN. Обратите внимание, у всех файлов в облаке после параметра идет число - это дата изменения. Мы просто вставляем дату модификации и CDN построен так, что он считает это разными файлами. Т.е. вам не нужно скидывать кеш CDN, он будет всегда актуальным. А старые файлы со временем удалятся.

  • Как быть если необходимо поменять картинку в шаблоне сайта?

    • Когда изменяется картинка в шаблоне сайта, то в файле стиля им надо добавить метку времени возле ссылки на картинку. Пример: test.jpg?123. Где ?123 - метка времени изменения. С такой меткой картинка будет загружена в CDN и обновится там.

  • Чем CDN отличается от двухуровневой конфигурации веб-сервера?

    • Это разные виды ускорения работы сайта. Двухуровневая конфигурация (Front-End + Back-End) стабилизирует сервер по нагрузке. CDN - ускоряет загрузку контента браузером путем распределения по доменам и географически близким узлам. Технологии не противоречат друг другу, а взаимно дополняют.

    CDN не может являться заменой двухуровневой системе. К тому же CDN имеет ограничения:

    • У серверов CDN бывают временные проблемы и функционал приходится временно отключать.
    • Не все статические файлы отдаются в CDN.

Документация по теме

  • CDN для 70 000 сайтов одной кнопкой (habrahabr)
  • Пользовательская документация
  • 1С-Битрикс 12: CDN Как ускорить сайт на 1С-Битрикс (youtube)


Настройки CDN
208 / 278

Настройка сервиса

Включение и настройки сервиса Ускорение сайта CDN осуществляются на странице Настройки > Облако 1С-Битрикс > Ускорение сайта (CDN).

Нажмите на рисунок, чтобы увеличить

На закладке Ускорение производится непосредственное включение сервиса.

После включения поддержки CDN ссылки на статические файлы сайта (картинки, файлы стилей css, скрипты js) будут заменены. Вместо локальных URL'ов будут использоваться служебные имена серверов сети CDN. При этом не потребуется вносить никакие изменения в DNS и не нужно заботиться о сбросе кеша CDN при обновлении файлов.

На закладке Что ускорять можно указать, для каких статических файлов публичной части сайта будет включена поддержка CDN.

При отмеченной опции Контент сайта будет производиться загрузка в сеть CDN файлов, расположенных в папке /upload.

На закладке Сайты можно указать, для каких сайтов загружать ресурсы и делать замену ссылок. Например, при использовании многосайтовости.

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

На закладке Дополнительно можно указать альтернативный источник оригинальных файлов, откуда забирают контент узлы CDN. По умолчанию используется адрес основного сайта. Это может быть полезно, например, в случае использования разных доменов (многосайтовости). Так же укажите протокол HTTPS, если он вами используется.

Примечание: В поле url сайта с которого CDN будет брать ресурсы (css, js, изображения и т.п.) нельзя писать http://.
Написание домена сайта в этом поле должно совпадать с тем, что выводится на странице странице проверки лицензионного ключа.


Облако 1С-Битрикс - настройки модуля
209 / 278

Настройка модуля

Для настройки модуля Облако 1С-Битрикс перейдите на страницу Настройки > Настройка Продукта > Настройки модулей > Облако 1С-Битрикс:

На вкладке Настройки указывается период времени, который будет использован для расчета и отображения информации на странице Инспектор сайтов (Настройки > Облако 1С-Битрикс > Инспектор сайтов).

На вкладке Доступ настраиваются права доступа к модулю Облачные хранилища для групп пользователей. Работа на вкладке аналогична таковой для модуля Веб-формы.

Документация по теме:

  • Описание модуля


Облачные хранилища
210 / 278

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


Что такое облачные хранилища
211 / 278

Что такое облачное хранилище

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

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

Внимание! Хранение важной информации "вне корпоративного сервера" может быть небезопасно. Это особенно актуально для продуктов «Битрикс24 в коробке».

Нажмите на рисунок, чтобы увеличить

Выгоды от использования облачных хранилищ

  • Сокращение расходов. Размещение данных "в облаках" намного дешевле стандартного хранения.
  • Доступность данных. Ваши данные всегда доступны для клиентов, независимо от их местонахождения.
  • Скорость доставки контента. Почти все провайдеры облачных хранилищ предлагают клиентам CDN (Content Delivery Network или Content Distribution Network — географически распределённая сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию контента конечным пользователям в сети Интернет).
  • Снижение нагрузки на сервера. Даже при одновременном подключении к вашему сайту множества пользователей с разных устройств, процессы на вашем веб-сервере не будут тормозить. Т.к. отдачей статики заняты "облака", то снижается и нагрузка на диск.
  • Защита от потери данных. Даже если что-то случится с вашим корпоративным веб-сервером, то файлы не потеряются, если выбрать тарифный план с соответствующей гарантией.

Документация по теме

  • Clouds (Блог)
  • Делаем красивые ссылки на файлы в Clodo (Блог)
  • Облачные хранилища (пользовательская документация)


Создание подключения
212 / 278

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

Создание и просмотр подключений

Список всех подключений к облачным хранилищам находится на странице Облачные хранилища (Настройки > Облачные хранилища). В таблице можно увидеть, активно ли подключение, сколько файлов в нём расположено и какого объема и т.д.

Нажмите на рисунок, чтобы увеличить

Здесь же можно создать новое подключение, нажав кнопку [image]. На вкладке Подключение задаются основные параметры:

Нажмите на рисунок, чтобы увеличить

  1. В поле Провайдер выберите поставщика услуг облачного хранения данных. В зависимости от вашего выбора следующие поля в форме будут отличаться:
    • Поле Регион предназначено для выбора желаемого географического местоположения дата-центра. Но для некоторых провайдеров Регион устанавливается по умолчанию и его нельзя изменить. Например, для HotBox установлен домен hb.cldmail.ru
    • Поле Всегда использовать протокол http можно активировать только для провайдеров OpenStack Object Storage и Rackspace Cloud Files
    • Для провайдеров Amazon Simple Storage Service и Google Storage под полями расположена краткая инструкция по подключению
    • Параметры доступа Ключ доступа, Секретный ключ, Идентификатор проекта, Имя сервера (API host) и др. заполняются данными, которые вы получаете на сайте провайдера

    Примечание: С версии 20.0.100 модуля Облачные хранилища (clouds) добавлена поддержка s3-совместимых хранилищ (Провайдер - S3 compatible storage).

  2. В поле Контейнер укажите название контейнера , которое потом позволит идентифицировать его. По умолчанию в поле уже указано уникальное название. Для каждого подключения создается отдельный контейнер.
  3. Опция Только для чтения позволяет производить с контейнером только операции чтения. При отмеченной опции новые файлы будут сохраняться не в контейнере, а на хостинге с проектом.
  4. При желании можно указать Каноническое имя домена (CNAME), что позволит вместо ссылки вида c123456.r78.bc9.rackcdn.com/blog/avatar/logo.png получить upload.mysite.com/blog/avatar/logo.png.

На вкладке Правила настройте правила, по которым будет происходить отбор файлов для загрузки в облачное хранилище:

Нажмите на рисунок, чтобы увеличить

  • В колонке Список модулей укажите названия модулей , данные которых будут загружаться в "облако". Например: iblock, advertising. Если оставить поле пустым, то под действие правила попадают файлы любых модулей.
  • В колонке Список расширений укажите расширения файлов для хранения в облачном хранилище. Например: gif, png, jpeg, jpg. Если поле не заполнено, то под действие правила подпадают статические файлы с любым расширением. Список является нечувствительным к регистру.
  • В колонке Список размеров укажите размеров файлов. Допустимо использовать суффиксы, такие как: K, M или G. Так же возможно задавать диапазоны размеров. Например: 1K-1M, 2.3M-. Если поле не заполнено, то под действие правила подпадают файлы любого размера.

Нажмите кнопку Сохранить.

Новый контейнер появится в списке на странице Облачные хранилища (Настройки > Облачные хранилища) сразу после подключения. Вновь загружаемые файлы автоматически будут сохраняться в "облако". Ссылки на файлы будут также автоматически формироваться с учетом их расположения в "облаке".

Как выглядят "облачные" ссылки
Нажмите на рисунок, чтобы увеличить

Примечание: В случае неудачного подключения текст ошибки, отображаемой на странице, выдается самим провайдером, то есть сервисом облачного хранения файлов.


Перенос файлов в облако и обратно
213 / 278

Перенос файлов в облачное хранилище

Файлы, которые вы будете загружать в Битрикс после создания нового подключения, сразу будут сохраняться в "облако".

А если необходимо перенести в облачное хранилище старые файлы, то в меню действий списка подключений выберите пункт Переместить файлы в облачное хранилище:

Запустится процесс переноса файлов в облачное хранилище. Файлы будут переноситься из модулей, с расширениями и размерами, указанными в правилах.

Как перенести файлы, не указанные в правилах
В меню действий любого файла есть пункт "Переместить в облако". Вам просто нужно выбрать, в какой контейнер поместить файл:
Нажмите на рисунок, чтобы увеличить

Помните!

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

Процесс переноса можно отслеживать:

Возвращение файлов из облачного хранилища

Чтобы перенести файлы обратно из "облака" на сервер, в меню действий необходимо выбрать пункт Вернуть файлы из облачного хранилища.

Меню действий

Для контейнеров также доступны следующие действия:

  • Изменить - изменение параметров подключения. Действия аналогичны созданию нового подключения к облачному хранилищу ;
  • Деактивировать - перевод контейнера облачного хранилища в неактивное состояние. В этом случае данные будут доступны для чтения, но запись будет невозможна;
  • Удалить - удаление подключения к облачному хранилищу.

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


Что можно сделать с файлами в облачном хранилище
214 / 278

Возможные действия с файлами в облачном хранилище

Просмотреть список подключенных контейнеров облачных хранилищ и их содержимое можно на странице Облачные хранилища (Контент > Облачные хранилища).

Примечание: страница доступна только при установленном модуле Облачные хранилища и после подключения хотя бы одного контейнера.

В зависимости от настроенных прав доступа , для содержимого каждого контейнера можно:

  • Посмотреть список файлов и папок. Также отображаются Размеры каталогов (с учетом вложенности) при нажатии на соответствующую кнопку контекстной панели:

    Нажмите на рисунок, чтобы увеличить

  • Удалить. Операция удаления доступна в меню действий.
  • Добавить новый файл. Файл добавляется непосредственно в облако с помощью кнопки Новый файл на контекстной панели (Контент > Облачные хранилища > [название_контейнера]).

    Нажмите на рисунок, чтобы увеличить

Примечание: С версии 20.0.100 модуля Облачные хранилища (clouds) доступно использование символа маски * в фильтре списка файлов.

Документация по теме:

  • Настройка модуля


Облачные хранилища - настройка модуля
215 / 278

Настройка модуля

Для настройки модуля Облачные хранилища перейдите на страницу Настройки > Настройка Продукта > Настройки модулей > Облачные хранилища:

На вкладке Настройки указывается, следует ли Записывать 404 ошибки на перемещенных в облака файлах в журнал событий.

На вкладке Доступ настраиваются права доступа к модулю Облачные хранилища для групп пользователей. Работа на вкладке аналогична таковой для модуля Веб-формы.

Настройки облачных хранилищ

Документация по теме:

  • Описание модуля


Веб-кластер
216 / 278

Модуль Веб-кластер - это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач:

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


Что может Веб-кластер
217 / 278

Цели и задачи

Модуль Веб-кластер - это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач:

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

Работа Веб-кластера поддерживается на уровне самой платформы «1С-Битрикс», поэтому вносить какие-либо изменения в код существующих и новых проектов не потребуется. Для настройки веб-кластера может потребоваться начальная квалификация в области системного администрирования.

Модуль Веб-кластер позволяет использовать:

  • Вертикальный шардинг (вынесение отдельных частей базы данных (модулей) на отдельные серверы MySQL, например, "Поиск" и "Веб-аналитика");
  • Репликацию MySQL и балансирование нагрузки между серверами;
  • Распределенный кеш данных (memcached);
  • Непрерывность сессий между веб-серверами (хранение сессий в базе данных);
  • Кластеризацию веб-сервера:
    • Синхронизация файлов;
    • Балансирование нагрузки между серверами.

Внимание! Если серверы СУБД кластера расположены в разных дата-центрах, необходимо настроить на них единую временную зону.

Модуль "Веб-кластер" решает несколько очень важных практических бизнес-задач.

  • Масштабирование веб-проекта, повышение производительности;
  • Резервирование всех узлов системы, обеспечение отказоустойчивости и непрерывной доступности;
  • Real-time backup;
  • Снижение стоимости трафика, простая система CDN;

Масштабирование веб-проекта,
повышение производительности

Рост популярности и посещаемости веб проекта требует увеличения ресурсов (CPU, памяти, дискового пространства). До определенного порога задача решается просто. С виртуального хостинга сайт переносится на VPS, затем - на свой выделенный сервер, затем - на более мощный сервер. При этом каждый новый перенос сайта на новые ресурсы сопровождается временной недоступностью сайта в период переезда. Но рано или поздно ресурсов оказывается недостаточно.

"1С-Битрикс: Веб-кластер" гибко, в реальном времени, масштабирует именно те ресурсы (база данных или веб-сервер), которые востребованы в настоящий момент. Просто добавляя/отключая новые машины по мере необходимости.

Ключевые особенности технологии:

  • каждая машина ("нода") в кластере может быть разной сущности: виртуальный хост, VPS, выделенный сервер, инстанс в "облаке" (например, Amazon EC2);
  • ноды могут быть распределены любым удобным образом - вплоть до нахождения в разных датацентрах;
  • добавление нод различной мощности в среднем дает пропорциональный прирост производительности.

Пример: если ваш сайт работает на выделенном сервере с одним процессором Intel Quad Core, 4 Гб RAM и в пиках посещаемости может обрабатывать до 40 запросов в секунду, то добавление второго такого же сервера в веб-кластер повышает производительность примерно на 90-95% и позволяет обрабатывать в пиках до 77 запросов в секунду.

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

Резервирование всех узлов системы, обеспечение
отказоустойчивости и непрерывной доступности

Выход из строя оборудования или авария в датацентре может привести к многочасовой недоступности сайта. А это чревато последствиями:

  • потерянные заказы (в случае интернет-магазине);
  • впустую потраченные деньги на рекламу;
  • потеря репутации;
  • потеря позиций в выдаче поисковых систем в случае переиндексации поисковым роботом в момент недоступности сайта.

Кластеризация всех составляющих сайта (веб-сервер и база данных) с помощью "1С-Битрикс: Веб-кластер" минимизирует время простоя системы. В зависимости от того, как именно реализована балансировка нагрузки между нодами кластера, время недоступности сайта может составить 5-15 минут, а в отдельных случаях и вовсе может быть сведено к нулю.

Как это работает: при аварии на отдельных нодах вышедшие из строя узлы кластера помечаются неактивными (OFFLINE), а нагрузка на систему автоматически распределяется между оставшимися узлами.

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

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

Real-time backup

Крайне важный аспект создания резервных копий – частота их обновлений. Если бэкапы создаются не очень часто, например, раз в неделю (а для больших проектов, это, к сожалению, не редкость), то в случае аварии есть риск потерять все изменения (код разработчиков, данные самого сайта, пользовательские данные) вплоть до семи дней.

"1С-Битрикс: Веб-кластер" подключает одну из нод в качестве бэкап-сервера. Это может быть не очень дорогой сервер или, например, VPS. В настройках веб-кластера отмечается, что данная нода используется только для бэкапа, и она не участвует в распределении нагрузки от посещений сайта. При этом данные сайта (и файлы, и база данных) дублируются в реальном времени. В случае аварии будут восстановлены актуальные данные на момент сбоя. Для максимально быстрого восстановления обращения к сайту могут быть переключены непосредственно на резервный бэкап-сервер.

Снижение стоимости трафика,
простая система CDN

Перед владельцами сайтов с "тяжелым" контентом (аудио, видео, фото) стоит серьезная задача: минимизировать стоимость трафика проекта в сочетании с обеспечением высокой скорости доступа для всех посетителей независимо от территориального распределения.

Ноды веб-кластера размещают в разных датацентрах (например, три сервера: в США, в Европе и в России). Дополнительные инструменты (например, базы GeoIP) автоматически определяют регион посетителя сайта и перенаправляют его запрос на соответствующую ноду кластера. (Подобный механизм, регулирующий загрузку контента в зависимости от географического положения клиента, называется CDN - Content Delivery Network).

Документация по теме

  • Пользовательская документация по модулю "Веб-кластер"
  • Веб кластер: выносим таблицы своего модуля в отдельную базу данных (Блог)
  • Веб-кластер в "облаке" Scalaxy за 1 час (Блог)


Настройки модуля и группы серверов
218 / 278

Настройки - проще некуда

Форма настроек модуля имеет единственную настройку:

Максимально возможное время отставания slave базы данных от master (сек.) - время отставания slave базы данных от master, после которого она будет автоматически отключена для снижения риска рассинхрониизации данных.

Отставание slave базы данных возможно при большом количестве обновлений основной (master) базы данных, недостаточно быстром соединении между master и slave базами данных, недостаточной производительности slave базы данных.

Примечание: Время отставания базы данных отображается в таблице на странице Репликация .

Группирование серверов

Группы - сущность созданная только для удобства работы. Они используются для объединения "узлов" в рамках гео-кластера. Это позволяет расположить в различных географически расположенных дата-центрах собственные: Cервера баз данных, Memcached-сервера, Веб-сервера.

Создание групп происходит на странице Настройки > Веб-кластер > Группы серверов. Создание группы - это просто задать ей название.

Важно! Для каждого веб-сервера одной группы в файле dbconn.php должна быть определена переменная BX_CLUSTER_GROUP, значение которой соответствует идентификатору группы. Например: define("BX_CLUSTER_GROUP", 1).

Название второй группы может быть "Группа #2", но в переменной BX_CLUSTER_GROUP необходимо указать реальный (автоинкрементный) идентификатор этой группы, который можно посмотреть на странице со списком групп серверов (Настройки > Веб-кластер > Группы серверов).

Файл dbconn.php не должен синхронизироваться между группами.

Документация по теме

  • Настройки модуля


Репликация
219 / 278

Репликация базы данных - это процесс создания и поддержания в актуальном состоянии её копии.

Репликация позволяет:

  • перенести часть нагрузки с основной базы данных (master) на одну или несколько ее копий (slave);
  • использовать копии в качестве горячего резерва.
  • использовать несколько географически разнесенных основных баз данных (master-master репликация).


Master-Slave репликация
220 / 278

Настройка и подключение резервной базы данных для снятия нагрузки с основной БД

Подключение к сайту дополнительных серверов баз данных позволяет снизить нагрузку на основную базу данных. В этом случае чтение данных происходит из дополнительных (slave) баз данных, а запись - в основную.

Подключение

Подключение и настройка дополнительных (slave) баз данных осуществляется на странице Slave базы данных (Настройки > Веб-кластер > Группа #1 > Репликация).

Внимание! При использовании нескольких веб-серверов в файле \bitrix\php_interface\dbconn.php на всех серверах обязательно должен быть указан адрес подключения к главной базе данных (master). Желательно указывать прямой IP-адрес или быть уверенным, что для каждого веб-сервера будет происходить соединение именно с сервером главной базы данных в случае обращения не по IP-адресу. Использование адреса вида localhost при такой конфигурации запрещено.

Для репликации необходимо использовать разные серверы с быстрым каналом связи между собой.

В настройках модуля Веб-кластер можно указать время отставания slave базы данных от master, после которого она будет автоматически отключена для снижения риска рассинхрониизации данных.

Примечание: Для работы репликации учетные записи основного и резервных master/slave-серверов должны иметь, кроме стандартных, также привилегии: SUPER, REPLICATION CLIENT, REPLICATION SLAVE.

Учетные записи
Их три, но для простоты администрирования рекомендуется объединить в одну.
  1. Учетная запись для работы приложения с базой данных (БД) для всех нод кластера (определяемая в dbconn.php).
    GRANT SELECT,LOCK TABLES,CREATE TEMPORARY TABLES,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX, REPLICATION CLIENT, RELOAD ON bitrixcluster.* TO 'bitrixcluster'@'%' IDENTIFIED BY '123456';

    REPLICATION CLIENT - для отображения статистики мастера.

    RELOAD- используется в master-БД во время переноса таблиц в slave-БД для "FLUSH TABLES WITH READ LOCK".

    Под этой же учетной записью (именно логин/пароль) при добавлении slave-базы через административный интерфейс система пытается запустить потоки слейва (CHANGE MASTER TO #логин/пароль учетной записи в master-БД#), поэтому ей также нужны привилегии: REPLICATION SLAVE.

  2. Учетная запись для управления slave-нодами из административного интерфейса веб-кластера. Создается в каждой slave-БД и указывается при подключении слейва в административном интерфейсе веб-кластера.

    GRANT REPLICATION CLIENT on *.* TO 'bitrixcluster_slave'@'%' IDENTIFIED BY '123456'; - нужна для отображения статистики слейва в административном интерфейсе.

    GRANT SUPER on *.* TO 'bitrixcluster_slave'@'%'; - нужна для отображения запуска/остановки слейва и изменения параметров репликации из административного интерфейса слейвов веб-кластера.

    GRANT SELECT,LOCK TABLES,CREATE TEMPORARY TABLES,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON bitrixcluster.* TO 'bitrixcluster_slave'@'%' IDENTIFIED BY '123456'; - нужна для первоначального экспорта в БД слейва данных из БД мастера.

  3. Учетная запись для загрузки бинлогов в slave-БД с master-БД (для собственно организации процесса репликации). Создается на master-БД для каждого подключения slave-БД (можно использовать одну учетную запись для всех слейвов).

    GRANT REPLICATION SLAVE on *.* TO 'bitrixcluster_replica'@'%';

  • Нажмите кнопку Добавить slave базу данных. После чего откроется окно мастера добавления новой slave базы данных.
  • В первом окне будут выведены рекомендации по настройке системы , критичные для работы. Обязательно исправьте их, пока проверка не покажет, что всё в порядке .
  • Пройдите все шаги мастера .

После прохождения мастера база появится в списке, но будет не задействована:

Мастер добавления новой slave базы данных

В списке slave баз данных в меню действий выполните команду Начать использовать и следуйте рекомендациям мастера.

Внимание! Запуск репликации начинается с копирования содержимого базы данных. На время копирования публичная часть сайта будет закрыта , а административная нет. Любые неучтенные модификации данных в период копирования могут в дальнейшем повлиять на правильность работы сайта.

После успешного подключения slave-сервера баз данных отображается его статус .

Настройка параметров базы данных

При необходимости измените настройки подключения базы. Для этого дважды кликните по желаемой базе в списке или воспользуйтесь пунктом меню действий Изменить. Откроется форма Настройка параметров главной базы/slave базы данных:

Настройка параметров slave базы данных

Значение в поле Процент распределения нагрузки (0..100) указывается для каждой базы в отдельности. Эта опция перераспределяет большую часть нагрузки на более быстрые и мощные серверы в составе кластера.

Примечание: Для главной базы существует отдельная опция, которая позволяет Минимизировать нагрузку на нее.

Особенности обращений к master базе

Если на хите в системе происходит запись в master базу, то последующие операции чтения (запросы) данных будут тоже происходить из master базы, а не slave.

Это связано с особенностью кластерной архитектуры: только так можно быть уверенным в том, что при запросе этих данных они будут актуальны, т.к. синхронизация со слейвами всегда имеет определенное отставание (данных там просто может еще и не быть).

Примечание для разработчиков: Собственные запросы на запись в системе (пример - веб аналитика) обрамлены специальными методами класса CDatabase: StartUsingMasterOnly и StopUsingMasterOnly. Которые соответственно начинают и заканчивают использование только мастер базы.

Вы можете обернуть свои АПИ вызовы на запись такими конструкциями, но должны быть уверены, что дальше по коду не будет чтения этих данных из базы.

Дополнительно

  • Урок Настройка репликации MySQL, аварийное переключение slave->master - пример тонкой настройки реплицации.


Резервная копия
221 / 278

Настройка базы данных для использования в качестве резервной копии

В данном случае slave база данных будет использоваться только для создания копии основной базы данных. В отличие от случая, описанного выше, операций чтения из нее происходить не будет.

Для перевода базы в этот режим в форме Настройка параметров slave базы данных отметьте опцию Для резервного копирования:

Настройка параметров slave базы данных


Master-master репликация
222 / 278

Настройка master-master репликации

Настройка master-master репликации аналогична настройке master-slave репликации за исключением некоторых моментов.

Для настройки master-master репликации выполните следующее:

  1. Создайте группу на странице Управление веб-кластером (Настройки > Веб-кластер > Группы серверов)

    2. Примечание: У каждого веб-сервера одной группы в файле dbconn.php должна быть определена константа BX_CLUSTER_GROUP, значение которой соответствует идентификатору группы. Например: define("BX_CLUSTER_GROUP", 1).

    Файл dbconn.php не должен синхронизироваться между группами.

  2. На странице Репликация (Настройки > Веб-кластер > [_название_группы_] > Репликация) запустите Мастер добавления новой master-slave базы данных с помощью кнопки Добавить master-slave базу данных контекстной панели.
  3. Пройдите все шаги мастера. Если необходимо, произведите настройки, в соответствии с рекомендациями.

    Примечание: Для таблиц InnoDB необходимо также указать параметр binlog_format=mixed в секции [mysqld] файла my.cnf.

    Иначе будет возникать ошибка:
    Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'

    После прохождения мастера база появится в списке, но будет не задействована.
  4. В списке баз данных в меню действий выполните команду Начать использовать и следуйте рекомендациям мастера.

После успешного подключения в списке будет отображен статус базы

Особенности работы с управляемым кэшем при master-master репликации

Если добавить во вторую группу веб-кластера второй мастер-сервер, то сброс кэша (ядра, управляемый и.т.д.) на обеих нодах не будет работать, если в обе группы не добавить memcached-серверы.


Memcached
223 / 278

Кеш в оперативной памяти

memcached сервер - сервер, позволяющий сохранять кеш не в файлах, а в оперативной памяти. memcached можно использовать и для хранения сессий.

Использование нескольких memcached-серверов:

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

Если произошёл отказ всех memcached-серверов, то подсистема кеширования снова начинает использовать файловый кеш .

Внимание! Для работы потребуется php расширение memcache.

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

Если используется несколько memcache-серверов, нужно установить значение переменной memcache.hash_strategy string в consistent (по умолчанию это выключено!). Такое значение нужно для следующего: если один из мемкэшей сломается, начнется ресурсоемкая операция перетасовки ключей между мемкэшами, замедляющая работу веб-кластера. А если установить в consistent - проблем практически не будет.

Примечание: «1С-Битрикс: Веб-окружение» для Linux уже содержит сервер memcached. Для его запуска необходимо выполнить команды:
chkconfig memcached on
service memcached start

Подключение серверов memcached

Сервера подключают на странице Подключения к memcached (Настройки > Веб-кластер > [_название_группы_] > Memcached):

  • Нажмите кнопку Добавить на контекстной панели и в форме Настройка параметров подключения к серверу memcached укажите адрес и порт сервера.

    Примечание: Если подключаемые к кластеру memcached серверы разной мощности или с разным объемом оперативной памяти, то желательно соответственно настроить коэффициент их использования через настройку параметра Процент распределения нагрузки (0..100).

    • После подключения сервер по умолчанию не будет активным.

  • Для запуска его в работу в меню действий выберите пункт Начать использовать .

Теперь сервер используется вместо файлового кеша:

Примечание: Настройки подключения серверов memcached хранятся в файле \bitrix\modules\cluster\memcache.php. Соответственно любые изменения настроек подключения будут автоматически применены на остальные ноды кластера при настроенной файловой синхронизации в кластере.

Рекомендации по настройке

При настройке подсистемы кластерного кеширования обратите внимание на параметр: get_hits: #count# (#hitrate#%) где, #hitrate# - показывает эффективность кеширования. Это значение надо довести как можно ближе к 100%.

Экспериментально отрегулируйте эффективность, постепенно увеличивая объем памяти, выделяемой серверу memcached (limit_maxbytes). Начните с объема памяти в 128MB и увеличивайте с шагом в 32MB, пока #hitrate# перестанет заметно увеличиваться.

Также рекомендуется периодически анализировать и использование кеша приложением (параметр using_bytes).

За счет использования в сервере memcached алгоритма LRU в кеше будут храниться только наиболее актуальные данные, а редко используемые - вытесняться. Это не позволит объему кеша безгранично разрастаться в размерах, что приводило не только к неэффективному использованию ресурсов системы, но и отрицательно сказывалось на скорости работы с кешем за счет роста его объема. В результате кеш веб-кластера будет автоматически поддерживаться в максимально эффективном состоянии: как по скорости доступа, так и по использованию ресурсов.

Примечание: Константа BX_CLUSTER_GROUP должна быть установлена в файле dbconn.php. В противном случае не будет работать Композитный сайт .

Дополнительно

  • Практический пример: урок Кластеризация кеша (memcached);
  • Статья Технологии кластеризации 1С-Битрикс - эффективное кэширование в memcached.


Веб-сервера
224 / 278

Распределяем нагрузку на веб-сервера

На странице Веб-сервера (Настройки > Веб-кластер > [_название_группы_] > Веб-сервера) показаны статусы активности и текущей нагрузки веб-серверов. Страница носит информационный характер.

Для добавления веб-сервера в список:

  • Нажмите на контекстной панели кнопку Добавить новый веб-сервер;
  • Заполните поля формы:

    Редактирование параметров веб-сервера

Примечание: Настройки для "1С-Битрикс: Веб-окружение" (Linux) подробно рассмотрены в уроке Кластеризация веб-сервера

Документация по теме:

  • Веб-сервера
  • Создание и редактирование веб-сервера


Шардинг
225 / 278

Выносим работу отдельных модулей на сторонний сервер

Шардинг позволяет перераспределить нагрузку, создаваемую запросами между различными серверами, за счёт выноса данных некоторых модулей в отдельную базу данных.

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

Горизонтальный шардинг - распределение однотипных данных веб-приложения (например, учетных записей) между отдельными базами данных. (Таблица делится на части и части разносятся по серверам.)

В "1С-Битрикс: Управление сайтом" и "Битрикс24 в коробке" поддерживается только Вертикальный шардинг и перенос данных модулей Веб-аналитика и Поиск

Настройка шардинга

Добавление новой БД делается на странице Вертикальный шардинг (базы данных модулей) (Настройки > Веб-Кластер > Шардинг). Для вынесения таблицы с данными модуля в отдельную базу:

  • Нажмите на контекстной панели кнопку Добавить новую базу данных . После чего откроется окно мастера добавления новой базы данных модулей.
  • Пройдите все шаги мастера. Если необходимо, произведите настройки, в соответствии с рекомендациями. Вы должны получить полностью "зелёный" список .
  • Укажите параметры подключения БД и исправьте, при необходимости, параметры до получения "зелёного" списка.

    • После чего база появится в списке, но будет не задействована.

Перенос данных

Теперь перенесём данные модуля в добавленную базу данных. Это можно выполнить двумя способами:

  • Первый способ доступен только для MySQL: в списке баз данных модулей в меню действий выбранной базы данных выполнить команду Начать использовать . Запустится мастер переноса данных. В нем выберите модуль, который будет перенесен .

    Внимание! Любые модификации данных в модуле на период копирования сохранены не будут.

  • Второй способ: удалите модуль и установите его заново. На первом шаге установки укажите базу данных для использования модулем. В этом случае таблицы модуля не будут перенесены.

    Выбор базы данных для установки модуля

После переноса таблиц модуля в подключенную базу данных список будет иметь следующий вид:

Примечание: Для mssql и oracle версий вместо мастера будет отображена форма Редактирование подключения к базе данных.


Хранение сессий в базе данных
226 / 278

Если несколько веб-серверов

По умолчанию данные о сессиях пользователей хранятся в файловой системе сервера. Информация об этом есть на странице Хранение сессий в базе данных (Настройки > Веб-кластер > Сессии)

Хранение сессий в базе данных

Если веб-сервер единственный, то такой способ хранения сессий в файлах наиболее удобен. Основной его плюс - наиболее высокая производительность. Как показывают различные нагрузочные тесты, скорость генерации страниц сайта при хранении сессий в базе снижается на 3-5%.

Если веб-серверов несколько, то возможно что один запрос пользователя (например, непосредственно авторизация) попадёт на один сервер, а следующий или какие-либо другие запросы - на другие серверы, где посетитель еще не будет авторизован. Подобные ситуации доставят целый ряд неудобств для посетителей сайта. Также, в случае хранения сессий в файлах будет некорректно вестись статистика посетителей.

Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера. Поэтому рекомендуется включить хранение сессий в базе данных. Включение механизма хранения данных сессий пользователей в базе данных выполняется с помощью кнопки Включить хранение данных сессий в БД модуля.

Внимание! При переключении режима хранения сессий все пользователи потеряют авторизацию (данные сессий будут уничтожены).

Примечание: Для снижения нагрузки на базу данных и обеспечения "прозрачности сессии", можно сессии в базе не хранить, а вместо этого настроить и использовать в nginx модуль ip_hash.


Безопасность
227 / 278

Как защитить веб-кластер

Веб-кластер использует дополнительные сервисы (централизованное кэширование, синхронизация) и запускается, как правило, на группе машин. Рассмотрим особенности обеспечения информационной безопасности веб-кластера.

Балансирование нагрузки и защита от DDoS-атак

Рекомендуется открыть для публичного доступа 80 порт балансировщика нагрузки, ограничив внешний доступ к http портам машин (нод) веб-кластера. Это надежно защитит ноды, спрятанные за балансировщиком, от перегрузки (например, возникшей при проведении рекламной интернет-кампании), а также существенно снизит эффективность DDoS-атак.

Кластеризованный кэш

Необходимо закрыть от публичного доступа серверы memcached (tcp порт 11211), открыв доступ к ним с нод веб-кластера. Одно из решений - сконфигурировать файервол.

Сервис синхронизации контента нод кластера

Если для синхронизации контента используется утилита csync2, необходимо закрыть ее сервисы от публичного доступа (tcp порт 30865), открыв доступ к ним с нод веб-кластера.

Пример настройки файервола

Для ноды веб-кластера:

  • 22 (tcp; ssh) - открыт для подсети администратора;
  • 80 (tcp; http) - открыт для подсети веб-кластера;
  • 443 (tcp; https) - открыт для подсети веб-кластера;
  • 3306 (tcp; mysql) - открыт для подсети веб-кластера;
  • 11211 (tcp; memcached) - открыт для подсети веб-кластера;
  • 30865 (tcp; csync2) - открыт для подсети веб-кластера.

Для балансировщика нагрузки:

  • 80 (tcp; http) - открыт для всех;
  • 443 (tcp; https) - открыт для всех.


Локальный кеш в кластере
228 / 278

Ускоряем работу с кешем

Использование подключения через unix soket к локальным memcache серверам, ускоряет работу проекта. Ядро обеспечивает валидность кеша на всех нодах, удаляя помеченные ключи кеша на них. Такой режим работы кластера очень хорошо себя зарекомендовал в различных нагрузочных тестах и реальной эксплуатации, обеспечивая прирост порядка 30% за счет более быстрой работы с кешем.

Настройка режима работы с локальным кешем

Предположим, есть две ноды на которых настроены роли веб сервера, мемкеша и БД. В этом случае необходимо выполнить следующие шаги:

  1. Настроить memcache на использование веб сокета и модуль Веб-кластер на работу с мемкешем через сокет.
    • Для настройки memcache на работу с сокетом выполните команду:
      cat /etc/sysconfig/memcached
# Ansible managed: /etc/ansible/roles/memcached/templates/sysconfig-memcached.j2 modified on 2015-01-30 19:00:16 by root on bx24.perf
# memcached settings
PORT="11211"
USER="memcached"
MAXCONN="4096"
CACHESIZE="512"
OPTIONS="-t 8 -s /tmp/memcached.sock -a 0777"
    • Для настройки модуля Веб-кластер на работу с мемкешем через сокет указать порт 0 и урл unix:///tmp/memcached.sock
  2. В модуле кластера добавить нужное количество групп.
  3. На каждом сервере определить константы указывающие ID группы, а также включающий режим чтения слэйвов из любой группы.
    <?
define('BX_CLUSTER_GROUP', 1);
define('BX_CLUSTER_SLAVE_USE_ANY_GROUP', true);
?>
  4. Перенести слэйв сервера в административную часть БУС, по нужным группам. Для переноса слэйв серверов в нужную группу необходимо, отредактировать соответствующие записи в таблице b_cluster_dbnode, установив нужное значение в поле GROUP_ID.
  5. Для переноса серверов memcached в нужную группу, необходимо установить нужное значение ключа GROUP_ID в файле /bitrix/modules/cluster/memcache.php.

После этого сервера начнут работать с локальным кешем через сокет, что значительно быстрее чем работа с удаленными серверами по tcp.


Варианты конфигурации веб-кластера для решения практических задач
229 / 278

Выберите подходящий вариант

Прежде всего, необходимо внимательно проанализировать (спрогнозировать) характер нагрузки на веб-приложение. Для сбора и анализа данных рекомендуется проактивно использовать известные инструменты мониторинга, такие как munin, zabbix, apache server-status, и т.п.

Ниже перечислены варианты конфигурации веб-кластера для различных типов нагрузки.

Высокая нагрузка на процессоры, невысокая/средняя нагрузка на СУБД, контент меняется редко

Необходимо снизить нагрузку на процессоры - подключаем к веб-кластеру ноду(ы). Ноды заводим под балансировщик нагрузки. В результате нагрузка на процессоры распараллеливается между нодами.

Рекомендуется также на каждой ноде запустить сервер memcached - это позволит еще больше снизить нагрузку на процессоры за счет того, что кэш будет создаваться один раз на одной из нод веб-кластера, а использоваться остальными нодами.

Для синхронизации контента подойдет csync2, nfs/cifs-сервер на одной из нод веб-кластера.

Высокая растущая нагрузка на СУБД

Для разгрузки СУБД необходимо организовать master-slave репликацию. Чем больше будет добавлено slave-нод, тем сильнее снизится нагрузка на основную master базу данных. Если slave-ноды разной мощности, рекомендуется адекватно распределить между ними нагрузку с помощью параметра Процент распределения нагрузки (0..100).

В результате нагрузка на СУБД распределится между master и slave нодами веб-кластера. При дальнейшем увеличении нагрузки на СУБД рекомендуется:
  1. Оптимизировать master и slave-ноды. Т.к. master-сервер будет использоваться преимущественно для записи, его нужно, путем настройки параметров, оптимизировать для записи, а slave-ноды - оптимизировать для чтения.
  2. Добавлять slave-ноды.

Большой объем кэша, кэш часто перестраивается, контент меняется часто, изменений много

Необходимо настроить эффективную работу с кэшем. Для этого запускаем на каждой ноде сервер memcached, выделяем каждому по несколько GB памяти (в зависимости от требований приложения).

Для синхронизации контента рекомендуется использовать выделенный nfs/cifs-сервер, либо ocfs/gfs или аналоги.


Практическая реализация веб-кластера на примере Amazon Web Services
230 / 278

Рассмотрим создание и конфигурирование веб-кластера на примере настройки двух виртуальных машин на "облачном" хостинге Amazon Web Services. Этот сервис удобен тем, что можно в любое время практически моментально получить виртуальные серверы любой необходимой конфигурации. Если возникли дополнительные вопросы по работе с ним, обращайтесь к официальной документации.


Создание виртуальных машин
231 / 278

Начинаем с создания машин

На сайте Amazon Web Services создаем аккаунт . Создав аккаунт запускаем виртуальну машину с помощью кнопки Launch Instance:

Нажмите на рисунок, чтобы увеличить

Далее нам нужно пройти мастер создания машин.

  1. На первом шаге отфильтруйте образы по CentOS и 64 битам. Выберите подходящий вам или рекомендуемый образ.

    Нажмите на рисунок, чтобы увеличить

    Примечание: "1С-Битрикс: Веб-окружение - Linux" можно поставить и на другие Linux платформы.

  2. В зависимости от ожидаемой нагрузки выбираем аппаратную конфигурацию виртуальной машины. В данном случае выбираем конфигурацию m1.large: 2 ядра примерно по 2 GHz и 7.5GB оперативной памяти:

    Нажмите на рисунок, чтобы увеличить

  3. Конфигурацию машины рекомендуется оставить по умолчанию, но если вы достаточно квалифицированный администратор, то, конечно, никто не мешает выбрать то, что вам нужно.

    Нажмите на рисунок, чтобы увеличить

  4. Задайте нужное число дисков с нужными параметрами. Рекомендуемые значения - на скриншоте.

    Нажмите на рисунок, чтобы увеличить

  5. Задайте название, позволяющее отличить ее от других машин кластера и другие теги
  6. Создаём (либо выбираем) созданную раннее секретную группу с нужным набором параметров. Рекомендуемые параметры - на скриншоте. Порт 11211 используется memcached, 30865 - для csync2. После настройки кластера необходимо обязательно закрыть доступ извне кластера к портам memcached.

    Нажмите на рисунок, чтобы увеличить

  7. На последнем шаге проверьте ещё раз все введённые значения . Если всё верно,то нажмите Launch. Во всплывшем окне создаем (либо выбираем) сделанную ранее пару ключей (для последующей авторизации по SSH):

    Созданный закрытый ключ необходимо импортировать в PuTTYgen и пересохранить в формат закрытого ключа Putty (если Вы работаете на платформе Windows). Т.к. доступ на виртуальные машины осуществляется по умолчанию с использованием закрытого ключа, рекомендуется задать пароль для его защиты.

Всё, машина запущена!

Аналогично запускаем вторую виртуальную машину, но уже как slave:

Нажмите на рисунок, чтобы увеличить

Итог: Запущены две виртуальные машины требуемой производительности с установленной 64-х разрядной операционной системой CentOS.

Для установки и настройки веб-платформы мы использовали бесплатный пакет «1С-Битрикс: Веб-окружение» - Linux. Данный пакет предназначен для быстрой и простой установки и конфигурации всего стека ПО, используемого продуктами "1С-Битрикс" на Linux-платформах.

Мы не ограничиваем использование той или иной веб-платформы. Можно использовать любой другой дистрибутив ОС, иные дистрибутивы и настройки серверного ПО. Однако мы рекомендуем использовать именно "1С-Битрикс: Веб-окружение":

  • как показывают тесты, прирост производительности на сервере, на котором установлено веб-окружение, по сравнению с "голым" сервером с настройками по умолчанию - как минимум, в 2-3 раза;
  • требуется минимальное время для разворачивания системы - полностью настроенную среду можно получить в буквальном смысле в считанные минуты, использование веб-окружения по нашим подсчетам экономит 200-300 часов администрирования.
  • Настройки веб-окружения сбалансированы под большие нагрузки.


Настройка репликации MySQL
232 / 278

Как настроить

Репликация MySQL используется для решения следующих задач:

  1. Увеличение производительности СУБД за счёт подключения к ней серверов при возрастающей нагрузке. Выделяется один сервер преимущественно для модификации данных (master) и остальные для чтения данных (slaves).Это особенно эффективно для веб-приложений, у которых большая часть запросов к СУБД - запросы на чтение.
  2. Онлайн бэкап - данные передаются в режиме онлайн на резервные slave-сервера. При отказе основного сервера на одном из резервных slave серверов имеется "свежая" копия данных.
  3. Эффективное резервное копировании: бэкап делается с резервного сервера без прерывания /замедления работы основного сервера СУБД. Для осуществления целостного бинарного бэкапа СУБД (в особенности InnoDB) можно остановить на необходимое время резервный сервер, выполнить бэкап и запустить резервный сервер снова.
  4. Обеспечение высокой доступности: при выходе из строя одного из серверов СУБД система продолжает обрабатывать запросы.

    5. Примечание: Подробнее о примерах использования репликации MySQL читайте в официальной документации.

Надежность репликации

Вечная проблема: либо производительность либо надёжность. Для обеспечения максимальной надежности репликации рекомендуется установить следующие параметры MySQL:

innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
sync_relay_log = 1
sync_relay_log_info = 1

Примечание: Установка именно таких параметров может привести к общему снижению производительности системы.

Для повышения производительности можно использовать такие параметры (чревато потерей данных нескольких транзакций в момент аварии на базе данных):

innodb_flush_log_at_trx_commit  = 2
sync_binlog = 0

Динамический hostname

Если у настраиваемого сервера динамический IP-адрес/hostname, рекомендуется явно задать параметры: relay-log, relay-log-index.

Привилегии

Для работы репликации учетные записи основного и резервных master/slave-серверов должны иметь, кроме стандартных, также привилегии: SUPER, REPLICATION CLIENT, REPLICATION SLAVE.

Учетные записи
Их три, но для простоты администрирования рекомендуется объединить в одну.
  1. Учетная запись для работы приложения с базой данных (БД) для всех нод кластера (определяемая в dbconn.php).
    GRANT SELECT,LOCK TABLES,CREATE TEMPORARY TABLES,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX, REPLICATION CLIENT, RELOAD ON bitrixcluster.* TO 'bitrixcluster'@'%' IDENTIFIED BY '123456';

    REPLICATION CLIENT - для отображения статистики мастера.

    RELOAD- используется в master-БД во время переноса таблиц в slave-БД для "FLUSH TABLES WITH READ LOCK".

    Под этой же учетной записью (именно логин/пароль) при добавлении slave-базы через административный интерфейс система пытается запустить потоки слейва (CHANGE MASTER TO #логин/пароль учетной записи в master-БД#), поэтому ей также нужны привилегии: REPLICATION SLAVE.

  2. Учетная запись для управления slave-нодами из административного интерфейса веб-кластера. Создается в каждой slave-БД и указывается при подключении слейва в административном интерфейсе веб-кластера.

    GRANT REPLICATION CLIENT on *.* TO 'bitrixcluster_slave'@'%' IDENTIFIED BY '123456'; - нужна для отображения статистики слейва в административном интерфейсе.

    GRANT SUPER on *.* TO 'bitrixcluster_slave'@'%'; - нужна для отображения запуска/останова слейва и изменения параметров репликации из административного интерфейса слейвов веб-кластера.

    GRANT SELECT,LOCK TABLES,CREATE TEMPORARY TABLES,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON bitrixcluster.* TO 'bitrixcluster_slave'@'%' IDENTIFIED BY '123456'; - нужна для первоначального экспорта в БД слейва данных из БД мастера.

  3. Учетная запись для загрузки бинлогов в slave-БД с master-БД (для собственно организации процесса репликации). Создается на master-БД для каждого подключения slave-БД (можно использовать одну учетную запись для всех слейвов).

    GRANT REPLICATION SLAVE on *.* TO 'bitrixcluster_replica'@'%';

Временные зоны

Если сервера СУБД кластера расположены в разных дата-центрах, необходимо настроить на них единую временную зону.

Настройка репликации в административном интерфейсе

При добавлении резервного slave-сервера СУБД мастер настройки репликации проверяет все необходимые параметры . После успешного добавления slave-сервера отображается его статус .

Администрирование репликации

Репликация после настройки работает надежно и требует минимального администрирования. Тем не менее, рекомендуется периодически проверять её состояние утилитами мониторинга операционной системы (nagios, zabbix, monit, linux-ha).

В маловероятном случае возникновения ошибки на slave-сервере переинициализируйте его - заново залейте данные с основного сервера. Для этого нужно его Прекратить использовать, а затем Начать использовать в разделе Репликация (Настройки > Веб-кластер > Репликация).

Резервное копирование

Можно свободно останавливать slave-сервера, в т.ч. для осуществления логического и целостного бинарного резервного копирования средствами MySQL и операционной системы. При этом не прерывается работа основного сервера СУБД.


Аварийное переключение в случае отказа master
233 / 278

Если вышел из строя master

Если отказал основной (master) сервер СУБД, то вручную или автоматически скриптом переключите кластер на другой master-сервер СУБД. Slave-сервер, хранящий последние реплицированные данные, станет основным.

Общая схема этой процедуры:

  1. Закрываем доступ клиентов к веб-приложению

    В двухуровневой конфигурации (фронтэнд nginx - бэкэнд apache и т.п.) на фронтэнде отключите доступ к бэкэнду (веб-приложению) и отдавайте при обращении клиентов информационную страницу о регламентных работах.

  2. Остановите на всех slave-серверах поток получения обновлений бинарного лога с основного (master) сервера:

    STOP SLAVE IO_THREAD;
SHOW PROCESSLIST;

    Дождитесь от потока выполнения команд slave (SQL_THREAD) сообщения "Has read all relay log; waiting for the slave I/O thread to update it", говорящее о том, что slave-сервер выполнил все команды из relay-лога в своей базе. Сразу останавливать slave командой STOP SLAVE не рекомендуется, т.к. не все SQL-команды могут быть выполнены из relay-лога (по причине отставания и т.п.), а при переключении slave на новый мастер, relay-лог будет очищен и, возможно, потеряется часть "непроигранных" данных.

  3. Подготовка нового master-сервера

    Убедитесь, что на slave-сервере, который будет master-сервером, бинарный лог ведется и не логируются запросы из master:

    SHOW VARIABLES LIKE 'log_bin';
log_bin       | ON
SHOW VARIABLES LIKE 'log_slave_updates';
log_slave_updates | OFF

    Полностью останавите slave: потоки чтения бинарного лога и выполнения SQL-команд:

    STOP SLAVE;
RESET MASTER;

    Команда RESET MASTER необходима для очистки бинарного лога нового master. Иначе, если в бинарном логе будут записи (устаревшие и т.п.), они проиграются на подключаемых к нему slave-серверах. Такое возможно, если сервер был master с включенным бинарным логом, потом стал slave и перестал использовать бинарный лог, потом снова переводится в режим master.

    Итак, новый master подготовлен, у него очищен бинарный лог, и он готов обрабатывать запросы.

  4. Переключение slave-серверов на новый master-сервер

    На всех slave-серверах выполняем:

    STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='#new_master_host_name#';
START SLAVE;

    В момент выполнения на slave CHANGE MASTER ... очищается relay-лог slave-сервера, а позиция c которой читается бинарный лог master-сервера устанавливается, если не задано иное, в значение по умолчанию: первый файл бинарного лога, 4 позиция (т.е. в самое начало бинарного лога master-сервера).

  5. Переключаем веб-приложение на новый master-сервер

    Необходимо настроить кластер на использование нового master-сервера. Для этого вписываем его характеристики ($DBHost) в файл /bitrix/php_interface/dbconn.php. Затем, если интервал синхронизации статического контента кластера достаточно велик, вручную запускаем процесс синхронизации на master-сервере: csync2 - x (см. урок Синхронизация данных между серверами ).

  6. Открываем доступ клиентов к веб-приложению

    В двухуровневой конфигурации (фронтэнд nginx - бэкэнд apache и т.п.), на фронтэнде уберите информационную страницу о регламентных работах и переключите запросы на бэкэнд (веб-приложение).

    В итоге кластер использует новый master-сервер.

  7. Подключение вышедшего из строя master-сервера как slave-сервера

    В административном разделе на странице Репликация (Настройки > Веб-кластер > Репликация) нажимаем Добавить slave базу данных и следуем указаниям мастера. Происходит переинициализация slave-сервера: в него переносится текущая база данных с master-сервера и включается репликация.

Примечание: После того, как слейв стал мастером (после аварии), необходимо на странице Slave базы данных удалить этот слейв.


Кластеризация веб-сервера
234 / 278

Несколько веб-серверов

При использовании нескольких веб-серверов для работы сайта любой запрос любого посетителя сайта может попасть на любой из узлов кластера .

Такой принцип работы ставит две задачи:

  1. На каждом веб-сервере должен находиться одинаковый контент ( файлы ).
  2. Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера .

Не все эти задачи могут быть решены в полной степени на уровне веб-приложения. Опишем возможные подходы, покажем на примерах конкретные реализации и расскажем о тех инструментах модуля Веб-кластер платформы "1С-Битрикс", которые помогают решить вопрос кластеризации веб-сервера.

Решение задач

Существует два возможных метода обеспечения синхронизации данных на серверах:

  1. Использование общего дискового хранилища данных.
  2. Использование инструментов синхронизации данных между локальными хранилищами разных серверов.

Кроме того, можно использовать пул серверов memcached (что позволяет значительно сократить объем синхронизируемых файлов за счет вынесения кеша продукта с файловой системы в memcached) и различные варианты хранения пользовательских сессий.

Каждый веб-сервер кластера можно добавить в общий веб-кластер для мониторинга в административном интерфейсе в разделе Веб-сервера .

На каждом из серверов необходимо настроить страницу, на которой будет отображаться статистика веб-сервера Apache (с помощью модуля mod_status). Если используется "1С-Битрикс: Веб-окружение", необходимо:

  1. Внести изменения в конфигурационный файл Apache (/etc/httpd/conf/httpd.conf) - добавить:
    <IfModule mod_status.c>
ExtendedStatus On
<Location /server-status>
    SetHandler server-status
    Order allow,deny
    Allow from 10.0.0.1
    Allow from 10.0.0.2
    Deny from All
</Location>
</IfModule>

    Директива Location обозначает адрес, по которому будет доступна статистика, строки Allow from определяют, с каких IP-адресов статистика будет доступна для просмотра. Можно указать IP всех веб-серверов кластера.

    Перечитать конфигурационные файлы Apache с помощью команды:

    # service httpd reload
  2. Внести изменения в конфигурационный файл nginx (/etc/nginx/nginx.conf) - в первой секции server добавить:
    Location ~ ^/server-status$
{
  proxy_pass http://127.0.0.1:8888;
}

    Перечитать конфигурационные файлы nginx с помощью команды:

    # service nginx reload
  3. Отредактировать файл /home/bitrix/www/.htaccess, добавив после строки:
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

...строку:

RewriteCond %{REQUEST_URI} !/server-status$

После внесения всех необходимых изменений адрес server-status'а можно добавить в конфигурацию кластера .


Синхронизация данных между серверами
235 / 278

Хранение файлов

Задача организации общего файлового хранилища данных веб-кластера решается хорошо известными способами, начиная от "расшаривания" папки с файлами продукта на одной из нод и заканчивая высокопроизводительными SAN/NAS-решениями уровня предприятия.

NAS-сервис веб-кластера на базе NFS, SMB/CIFS

Если веб-кластер создается на двух нодах, на одной ноде запустите сервер NFS/CIFS и обращайтесь к хранимым на нем файлам с других нод веб-кластера.

Для увеличения производительности организуйте выделенный NFS/CIFS сервер, оптимизированный исключительно под файловые операции, используемый всеми нодами веб-кластера. Для достижения большей производительности и надежности общего файлового хранилища веб-кластера рекомендуется обратить внимание на технологии: OCFS, GFS, Lustre, DRBD, SAN, GFS (GlusterFS).

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

Синхронизация данных между серверами

Другой подход в организации нескольких серверов состоит в использовании локальных хранилищ (дисков) и постоянной синхронизации файлов между ними.

Существует множество инструментов, позволяющих решить эту задачу, начиная с простых утилит копирования файлов (ftp, scp) и заканчивая специализированным ПО для синхронизации данных между серверами (rsync, unison).

В нашем кластере для синхронизации данных между серверами мы будем использовать утилиту csync2.

Почему мы выбрали именно ее, какие ее ключевые особенности по сравнению с аналогами?

  • Высокая скорость работы.
  • Низкое потребление ресурсов (CPU, дисковые операции). Два этих фактора позволяют запускать процесс синхронизации максимально часто, поэтому данные на серверах становятся идентичными практически в "реальном времени".
  • Простота настройки для обмена данными между любым количеством серверов.
  • Возможность синхронизации удаления файлов.
  • Защищенный обмен данными между хостами (SSL).

Подробная документация по использованию и конфигурированию csync2 доступна на официальном сайте разработчика: http://oss.linbit.com/csync2/. Мы же рассмотрим пример конкретной конфигурации для двух веб-серверов в кластере.

В некоторых дистрибутивах Linux (например, в Ubuntu) csync2 уже присутствует в репозиториях и доступен для установки из пакетов. Для CentOS это, к сожалению, не так, поэтому необходимо рассмотреть иные варианты установки (сборка из исходников, установка из доступных rpm).

Примечание: В 1C-Битрикс: Виртуальная машина в уже установлен csync2.

Один из возможных вариантов установки:

  1. Устанавливаем необходимые доступные пакеты (библиотеки rsync используются в csync2, из xinetd будет запускаться серверная часть csync2):
    # yum install rsync librsync-devel xinetd
  2. Устанавливаем libtasn1 - библиотеку для работы с X.509 (требуется для csync2):
    # wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/libtasn1-1.1-1.el5/libtasn1-1.1-1.el5.x86_64.rpm
# wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/libtasn1-1.1-1.el5/libtasn1-devel-1.1-1.el5.x86_64.rpm
# wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/libtasn1-1.1-1.el5/libtasn1-tools-1.1-1.el5.x86_64.rpm
# rpm -ihv libtasn1-1.1-1.el5.x86_64.rpm libtasn1-devel-1.1-1.el5.x86_64.rpm libtasn1-tools-1.1-1.el5.x86_64.rpm
  3. Устанавливаем sqlite (2-ой версии) - именно эта версия используется в csync2:
    # wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/sqlite2-2.8.17-1.el5/sqlite2-2.8.17-1.el5.x86_64.rpm
# wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/sqlite2-2.8.17-1.el5/sqlite2-devel-2.8.17-1.el5.x86_64.rpm
# rpm -ihv sqlite2-2.8.17-1.el5.x86_64.rpm sqlite2-devel-2.8.17-1.el5.x86_64.rpm
  4. Устанавливаем непосредственно csync2:
    # wget http://ftp.freshrpms.net/redhat/testing/EL5/cluster/x86_64/csync2-1.34-4.el5/csync2-1.34-4.el5.x86_64.rpm
# rpm -ihv csync2-1.34-4.el5.x86_64.rpm
  5. После установки уже доступны сгенерированные SSL-сертификаты, однако, если их нужно сгенерировать заново, сделать это можно так:
    # openssl genrsa -out /etc/csync2/csync2_ssl_key.pem 1024
# openssl req -new -key /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.csr
# openssl x509 -req -days 600 -in /etc/csync2/csync2_ssl_cert.csr -signkey /etc/csync2/csync2_ssl_key.pem -out /etc/csync2/csync2_ssl_cert.pem
  6. На одном из хостов необходимо сгенерировать файл ключей, который затем будет необходимо разместить на всех серверах, которые будут участвовать в процессе синхронизации:
    # csync2 -k /etc/csync2/csync2.cluster.key

    Файл csync2.cluster.key на всех машинах должен быть одинаковым и должен быть размещен в /etc/csync2/.

    Пример конфигурационного файла /etc/csync2/csync2.cfg

    group cluster
{
  host node1.demo-cluster.ru node2.demo-cluster.ru;

  key /etc/csync2/csync2.cluster.key;

  include /home/bitrix/www;
  exclude /home/bitrix/www/bitrix/php_interface/dbconn.php;

  auto younger;
}

    где:

    • host - адреса серверов, для которых синхронизируются данные;
    • key - файл ключей;
    • include - директория, файлы которой синхронизируются;
    • exclude - исключения (не синхронизировать эти данные);
    • auto - способ разрешения конфликтов в ситуациях, когда один и тот же файл был изменен на нескольких серверах одновременно; younger - приоритет имеет сервер, где были сделаны последние изменения.

  7. Обратим особое внимание на директиву host.

    В конфигурационном файле csync2 может быть задано несколько групп синхронизации. csync2 автоматически игнорирует те группы, в которых не задано локальное имя машины (которое можно посмотреть, например, с помощью команды hostname).

    Поэтому имена машин, данные которых синхронизируются, не должны изменяться. Используйте файл /etc/hosts для указания постоянных IP для конкретных имен. Чтобы задать фиксированное имя для каждого сервера укажите его в каком-либо файле:

    # echo "node1.demo-cluster.ru" > /etc/hostname
    И в стартап-скрипте /etc/init.d/network предпоследней строкой (до exit) впишите:
    /bin/hostname -F /etc/hostname
  8. Если изначально каждый новый сервер создается уже с копией данных с других серверов (например, в случае использования Amazon EC2 удобно сделать snapshot имеющегося instance, а затем подключить его для нового instance), то первая инициализация базы файлов для синхронизации выполняется с помощью команды:
    # csync2 -cIr

    Делается это на каждом хосте.

  9. Работа csync2 на каждом хосте состоит из двух частей - серверной и клиентской. Для запуска серверной части закомментируйте (символом #) в файле /etc/xinetd.d/csync2 строку "disable = yes", перезапустите сервис xinetd и разрешите его запуск при загрузке системы:
    # service xinetd restart
# chkconfig xinetd on
  10. Клиентская часть - запуск csync2 с ключом "-x".

    Определите (в зависимости от объема данных) необходимую частоту обновлений и пропишите запуск csync2, например, через cron. Строка в /etc/crontab:

    */5 * * * * root /usr/sbin/csync2 -x >/dev/null 2>&1
    ...означает запуск csync2 каждые 5 минут.


Кластеризация кеша (memcached)
236 / 278

Кеш храним в кластере

Для обеспечения максимальной производительности веб-кластера реализовано централизованное, разделяемое между нодами хранилище данных кэша - кэш, созданный в результате ресурсоемких вычислений нодой "А", будет использован нодой "B" и остальными нодами кластера. Чем больше нод, тем больший эффект даст использование централизованного кэша.

Для централизованного и надежного хранения данных кэша используется кластер серверов memcached, который активно используется в таких проектах как Youtube, Facebook, Twitter, Google App Engine.

Для запуска сервера memcached на "1С-Битрикс: Веб-окружение" (Linux) выполните команды:

# chkconfig memcached on
# service memcached start

Улучшенная эффективность за счет вытеснения устаревших данных

За счет использования в сервере memcached алгоритма LRU в кэше будут храниться только наиболее актуальные данные, а редко используемые - вытесняться. Это не позволит объему кэша безгранично разрастаться в размерах (например, из-за ошибок разработчиков при интеграции), что приводило не только к неэффективному использованию ресурсов системы, но и отрицательно сказывалось на скорости работы с кэшем за счет роста его объема.

В результате кэш веб-кластера будет автоматически поддерживаться в максимально эффективном состоянии: как по скорости доступа, так и по использованию ресурсов.

Рекомендуется периодически анализировать использование кэша приложением и подобрать оптимальный размер кэша. Если сервера memcached имеют разный размер (обусловленный, возможно, разным объемом оперативной памяти на физических серверах), можно регулировать их использование через задание Процент распределения нагрузки .

Улучшенная надежность и масштабируемость

За счет кластеризации данных кэша на нескольких серверах memcached выход из строя одного memcached сервера не выведет из строя подсистему кэширования. В случае увеличения объема данных кэша необходимо подключить к веб-кластеру дополнительный memcached сервер:

Если используется несколько memcache-серверов, нужно установить значение переменной memcache.hash_strategy string в consistent (по умолчанию это выключено!). Такое значение нужно для следующего: если один из мемкэшей сломается, начнется ресурсоемкая операция перетасовки ключей между мемкэшами, замедляющая работу веб-кластера. А если установить в consistent - проблем практически не будет.

Безопасность

Необходимо открыть доступ к серверам memcached только для нод веб-кластера путем настройки файервола. При использовании хостинга Amazon Web Services это можно сделать через редактирование параметров группы безопасности (введите параметры, соответствующие вашей конфигурации веб-кластера):


Способы балансировки нагрузки между нодами веб-сервера
237 / 278

Как распределять нагрузку

Спектр инструментов, служащих для распределения и балансировки нагрузки между серверами, очень широк. Существуют как дорогие аппаратные решения (например, Cisco CSS, Content Services Switch - различных моделей), так и более простые (но тем не менее весьма эффективные) программные средства.

Load Balancer (Amazon Web Services)

Балансировщик нагрузки AWS использует простой алгоритм балансировки (round robin) и настраивается достаточно просто. DNS-имя балансировщика создается автоматически, и необходимо создать для него удобочитаемое CNAME:

my-load-balancer-1820597761.us-west-1.elb.amazonaws.com -> www.mydomain.com

В личном кабинете воспользуйтесь командой добавления балансировщика . При выборе мастера создания и воспользуйтесь классическим сценарием для добавления. Пройдите все шаги мастера.

Балансировщик «слушает» порт 80 и перенаправляет запросы на 80 порт нод веб-кластера .

Укажите страницу ноды для проверки и таймауты:

Нажмите на рисунок, чтобы увеличить

Рекомендуется в Ping Path задать страницу, обращения к которой не фиксируются в модуле Веб-аналитика. Остальные параметры выбираются в зависимости от ожидаемой нагрузки.

Выбираем ноды, которые будут находиться за балансировщиком. В связи с простым алгоритмом балансировки (round robin), рекомендуется подбирать ноды примерно одинаковой производительности. Если ноды располагаются в разных дата-центрах (availability zones), то рекомендуется их одинаковое количество в каждом дата-центре.

Нажмите на рисунок, чтобы увеличить

Если мы хотим, чтобы все запросы от одних и тех же клиентов обрабатывались одними и теми же нодами кластера, необходимо добавить привязку сессии посетителя к ноде веб-кластера. Для этого в настройках балансировщика включаем привязку Enable Load Balancer Generated Cookie Stickiness.

Теперь, независимо от того, сколько нод кластера размещены за балансировщиком, они будут доступны по единому доменному имени: www.mydomain.com. В случае выхода ноды из строя/перегрузки балансировщик перестает направлять на нее посетителей кластера.

Примечание: Подробнее о балансировщике нагрузки читайте в официальной документации AWS.

DNS

Самый простой способ балансирования нагрузки и распределения запросов между веб-серверами - использование механизма round robin DNS. У Amazon в сервисе Route53 существует еще один простой и удобный механизм фейловера на базе DNS (Route 53 Health Checks and DNS Failover).

Спецификация стандарта DNS позволяет указать несколько разных IN A записей для одного имени. Например:

www  IN A  10.0.0.1
www  IN A  10.0.0.2

В этом случае DNS-сервер в ответ на запрос разрешения имени в IP-адрес будет выдавать не один адрес, а весь список:

# host www.domain.local
www.domain.local has address 10.0.0.1
www.domain.local has address 10.0.0.2

При этом с каждым новым запросом последовательность адресов в списке в ответе будет меняться. Таким образом клиентские запросы будут распределяться между разными адресами и будут попадать на разные серверы.

Использование round robin DNS - самый простой способ балансировки нагрузки, не требующий никаких дополнительных средств, однако он обладает целым рядом недостатков, поэтому мы рекомендуем использовать его только в том случае, если нет возможности применить какой-либо иной балансировщик.

Минусы применения round robin DNS:

  • нет четкого критерия выбора IP из списка клиентом (может выбираться первый элемент, может кэшироваться последнее выбранное значение, возможны иные варианты): все зависит от реализации конкретного клиента;
  • нет механизмов определения доступности узлов и возможности задания их "весов": в случае аварии на одном или нескольких узлах кластера нагрузка будет продолжать распределяться между рабочими и вышедшими из строя нодами;
  • длительное время кэширования ответов DNS: в случае аварии и изменении тех или иных записей в DNS потребуется некоторое время (зависит от настроек DNS) для обновления данных на всех клиентах.

nginx

Рассмотрим пример использования в качестве балансировщика http-сервера nginx. Для этих целей используется модуль ngx_http_upstream.

При использовании "1С-Битрикс: Веб-окружения" nginx уже установлен на серверах веб-кластера. И для распределения нагрузки можно использовать непосредственно один из серверов кластера. Однако для более простого, гибкого и удобного конфигурирования лучше использовать отдельный сервер с установленным nginx в качестве балансировщика.

В простейшем примере фрагмент конфигурационного файла nginx (/etc/nginx/nginx.conf), обеспечивающего распределение нагрузки между серверами, будет выглядеть так (помимо стандартных директив, определяющих, например, пути и формат log-файлов и т.п.):

http {
    upstream backend {
        server node1.demo-cluster.ru;
        server node2.demo-cluster.ru;
    }

    server {
        listen   80;
        server_name  load_balancer;

        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host:80;

            proxy_pass  http://backend;
        }

    }
}

В секции upstream задаются адреса серверов, между которыми будет распределяться нагрузка.

В DNS имя сайта указывается на тот IP, на котором работает сервер с nginx, распределяющем нагрузку.

Если не указаны какие-либо дополнительные параметры, запросы распределяются между серверами по принципу round robin.

Однако с помощью модуля ngx_http_upstream можно реализовать и более сложные конфигурации.

  • В некоторых случаях бывает удобно передавать все запросы от одного клиента на один и тот же сервер, а между серверами распределять только запросы разных клиентов.

    Для реализации подобного функционала служит директива ip_hash. Пример:

    upstream backend
{
    ip_hash;

    server node1.demo-cluster.ru;
    server node2.demo-cluster.ru;
}

    В этом случае распределение запросов основано на IP-адресах клиентов.

  • Если для узлов кластера используются серверы разной конфигурации (разной мощности), бывает полезно задать "вес" для тех или иных хостов, направляя на них больше или меньше запросов.

    Для этого служит параметр weight директивы server. Пример:

    upstream backend
{
    server node1.demo-cluster.ru weight=3;
    server node2.demo-cluster.ru;
    server node3.demo-cluster.ru;
}
    В такой конфигурации каждые 5 запросов будут распределяться следующим образом:
    • 3 - на node1.demo-cluster.ru;
    • 1 - на node2.demo-cluster.ru;
    • 1 - на node3.demo-cluster.ru.

    Обратите внимание: для серверов, использующих метод распределения ip_hash, нельзя задать вес.

  • Можно настроить параметры, по которым будут определяться неработающие серверы.

    max_fails = число - задает число неудачных запросов к серверу в течение времени, заданного параметром fail_timeout, после которых он считается неработающим также в течение времени заданного параметром fail_timeout;

    fail_timeout = время

    Пример:

    upstream backend
{
    server node1.demo-cluster.ru max_fails=3 fail_timeout=30s;
    server node2.demo-cluster.ru max_fails=3 fail_timeout=30s;
}

    Если при запросе к серверу произошла ошибка, запрос будет передан на следующий сервер. Если произошло 3 ошибки в течение 30 секунд, то на 30 секунд сервер будет помечен неработающим, и в течение этого времени новые запросы не будут на него отправляться.


Добавление ноды веб-кластера
238 / 278

+ ещё одна нода

Задача: в связи с растущей нагрузкой необходимо добавить ноду к веб-кластеру. Фактически, необходимо запустить новый физический/виртуальный сервер и прописать его в настройках веб-кластера.

Так как наш демо-кластер мы запускали в «облаке» Амазона, мы опишем последовательность действий именно для AWS. Однако и для любой другой среды ( VPS или несколько выделенных серверов) общая схема будет примерно такой же.

На облачном хостинге AWS необходимо:

  1. Создать снапшот диска с данными приложения одной из нод.
  2. Создать из снапшота новый диск, который будет хранить данные оригинальной ноды.
  3. Запустить виртуальную машину с AMI, аналогичной оригинальной ноде.
  4. Выбрать для виртуальной машины аппаратную конфигурацию в зависимости от ожидаемой нагрузки. В самом простом случае рекомендуется ее выбрать аналогичной оригинальной ноде.
  5. Остановить новую ноду.
  6. Отключить от нее диск.
  7. Вместо отключенного диска подключить созданный в шаге 2 диск.
  8. Запустить новую ноду.
  9. Привязать при необходимости к новой ноде эластичный IP-адрес.
  10. Настроить новую ноду: если используется csync2, то прописать в его настройки на всех нодах веб-кластера доменное имя новой ноды. Запустить на новой ноде необходимые сервисы: memcached, mysql-slave.
  11. Рекомендуется в инициализационные скрипты новой ноды добавить ее привязку к эластичному IP-адресу. Иначе при ее останове/запуске нужно будет снова привязывать к ней IP-адрес вручную.
  12. Теперь с новой нодой синхронизируется контент с текущих нод веб-кластера. Ее необходимо добавить в балансировщик нагрузки.

    Примечание. Если новая нода используется как mysql-slave, memcached-сервер, необходимо зарегистрировать в административном интерфейсе веб-кластера (Настройки > Веб-кластер).


Нагрузочное тестирование кластера, анализ различных сценариев и выводы
239 / 278

Проверяем работу

Существует множество утилит для проведения нагрузочных тестов веб-систем . От достаточно простых (ab, входящая в дистрибутив Apache, siege, httperf) до мощных инструментов, позволяющих задавать любые пользовательские сценарии и предоставляющих самую разнообразную статистическую информацию (JMeter, tsung, WAPT).

Кроме этих утилит вы можете использовать Монитор производительности платформы "1С-Битрикс" доступен встроенный инструмент тестирования нагрузки.

Обратите внимание: для минимизации влияния самого тестирующего скрипта на результаты тестов рекомендуется запускать его не на самих тестируемых серверах, а на отдельном хосте.

На тестируемом сайте необходимо на время проведения теста отключить опцию ( Блокировать? ) в настройках модуля Веб-аналитика, закладка Настройки, секция Ограничение активности.

Покажем, как работает этот инструмент, и проведем несколько тестов.

Первый тест - рост нагрузки

Параметры проводимых тестов:

  • Сервер - в нашем случае мы даем тестовую нагрузку на балансировщик (nginx), который распределяет нагрузку между двумя веб-серверами кластера (на каждом сервере работают и добавлены в кластер веб-сервер, MySQL, memcached);
  • Страница - URL, на который отправляются запросы;
  • Начальное количество одновременных соединений, Конечное количество, Шаг увеличения соединений - параметры нагрузки.

В нашем тестовом примере мы начинаем отправлять запросы на индексную страницу в 10 одновременных потоков и постепенно увеличиваем их количество до 200.

По графику Время генерации/получения страницы мы видим что:

  • вся система сбалансирована по нагрузке, с ее ростом не наступает деградация производительности системы (скорость генерации страниц сервером практически не изменяется, это видно на красном графике);
  • увеличивается время отдачи страниц клиентам, растет очередь (синий график).

Второй тест - эмуляция аварии (отключения) сервера со slave базой данных MySQL

Во втором тесте мы эмулируем отключение одной из машин кластера (той, на которой работает slave-база данных MySQL).

Небольшие пики на графиках – моменты синхронизации контента (у нас в тесте установлен частый период обновлений, его можно уменьшить).

Большой «провал» красного графика (и «всплеск» на синем графике) – момент отключения одной из машин кластера.

Третий тест - эмуляция аварии (отключения) сервера с master базой данных MySQL

Отключение сервера с master-базой данных MySQL отличается от предыдущего теста тем, что необходимо выполнить ряд действий для переключения базы данных slave в режим мастера. Общая схема действий подробно описана в главе Настройка репликации MySQL, аварийное переключение slave->master .


Масштабирование
240 / 278

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


Управление масштабированием
241 / 278

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

Внимание! Для работы модуля Управление масштабированием установите «1С-Битрикс» версии 14.5 и выше на одно из специальных Битрикс VM-решений:
  1. 1C-Битрикс: Виртуальная машина в версии не ниже 5.х. Рекомендуется 7.х.
  2. 1С-Битрикс: Веб-окружение - Linux в версии не ниже 5.x. Рекомендуется 7.х.
  3. Virtuozzo Application Template для запуска оптимизированного VPS «Битрикс».
  4. AMI-образ BitrixVM для быстрого запуска приложений «1С-Битрикс» в Amazon EC2.

Где производится управление

Панель управления (Настройки > Управление масштабированием > Панель управления) - инструмент непосредственного управления масштабированием системы.

Для начала работы системы масштабирования добавьте сервер , после чего система готова к работе:

Нажмите на рисунок, чтобы увеличить


Добавление нового сервера
242 / 278

Добавление сервера на локальной машине

Для добавления новых серверов в пул нужно кликнуть на область Новый сервер , указать сетевой адрес, пароль пользователя root и имя хоста добавляемого сервера:

Внимание! Если на подключаемом сервере, работающем на одном из специальных Битрикс VM-решений, не был сменен пароль по умолчанию для root, то система предложит это сделать .

После этого нужно будет повторно ввести данные сервера для включения его в пул.

Добавление сервера на хостинге

Если виртуальная машина или окружение «1C-Битрикс» уже настроены и располагаются на площадке провайдера, то в меню добавления сервера появится возможность выбора сервера из предлагаемых хостером:

Далее уже можно отслеживать статусы заказа сервера у провайдера на странице Список заказов VPS (Настройки > Управление масштабированием > Список заказов).


Глобальные действия
243 / 278

Самые общие команды

В меню Глобальные действия собраны команды, чьё действие распространяется на все серверы, входящие в пул:

  • Включить мониторинг
  • Добавить сайт
  • Удалить сайт
  • Настроить e-mail
  • Отключить cron
  • Отключить http
  • Настройка сертификатов
  • Команды обновлений
    •

    Внимание! Команды могут выполняться довольно длительное время (от одной минуты до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Во время выполнения команды другой функционал будет недоступен, о чем будет выведено сообщение .

    Включить мониторинг

    Пункт меню Включить мониторинг позволяет включить инструмент визуального мониторинга для каждого сервера в пуле:

    Нажмите на рисунок, чтобы увеличить

    Примечание: Подробные графики нагрузки для каждого сервера в пуле можно увидеть на странице Графики нагрузки .

    Добавить сайт

    Сайт можно добавлять как ссылку и как сайт на отдельном ядре. Сайт в виде ссылки подходит для большинства случаев. Сайт в виде отдельного ядра рекомендуется добавлять если у вас много сайтов на одном ядре.

    Для добавления сайта-ссылки нужно ввести Ядро, Название сайта и Путь к сайту

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

    После отработки команды на сервере будет создана директория /home/bitrix/ext_www/{путь к сайту} с символическими линками на текущее ядро сайта и общей базой данных с основным сайтом (аналогично установке с ключом link из меню BitrixVM v7.x).

    Удалить сайт

    При удалении нужно выбрать сайт из списка пула. После отработки команды сайт будет удален из системы.

    Внимание! Мастер удаления дополнительного сайта удаляет папку /home/bitrix/ext_www/{путь к сайту} и базу данных дополнительного сайта, поэтому необходимо предварительно сделать бекап важных данных.

    Настроить e-mail

    Для настройки почты выберите сайт из списка пула и ввести необходимые данные для smtp-сервера:

    Отключить cron

    Для отключения cron выберите сайт из списка пула. Теперь все события на данном сайте будут выполняться на агентах. Для включения cron для этого сайта используйте появившейся пункт меню [Установить cron].

    Отключить http

    По умолчанию доступ к сайтам разрешен по протоколам http и https. Для отключения протокола http просто выберите сайт из списка пула. Теперь все данные на сайте будут передаваться только по защищенному протоколу https.

    Чтобы включить снова http для этого сайта, выберите появившейся пункт меню Включить http

    Настройка сертификатов

    Для настроек сертификатов выберите тип сертификата и сайт , для которого устанавливается сертификат. Далее введите необходимые данные для самоподписного либо Let's Encrypt сертификата.

    Команды обновлений

    Команды обновлений :

    • Обновить Битрикс окружение - обновление серверного ПО «Битрикс Веб-окружения» одновременно на всех серверах пула.
    • Обновить систему на серверах - обновление одновременно на всех серверах пула как серверного ПО, так и "1С-Битрикс: Управление сайтом".

    Внимание! Обновления - сложная операция, в процессе которой происходит обновление системных файлов операционной системы сервера. Перед запуском обновления рекомендуется сделать полный бекап.


Действия над сервером
244 / 278

Управление отдельным сервером

Меню Действия сервера распространяется только на текущий сервер, входящий в пул:

Описание значений некоторых действий:

  • Удалить из пула - позволяет исключить сервер из пула.
  • Обновить Битрикс-окружение и Обновить систему - команды, аналогичные одноимённым Глобальным командам .

    Внимание! Обновления - сложная операция, в процессе которой происходит обновление системных файлов операционной системы сервера. Перед запуском обновления рекомендуется сделать полный бекап.

  • Команды Смены паролей пользователей root или bitrix- позволяет сменить пароль пользователя.

    Внимание! При смене пароля суперпользователя root будьте внимательны!


Графики нагрузки
245 / 278

Наглядное отображение

Детальные графики нагрузок различных сервисов на каждом сервере отображаются на странице Графики нагрузки (Настройки > Управление масштабированием > Графики нагрузки). Выберите с помощью фильтра нужный сервер, категорию и период для вывода графиков:

Система мониторинга позволяет выводить графики сервисов за день, неделю, месяц и год для каждого сервера пула, используя панель фильтра:

Apache:
  • CPU usage by httpd
  • Apache accesses
  • Apache processes
  • Apache volume
MySQL:
  • CPU usage by mysqld
  • MySQL queries
  • MySQL slow queries
  • MySQL threads
  • MySQL throughtput
Nginx:
  • CPU usage by nginx
  • Nginx status
  • Nginx requests
Сеть:
  • Connections through firewall
  • Firewall Throughtput
  • Netstat
  • ipconntrack
Система:
  • CPU usage
  • File table usage
  • Inode table usage
  • Load average
  • Memory usage
  • Swap in/out
  • Uptime
Диски:
  • Disk IOs per device
  • Disk latency per device
  • Disk usage per persent
  • IOstat
  • Inode usage per persent
  • Throughtput per device
Процессы:
  • Forkrate
  • Number of threads
  • Processes
  • VMstat

Внимание: Для вывода графиков нагрузок предварительно включите мониторинг в меню Глобальные действия пула.


Роли
246 / 278

Службы сервера

Ролями в модуле Масштабирования являются службы сервера:

  • Apache - веб-сервер;
  • Memcached - кеширование данных;
  • MySQL - база данных;
  • Sphinx - полнотекстовый поиск;
  • Push - отправка push-уведомлений.

Примечание: На главном сервере пула есть еще одна роль - Балансировщик, которая является системной и управляет всеми серверами и службами пула.

Внимание! Перед созданием ролей необходимо поменять пароль виртуальной машины. Часть операций (например, создание роли Apache вообще не может быть выполнена без смены пароля.)

Добавление, удаление роли

При наведении указателя мыши на роль всплывет меню, в котором можно Добавить роль . После того, как отработает мастер добавления ролей (это может занять продолжительное время), страница загрузится и будет показана выбранная роль на данном сервере:

Аналогично можно Удалить роль .

MySQL

При создании роли MySQL slave система предложит создать резервную копию базы данных. Если согласиться, то откроется страница Резервного копирования ; если выбрать Отмена, то создание роли MySQL slave будет продолжено.

После добавления роли MySQL, эта база будет выполнять роль slave-базы. Чтобы изменить роль MySQL slave на MySQL master, нужно выбрать Сделать мастером в меню действий роли MySQL slave:

В этом же меню с помощью соответствующих команд можно либо остановить сервис, либо сменить пароль Mysql.

Важно помнить!

В инструменте Масштабирование описанными выше несложными манипуляциями создаётся пул серверов с нужными ролями, мониторингом и распределением нагрузки.

Внимание! Команды могут выполняться довольно длительное время (от одной минуты до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Во время выполнения команды другой функционал будет недоступен, о чем будет выведено сообщение .


Список заказов
247 / 278

Новые сервера

Внимание: Выбор сервера от провайдера появится, если хостер предлагает настроенную виртуальную машину или окружение «1С-Битрикс» у себя на площадке.

В разделе Список заказов VPS осуществляется просмотр заказов серверов от партнеров «1С-Битрикс», присоединенных в пул.

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

После отработки команды машина появится в списке серверов со статусом Сервер предоставлен . Для добавления сервера в пул нужно выбрать в меню действий соответствующий пункт:

Спустя некоторое время сервер будет добавлен в пул:

Внимание! Команды могут выполняться довольно длительное время (от одной минуты до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера.


Проверьте себя
248 / 278

Ответьте на несколько вопросов по теме Производительность и отказоустойчивость, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Отображение статистики производительности на странице сайта доступно только из административного раздела.
Верно
Увы, вы ошиблись. В публичной части сайта есть специальная кнопка для отображения статистики производительности на странице. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
2 Скорость сайта - комплексный показатель комфортности работы с сайтом для посетителей.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
3 Нажатие кнопки Тестировать производительность в Мониторе производительности позволит вам определить слабые места настройки хостинга.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Компоненты ведут себя одинаково, независимо от настроек кеширования.
Верно
Увы, вы ошиблись. В зависимости от настроек кеширования компоненты ведут себя по-разному. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
5 При установленной опции Учитывать права доступа в компонентах, кеш будет разный для разных групп пользователей.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
6 Обновление кеша всегда выполняется вручную.
Верно
Увы, вы ошиблись. Кеш компонентов возможно обновлять автоматически при изменении данных с помощью технологии управляемого кеширования. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
7 Штатная функция объединения и сжатия css и js файлов позволяет повысить производительность сайта.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
8 Сохранять бэкап в облаке можно непосредственно из Административного раздела с помощью специального модуля.
Верно
Аплодисменты, вы ответили правильно! Это модуль Облако 1С-Битрикс.
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
9 Инспектор сайтов собирает статистику о доступности и работоспособности сайта, при этом отслеживать неполадки требуется самостоятельно.
Верно
Увы, вы ошиблись. Инспектор сайтов периодически проверяет работоспособность сайта и сообщает обо всех неполадках через E-mail или push-уведомления для мобильных устройств. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
10 Использование ускорения сайта (CDN) позволит значительную часть ресурсов сайта загружать с ближайшего к пользователю сервера.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
11 После создания подключения к облачному хранилищу, все старые файлы автоматически перенесутся.
Верно
Увы, вы ошиблись. Для переноса старых файлов в меню действий списка подключений необходимо выбрать пункт Переместить файлы в облачное хранилище. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
12 Вертикальный шардинг - это распределение однотипных данных веб-приложения между отдельными базами данных.
Верно
Увы, вы ошиблись. Это определение для горизонтального шардинга. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
13 Если произошёл отказ всех memcached-серверов, то подсистема кеширования снова начинает использовать файловый кеш.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
14 Отключить доступ по протоколу http можно через глобальные действия панели управления масштабированием.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
15 Смена паролей для пользователей root и bitrix из административного раздела - запрещена.
Верно
Увы, вы ошиблись. В действиях над сервером в управлении масштабированием доступно действие Сменить пароль. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!


Резервное копирование
249 / 278

В главе рассматривается механизм резервного копирования и способы хранения копий для любого коробочного продукта: "1С-Битрикс: Управление сайтом" и "Битрикс24 в коробке".

Внимание! Если у вас используется устаревшая версия программы (до 12.0), то воспользуйтесь этим документом.


Создание резервной копии
250 / 278

Страница разервного копирования

Выполняется резервное копирование на странице Резервное копирование (Настройки > Инструменты > Резервное копирование).

Обратите внимание! Механизм резервного копирования может быть использован только для базы данных MySQL.

Расписание резервирования и резервные копии в облаке "1С-Битрикс"
Нажмите на рисунок, чтобы увеличить

Форма создания резервной копии:

Нажмите на рисунок, чтобы увеличить

К вкладке Резервное копирование относятся важные примечания:

  1. Компания "1С-Битрикс" бесплатно предоставляет место в облаке для хранения трех резервных копий на каждую активную лицензию. Объём пространства в облаке зависит от лицензии. Доступ к резервным копиям осуществляется по лицензионному ключу и паролю. Без знания пароля никто, включая сотрудников "1С-Битрикс", не сможет получить доступ к вашим данным.
  2. Если выбрано несколько сайтов для помещения в архив, в корне архива будет лежать первый по списку сайт, а публичные части остальных сайтов будут помещены в папку /bitrix/backup/sites. При восстановлении нужно будет вручную скопировать их в нужные папки и создать символьные ссылки.

Особенности резервного копирования при многосайтовости на разных доменах

  1. Создавать резервные копии можно для любого сочетания существующих в системе файлов. Просто отметьте "птичками" в форме нужные сайты.
  2. База данных полностью копируется в архив. Даже тех сайтов, которые не были отмечены "птичками".
  3. Восстановление сайтов потребует дополнительных действий со стороны администратора:
    • Учтите, что из выбранных сайтов в состав архива полностью копируется только первый по сортировке в списке сайтов. Соответственно, при восстановлении в полностью работоспособном состоянии восстанавливается только этот сайт.
    • Публичная часть остальных сайтов сохраняется в архиве в папках вида /bitrix/backup/sites/_ID_сайта_. При распаковке архива появится предупреждение, что в нём содержится несколько публичных частей. После распаковки администратор должен будет вручную перенести папки сайтов в соответствующие папки на сервере.
    • Многосайтовость надо восстановить вручную (восстановить симлинки). Только после этого остальные сайты будут работоспособны.

Вкладка Параметры

Резервную копию можно сохранить как на локальный носитель, так и в облачное хранилище. В обоих случаях возможно изменение настроек этого процесса. Для этого перейдите на закладку Параметры и активируйте опцию Включить экспертные настройки создания резервной копии.

Внимание! Если вы не совсем ясно представляете суть настроек параметров, то рекомендуется не пользоваться этой опцией, а оставить настройки по умолчанию

Нажмите на рисунок, чтобы увеличить

К вкладке Параметры относятся важные примечания:

  3. Для маски исключения действуют следующие правила:

    • шаблон маски может содержать символы "*", которые соответствуют любому количеству любых символов в имени файла или папки;
    • если в начале стоит косая черта ("/" или "\"), путь считается от корня сайта;
    • в противном случае шаблон применяется к каждому файлу или папке;

    Примеры шаблонов:

    • /content/photo - исключить целиком папку /content/photo;
    • *.zip - исключить файлы с расширением "zip";
    • .access.php - исключить все файлы ".access.php";
    • /files/download/*.zip - исключить файлы с расширением "zip" в директории /files/download;
    • /files/d*/*.ht* - исключить файлы из директорий, начинающихся на "/files/d" с расширениями, начинающимися на "ht".
  4. При размещении резервной копии в облачном хранилище "1С-Битрикс" отключить шифрование нельзя.
  5. Системные ограничения php не позволяют делать размер одной части архива более 2 Гб. Не устанавливайте это значение больше 200 Мб т.к. это существенно увеличивает время архивации и распаковки, оптимальное значение: 100 Мб.

Подробнее о полях на вкладке Параметры

  • Величина поля Длительность шага зависит от параметров, установленных на хостинге (в php.ini). Если точное доступное значение шага неизвестно, то рекомендуются значения не более 30.
  • Если настроено несколько сайтов с разными путями к корневой папке веб-сервера, они сохраняются и восстанавливаются отдельно. При этом полный архив делается один раз. А затем, при архивации других сайтов, необходимо будет исключить ядро и базу данных через экспертные настройки. Если восстановление делается на другом сервере, символьные ссылки на папки /bitrix и /upload необходимо будет создать вручную.
  • Если копия будет сохраняться локально , то можно не использовать опцию шифрования данных резервной копии , это снизит нагрузку на сервер при создании архива.
  • Суть Проверки целостности архива после его завершения в том, что идет "виртуальная" распаковка без создания файлов. То есть это гарантирует, что сам по себе файл получился корректный. Полную гарантию целостности резервной копии можно дать после полного восстановления сайта.
Примечание: Подробное описание полей формы смотрите на странице пользовательской документации.

Подробнее про операцию переноса сайта с локальной машины на удаленный хостинг смотрите в уроке Перенос продукта.


Основные возможности
251 / 278

Как известно всем администраторам сайтов, бэкап должен быть всегда и много бэкапов не бывает. Кроме защиты данных от повреждения, резервное копирование необходимо также при переносе сайта на удаленный хостинг.

При работе с CMS Битрикс вы можете хранить резервные копии сайта :

  • у себя на локальном компьютере
  • в Облаке 1С-Битрикс
  • в стороннем облачном хранилище

Каждый из этих способов имеет свои достоинства и недостатки:

Например, хранение бэкапа на своем локальном компьютере может быть самым дешевым и доступным, но очень ограниченным по объему. К тому же, это не защищает от повреждения данных в результате простого отключения электричества во всем городе, не говоря уж о техногенных катастрофах, стихийных бедствиях и др. Снизить риски поможет дублирование на удаленную площадку - буквально физическое перемещение носителя с копией в другой город (страну, континент). Но это значительно снижает скорость восстановления данных при необходимости.

Хранение в Облаке 1С-Битрикс - это бесплатно, очень надежно, просто и быстро. Можно настроить регулярное автоматическое резервирование штатными методами системы. Недостаток - ограничение по объему в зависимости от тарифа. Но вы можете по потребности докупать место в облаке без смены тарифного плана.

Подключение сторонних облачных хранилищ также делается средствами и через интерфейс CMS Битрикс. Современные датацентры предлагают выгодные цены и большие объемы. Вы можете воспользоваться любыми "облаками", хранить там свои файлы и таким образом снижать нагрузку на ваши сервера. Но потребуется самостоятельно оформить "облачный" аккаунт у выбранного хостера и настроить его. Кроме того, место в облаке ограничено вашим тарифным планом.

Возможности резервного копирования:

  • создание архивной версии файлов сайта (формат tar.gz);
  • исключение из архива папки, содержащей ядро продукта;
  • исключение из архива файлов, размер которых превышает некоторое заданное значение;
  • создание дампа базы данных (формат tar.gz);
  • исключение из дампа таблиц статистики и поискового индекса;
  • автоматическое деление архивов на части когда размер несжатых данных превышает 1Гб;
  • архивирование данных в облачные хранилища.

Документация по теме:

  • Резервное копирование
  • Автоматическое создание резервной копии


Хранение и шифрование резервных копий
252 / 278

Где хранить бэкапы

Где хранить бэкапы сайта - на локальном компьютере, в облаке 1С-Битрикс или в сторонних облачных хранилищах обычно решает администратор в соответствии с политикой компании. А CMS "1С-Битрикс" обеспечивает все эти возможности.

В списке резервных копий (Настройки > Инструменты > Резервное копирование > Список резервных копий) отмечено, является ли бэкап локальным или облачным. И действия, доступные в контекстом меню, также отличаются:

Нажмите на рисунок, чтобы увеличить

Локальный бэкап

Для сохранения на локальный носитель надо на закладке Резервное копирование выбрать опцию в папке сайта и нажать кнопку Резервное копирование. Архив создастся и сохранится. В имени файла будет содержаться дата создания.

Нажмите на рисунок, чтобы увеличить

В рамках файловой структуры сайта файлы копий хранятся в папке /bitrix/backup.

Облачный бэкап

Можно хранить резервную копию в любом стороннем облачном хранилище или в облачном хранилище, предоставляемом компанией "1С-Битрикс". В обоих случаях необходимы:

  • установленный модуль Облачные хранилища (clouds) ,
  • подключённое какое-либо хранилище,
  • доступный на сервере php модуль mcrypt (иначе отобразится соответствующая ошибка и будет недоступно шифрование).

Если используется копирование в облако "1С-Битрикс", то дополнительно необходимы:

  • активный коммерческий лицензионный ключ,
  • установленый модуль Облако 1С-Битрикс (bitrixcloud) .
Примечание: Хранение бэкапа в облаке "1С-Битрикс" не требует оплаченного и подключённого стороннего облачного хранилища. Однако объем хранимой информации ограничен:
  • «1С-Битрикс: Управление сайтом» - Старт: 1 Гб;
  • «1С-Битрикс: Управление сайтом» - Стандарт: 2 Гб;
  • «1С-Битрикс: Управление сайтом» - Малый бизнес: 4 Гб;
  • «1С-Битрикс: Управление сайтом» - Эксперт: 6 Гб;
  • «1С-Битрикс: Управление сайтом» - Бизнес: 10 Гб;
  • «Битрикс24 в коробке» - Корпоративный портал: 20 Гб;
  • «Битрикс24 в коробке» - Холдинг: 50 Гб.

В облаке "1С-Битрикс" будут храниться только 3 файла бэкапа, более ранние по времени будут удаляться автоматически. При нехватке места будет удалена самая ранняя копия (или все копии, если будет недостаточно места для сохранения новой).

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

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

Примечание: Облако "1С-Битрикс" доступно пользователям с активной лицензией. Если лицензия закончилась, то файл бэкапа будет доступен в облаке "1С-Битрикс" в течение двух недель. Но восстановить резервную копию из облака можно только при наличии активного лицензионного ключа.

Шифрование

При хранении резервной копии в любом облачном хранилище требуется гарантия безопасности данных. Делается это с помощью шифрования. Для шифрования бэкапа в настройках на закладке Параметры должна быть включена опция Шифровать данные резервной копии.

Примечание: при размещении резервной копии в облачном хранилище "1С-Битрикс" отключить шифрование нельзя.

Внимание! Пароль пользователя не хранится в системе Bitrix Framework или в компании "1С-Битрикс". При создании бэкапа на сервер компании "1С-Битрикс" передается только хеш пароля пользователя, который позволяет проверить корректность пароля, но не дает возможности распаковать архив.

Компания "1С-Битрикс" не может восстановить или поменять пароль! Будьте внимательны, без знания этого пароля восстановить бэкап не удастся! Восстановить сайт из бекапа при утере пароля техподдержка "1С-Битрикс" также не может.

Список резервных копий привязывается к лицензионному ключу (для многосайтовой установки облачное хранилище будет общее). Если даже произошла "утечка" ключа в чужие руки, то невозможно переполнить хранилище этого ключа: записывать резервные копии можно только с оригинальной установки (допускается еще одна копия для разработки). Повторный ввод ключа блокирует запись бэкапа.

Если шифрование включено, то перед началом создания резервной копии появится окно для ввода пароля . Рекомендуем, чтобы пароль содержал не менее 6 знаков и использовал спецсимволы.

Примечание: для каждой резервной копии можно задать свой отдельный пароль.

После задания пароля продолжится создание резервной копии.

Резервную копию из облака "1С-Битрикс" можно только восстановить.

Из стороннего облачного хранилища архив можно скачать на локальный носитель. Помните, что место в стороннем облаке также ограничено вашим тарифным планом.


Регулярное резервное копирование
253 / 278

Видеоурок

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

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Регулярное резервное копирование

С версии 12.0 в Bitrix Framework возможно создание резервных копий в автоматическом режиме. Параметры автоматического резервного копирования задаются на странице Регулярное резервное копирование (Настройки > Инструменты > Резервное копирование > Регулярное резервное копирование).

Нажмите на рисунок, чтобы увеличить

Примечание: Детальное описание полей формы смотрите в документации.

Настройки автоматического бэкапа

На странице Регулярное резервное копирование можно:

  1. Включить или выключить регулярное копирование
  2. Указать, где размещать резервную копию - локально на сайте, либо в облаках: 1С-Битрикс или в стороннем облаке
  3. Задать расписание копирования
  4. Настроить порядок сохранения или удаления локальных копий
  5. Указать, какие части сайта исключать или включать в резервную копию (аналогично настройкам при ручном архивировании)
  6. Настроить режим архивации

    Примечание: при автоматическом создании резервной копии, в отличие от ручного создания, приходится хранить пароль пользователя в базе данных в зашифрованном виде. Для шифрования используется лицензионный ключ. То есть несанкционированный доступ к файлу архива возможен, если только злоумышленник получит полный доступ к вашему сайту. Даже если такое произойдёт, то удалить архив сайта с облака "1С-Битрикс" ему не удастся.

  7. Выбрать метод запуска резервного копирования. Доступен запуск:
    • через облачный сервис 1С-Битрикс
    • с агентами на cron. Нужно настроить выполнение агентов на cron, запуская каждую минуту /bitrix/modules/main/tools/cron_events.php. При этом автоматическое резервирование будет выключено.
    • через прямой запуск /bitrix/modules/main/tools/backup.php. Если по каким-то причинам на проекте не используются агенты , то необходимо настроить на определенное время запуск php скрипта /bitrix/modules/main/tools/backup.php через панель хостинга.

Как работает автоматическое резервное копирование в зависимости от метода запуска

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

    После запуска процесса на странице Настройки > Облако 1С-Битрикс > Расписание резервирования появится ваше расписание, уникальный идентификатор которого передаётся облачному сервису. При наступлении указанного времени создания резервной копии сервис откроет специальную страницу на вашем сайте и передаст ей требуемые параметры, чтобы создать бэкап. Доступ к административной части не требуется и административный раздел может быть закрыт по IP.

    После выполнения копирования, на странице Настройки > Облако 1С-Битрикс > Резервные копии появится список всех создаваемых копий. Эти же копии отобразятся на странице Настройки > Инструменты > Резервное копирование > Список резервных копий. С этой страницы возможно их восстановление.

    Примечание: так как резервное копирование делается на серверах в облаке, на странице Настройки > Облако 1С-Битрикс > Расписание резервирования время создания бэкапа указывается по UTC.

  • Скрипт /bitrix/modules/main/tools/cron_events.php выполняется на cron'е каждую минуту. Сначала он проверяет отправку почты и выполняет системные агенты. Затем, если наступило установленное в настройках время, создаётся резервная копия. Создание копии задано не через агент сознательно: чтобы отправка почты и выполнение агентов могли выполняться независимо от создания резервной копии.

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

    В случае ошибки в системный журнал заносится соответствующее уведомление. На странице Настройки > Инструменты > Резервное копирование > Журнал резервного копирования расположен фильтр системного журнала, настроенный на вывод только записей по резервным копиям:

    Нажмите на рисунок, чтобы увеличить

Документация по теме

  • Автоматическое резервное копирование в облако битрикс (блог)


Резервное копирование из командной строки
254 / 278

Возможно, вы предпочитаете использовать запуск из командной строки вместо штатных инструментов резервного копирования? Учтите, что перед выполнением бэкапа вам обязательно необходимо перейти в папку, где установлено «Битрикс: Веб-окружение», иначе не подключатся нужные модули php.

Пример для Windows

Если «Битрикс: Веб-окружение» размещено по пути c:\Bitrix\, то нужно перейти в папку:

cd c:\Bitrix\

И выполнить бэкап без БД:

"C:\Bitrix\apache2\zendserver\bin\php.exe" -c "C:\Bitrix\apache2\zendserver\etc\php.ini" -f "C:\Bitrix\www\bitrix\modules\main\tools\backup.php"


Восстановление сайта из резервной копии
255 / 278

Для восстановления сайта на странице Список резервных копий (Настройки > Инструменты > Резервное копирование > Список резервных копий) в меню действий выберите пункт Восстановить . Система запустит мастер восстановления из резервной копии.

  • Если архив был сохранен в облаке «1С-Битрикс», то будет предложено выбрать файл с архивом (необходимо ввести лицензионный ключ, если он не был введен ранее в системе) и пароль:

  • Если архив с резервной копией был сохранен локально, то после ввода пароля (если архив запаролен) начнется распаковка архива .
  • После завершения распаковки файлов необходимо будет указать настройки соединения с базой данных для восстановления сайта вместе с БД, или пропустить восстановление базы данных :

    Настройки подключения к MySQL по умолчанию берутся из /home/bitrix/www/bitrix/php_interface/dbconn.php.

    Можно указать собственные параметры подключения к MySQL - в этом случае необходимо еще выбрать опцию Создать базу данных, если не существует.

  • После успешного восстановления базы данных в целях безопасности необходимо Удалить локальную резервную копию и служебные скрипты, нажав на одноименную кнопку:

  • Восстановление завершено .

Примечание: О переносе сайта с одного сервера на другой можно прочитать в уроке Перенос продукта «1C-Битрикс» v.12.

Если вы не можете попасть в админку

Например, ваш сайт не отвечает или выдается сообщение

.

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

В этом случае в адресной строке браузера наберите http://ваш_сайт/restore.php. Если вы раньше не скачивали скрипт restore.php, то можете скачать свежую версию скрипта с сайта 1С-Битрикс.

После запуска скрипта запустится мастер восстановления.

Дальше действуйте, как описано в уроке о переносе продукта.

Примечание: Модули Маркетплейса привязываются к лицензионному ключу.

Поэтому если Вы приобрели и установили на сайт модуль Маркетплейса, а потом восстановили сайт из резервной копии, сделанной до установки модуля, то можете заново установить этот модуль (если только не закончился оплаченный период этого модуля).

Учтите, что некоторые модули используют базу данных сайта, поэтому лучше создавать резервную копию сайта сразу после установки нового модуля (чтобы не потерять данные).


Проверьте себя
256 / 278

Ответьте на несколько вопросов по теме Резервное копирование, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 При хранении в облаке 1С-Битрикс получить доступ к резервной копии без лицензионного ключа и пароля невозможно.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
2 При многосайтовости в работоспособном состоянии восстанавливаются все сайты.
Верно
Увы, вы ошиблись. Полностью восстановится только тот сайт, который был первым по сортировке в списке сайтов при создании резервной копии. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
3 Многосайтовость надо восстановить вручную. Только после этого остальные сайты будут работоспособны.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Размер частей архива резервной копии не ограничен системой.
Верно
Увы, вы ошиблись. Системные ограничения php не позволяют делать размер одной части архива более 2 Гб, а оптимальным значением является 100 Мб. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
5 В CMS "1С-Битрикс" есть три возможности хранения резервной копии: на локальном компьютере, в облаке 1С-Битрикс или в сторонних облачных хранилищах.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
6 В рамках файловой структуры сайта файлы копий хранятся в папке /bitrix/backup.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
7 В облаке "1С-Битрикс" доступно хранение только одного бэкапа на каждую активную лицензию.
Верно
Увы, вы ошиблись. В облаке "1С-Битрикс" может храниться три файла бэкапа на активную лицензию. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
8 Системой предусмотрена возможность настройки автоматического создания резервной копии.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.


Поиск
257 / 278

Модуль Поиск служит для индексирования и поиска информации на сайте. Модуль может искать как статическую, так и динамическую информацию. Таким образом, пользователи сайта могут искать информацию в любом каталоге товаров, новостях, сообщениях форума, социальной сети и в любом статическом разделе сайта.

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


Настройки модуля "Поиск"
258 / 278

Настройка модуля

Важные замечания:
  • При проведении поиска учитывается уровень прав пользователя, создавшего запрос.
  • Содержимое включаемых областей не индексируется поиском.
  • Слова, состоящие из одного символа, не индексируются поиском.
  • В системе нет полного соответствия морфологии русского языка. Например, не учитываются беглые гласные при склонении слова по падежам.
  • Возможно использование полнотекстового индекса Mysql, но это требует дополнительных действий разработчика .

Наладка на сайте поиска начинается с настройки параметров модуля. В административном разделе сайта откройте страницу Настройки > Настройки продукта > Настройки модулей > Поиск:

Нажмите на рисунок, чтобы увеличить

Закладки

Для удобства заполнения форма разбита на закладки:

  1. Индексация - настраивается ограничение поиска по целому ряду параметров. Например, по размеру файлов, типу файлов, папкам, которые не нужно индексировать.
    • Максимальный размер индексируемого документа в килобайтах - позволяет ограничить документы, участвующие в поиске, по их размеру. Пустое значение означает отсутствие ограничения.
    • Маска включения - позволяет задать маску, по которой будут выбираться документы, участвующие в поиске.
    • Маска исключения - определяется условие, на основе которого документы будут исключаться из индекса и поиска.
    • Код свойства страницы в котором хранятся теги - указывается код свойства страницы, в котором хранятся теги.

  2. Морфология - можно разрешить/запретить морфологический поиск на сайте и настроить его параметры.

    Морфологический поиск - возможность поисковой системы искать слово в документах во всех его морфологических формах.

    При морфологическом анализе модуль Поиск разбивает предложения на слова, используя стандартные символы-разделители (пробел, точка, запятая и т.п.). Однако, существуют символы, которые, не будучи буквами, все же являются частями слов (например, дефисы). Чтобы в подобных случаях разбивка слов не выполнялась, в поле Cимволы, по которым не производится разделение документа на слова укажите символы, которые морфологический анализатор должен рассматривать как части слов. По умолчанию там стоит дефис.

    При желании отложите выполнение морфологического анализа на агентов с помощью соответствующей опции.

    Морфологический поиск поддерживает работу со всеми языками, установленными в системе.

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

    • Bitrix
    • Sphinx (доступен с версии 14.0.0)

      Примечание: полнотекстовый поиск Sphinx можно подключить в том случае, если на сервере установлен и настроен Sphinx, кроме того, к нему можно подключиться из PHP.

      Ручная настройка поискового механизма Sphinx описана в данном уроке .

      При выборе системы Sphinx необходимо указать строку подключения к серверу Sphinx и задать произвольный идентификатор индекса.

      Начиная с версии 2.2.2 в Sphinx поддерживается только кодировка UTF-8. На сайтах с кодировкой Windows-1251 поиск Sphinx'ом работать не будет.

    • Полнотекстовый поиск MySql (доступен с версии 17.0.1)

  3. Поиск - задаются собственно параметры поиска:
    • Для некоторых проектов вполне допустимо и использование опции Использовать быстрый поиск (с ухудшенным ранжированием). В этом случае поиск по сайту будет работать быстрее, но ранжирование не будет оптимальным, то есть документы, максимально точно отвечающие запросам, не будут собираться в начале первой страницы, а будут выводиться по мере нахождения.

      Ранжирование (англ. ranking) – это процесс выстраивания найденных по запросу пользователя страниц в порядке наибольшего соответствия искомому запросу.
    • С помощью поля Максимальное количество документов в результатах поиска можно ограничить количество документов, которые будут показаны из всего результата поиска.
    • Опция При ранжировании результатов учитывать расстояние между словами позволяет в поисковой выдаче выводить выше те материалы, искомые слова в которых расположены ближе друг к другу в тексте.
    • Опция При ранжировании результатов учитывать рейтинг позволяет в поисковой выдаче выводить выше те материалы, за которые больше проголосовали.

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

    Статистика - это инструмент для сбора и анализа информации с целью дальнейшей корректировки контента сайта под типовые поисковые запросы.

Документация по теме

  • Поиск. Настройки модуля (пользовательская документация)


Настройки инфоблока для корректного поиска элементов
259 / 278

Настройки инфоблока для корректного поиска элементов

Посетители пользуются формой поиска на сайте, чтобы максимально быстро найти требуемую информацию. Но они не увидят подробную информацию по найденным элементам, если настройки инфоблока выполнены некорректно. Не огорчайте клиентов, настройте пути к страницам инфоблока правильно.

В форме редактирования инфоблока укажите правильные пути к просмотру элемента инфоблока и раздела (если используются):

Нажмите на рисунок, чтобы увеличить

То есть в параметрах:

  • URL страницы информационного блока,
  • URL страницы раздела,
  • URL страницы детального просмотра

задайте шаблоны путей, которые ведут на существующие на сайте страницы инфоблока.

Примечание: чтобы разделы и элементы инфоблока могли участвовать в поиске, в форме настройки инфоблока также следует отметить опции Индексировать разделы для модуля поиска и Индексировать элементы для модуля поиска.

Пример корректной настройки

Допустим, у нас есть новостной инфоблок. Опубликуем его правильно:

  1. Создайте на сайте раздел, скажем, /content/news и страницу /content/news/index.php.
  2. На странице разместите и настройте комплексный компонент bitrix:news.
  3. Проверьте, чтобы адреса страниц в компоненте и в инфоблоке совпадали (в примере для адресов используется поддержка ЧПУ):

    Нажмите на рисунок, чтобы увеличить

    4. Теперь найденные через поиск новости открываются правильно.

Заключение

После того, как вы опубликовали информацию из инфоблоков на сайте, проверьте правильность адресов страниц. Адреса страниц в настройках инфоблока должны совпадать с адресами в компоненте.


Компоненты Поиска
260 / 278

Чаще всего поиск на сайте организован с помощью компонентов Форма поиска и Стандартная страница поиска .

Примечание: подробно про компоненты поиска вы можете узнать на странице пользовательской документации.

Форма поиска

Форма поиска предназначена для ввода условия поиска (поисковой фразы или слов) и размещается в шаблоне сайта с помощью специального компонента Форма поиска .

Внешний вид и место размещения формы поиска зависят от шаблона и дизайна сайта:

Внешний вид формы поиска Внешний вид формы поиска Внешний вид формы поиска

После нажатия посетителем кнопки Поиск, система выполнит поиск информации и перенаправит посетителя на страницу поиска.

Страница поиска

Страница поиска содержит специальное поле для ввода условий поиска. Также на странице поиска выводятся непосредственно результаты поиска:

Страница поиска создается с помощью компонента Стандартная страница поиска. Данный компонент может быть размещен на любой странице сайта при ее создании или редактировании с помощью визуального HTML-редактора.

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

Параметры компонента позволяют необходимым для вас образом настроить не только внешний вид страницы поиска, но и условия поиска информации.

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

Примеры настройки компонента Стандартная страница поиска

  1. Чтобы поиск информации осуществлялся только на статических страницах сайта, нужно в группе свойств Источник данных в поле Ограничение области поиска выбрать Статические файлы и нажать кнопку OK:

    После выполнения данных действий в группе свойств Источник данных будет добавлено дополнительное поле Путь к файлу начинается с любого из перечисленных, позволяющее ограничить перечень каталогов и файлов сайта, в которых будет осуществляться поиск с помощью данного компонента. Например:

    Поле "Путь к файлу начинается с любого из перечисленных"

  2. Можно задать ограничения по поиску динамической информации. Например, на сайте есть страница Новости магазина, содержащая список новостей интернет-магазина (информационный блок Новости магазина, тип Новости). Предположим, необходимо, чтобы посетители могли осуществлять поиск информации среди новостей.

    Для решения поставленной задачи нужно выполнить следующие действия:

    • разместить на странице с новостями компонент Стандартная страница поиска;
    • настроить данный компонент следующим образом:

      в группе свойств Источник данных в поле Ограничение области поиска выбрать тип информационного блока и нажать кнопку OК:

      После этого в группе свойств будет добавлено дополнительное поле Искать в информационных блоках типа <тип_инфоблока>. В данном поле нужно указать информационный блок, элементы которого (в данном случае новости) выводятся на странице Новости магазина:


Ручная настройка поиска Sphinx
261 / 278

Внешний полнотекстовый поиск Sphinx позволяет сделать быстрым и качественным поиск на вашем сайте, снизить нагрузку на сервер. Он доступен в продуктах «1С-Битрикс» с версии 14.0.0 и полностью интегрирован с компонентами модуля Поиск.

Если по каким-либо причинам не используется эталонная среда Виртуальная машина VMBitrix версии 7.0 и выше, в которую уже включен Sphinx , то можно настроить его самим, следуя данным рекомендациям.

Внимание! Ограничение на версию Sphinx - не ниже 2.1.1.

Ручная настройка поиска Sphinx

  1. Установите пакет Sphinx в свою среду. Как это сделать описано в документации раздела Installation на официальном сайте.

    Например, пусть директория файлов настроек Sphinx по умолчанию будет /etc/sphinxsearch/.
  2. Настройте сам Sphinx. Делается это с помощью конфигурационного файла /etc/sphinxsearch/sphinx.conf.

    Код минимальной конфигурации
    #
# Minimal Sphinx configuration for Bitrix
#
searchd
{
    listen			= 9312
    listen			= 9306:mysql41
    log			= /var/log/sphinxsearch/searchd.log
    query_log		= /var/log/sphinxsearch/query.log
    read_timeout		= 5
    max_children		= 30
    pid_file		= /var/run/sphinxsearch/searchd.pid
    max_matches		= 1000
    seamless_rotate		= 1
    preopen_indexes		= 1
    unlink_old		= 1
    workers			= threads # for RT to work
    binlog_path		= /var/lib/sphinxsearch/data/
    binlog_max_log_size 	= 512M
    binlog_flush		= 2
    rt_flush_period		= 3600
}

indexer
{
    lemmatizer_cache	= 128M
    lemmatizer_base	= /etc/sphinxsearch/dicts/	# lemmatizer_base в Sphinx 2.2.1+ располагается в секции common
}

index bitrix
{
    #main settings
        type = rt
        path = /var/lib/sphinxsearch/data/bitrix
        docinfo = inline
    #choose appropriate type of morphology to use
        #morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru
        morphology = stem_enru, soundex
    #these settings are used by bitrix:search.title component
        dict = keywords
        prefix_fields = title
        infix_fields=
        min_prefix_len = 2
        enable_star = 1
    #all fields must be defined exactly as followed
        rt_field = title
        rt_field = body
        rt_attr_uint = module_id
        rt_attr_string = module
        rt_attr_uint = item_id
        rt_attr_string = item
        rt_attr_uint = param1_id
        rt_attr_string = param1
        rt_attr_uint = param2_id
        rt_attr_string = param2
        rt_attr_timestamp = date_change
        rt_attr_timestamp = date_to
        rt_attr_timestamp = date_from
        rt_attr_uint = custom_rank
        rt_attr_multi = tags
        rt_attr_multi = right
        rt_attr_multi = site
        rt_attr_multi = param
    #depends on settings of your site
        # uncomment for single byte character set
        charset_type = sbcs
        # uncomment for UTF character set
        #charset_type = utf-8
}

    Основные директивы, которые могут измениться в зависимости от настройки сервера и на которые следует обратить внимание:

    Секция searchd:
    • listen - указывается ip-адрес, порт, путь Unix-domain socket или протокол, которые прослушивает поисковый демон (в данном случае порты: 9312, 9306 с протоколом MySQL);
    • log - имя log-файла работы Sphinx-a и его расположение;
    • query_log - имя log-файла поисковых запросов Sphinx-a и его расположение;
    • binlog_path - путь, где хранятся бинарные логи (важный параметр, если указать директорию, на запись в которую нет прав, то поисковый демон не запустится);
    • binlog_max_log_size - максимальный объем файла бинарного лога, после которого будет создан новый файл.

    Секция indexer:
    • lemmatizer_cache - максимальный объем кэша словарей морфологического поиска;
    • lemmatizer_base - директория хранения языковых словарей (ru.pak, en.pak, de.pak) для морфологического поиска, которые нужно предварительно скачать и поместить в данную директорию.

      Внимание! Директива lemmatizer_base c версии Sphinx 2.2.1+ располагается в секции common:
      common
    {
          lemmatizer_base = /etc/sphinxsearch/dicts/
    }

    Секция index bitrix:
    • path - путь и название файлов индекса;
    • charset_type - указывается кодировка сайта:
      • для кодировки UTF - utf-8;
      • для остальных - sbcs.
  3. Cделайте рестарт Sphinx-a.
  4. Откройте страницу Настройки модуля Поиск (Настройки > Настройки продукта > Настройки модулей > Поиск) и выполните настройки для подключения Sphinx-а в качестве поискового механизма :
    • Полнотекстовый поиск с помощью - выберите Sphinx;
    • Строка подключения для управления индексом (протокол MySql) - укажите ip-адрес и порт подключения для индексации через протокол MySQL;
    • Идентификатор индекса - укажите имя индекса (например, bitrix);
    • Также на этой странице для справки указан пример конфигурационного файла для индекса Sphinx-a в продуктах 1С-Битрикс.
  5. Выполните Переиндексацию сайта в административной части с помощью одноименной кнопки - о чем сообщит мастер настройки .

    Важно! Если в продукте «1С-Битрикс» установлен модуль Cоциальной сети, то после индексации модулем поиска, требуется переиндексация социальной сети из компонента, размещенного в публичном разделе. Для этого нужно перейти в режим разработки в любой раздел социальной сети (где установлены компоненты socialnetwork, socialnetwork_group, socialnetwork_user) и нажать на кнопку Индексация в панели инструментов:

На этом минимальная настройка Sphinx в качестве поискового механизма для продуктов «1C-Битрикс» завершена.

Примечание: Информацию для более тонкой настройки поискового механизма Sphinx можно найти в официальной документации этого продукта.


Индексация
262 / 278

Индексирование

Индексирование – процесс сбора, классификации и сохранения данных с целью облегчить быстрый и точный поиск информации.

Поиск информации на сайте выполняется на основе поискового индекса (индексных таблиц). В индексе участвуют:

  • статические файлы;
  • форумы;
  • блоги;
  • информационные блоки;
  • учебные курсы;
  • социальная сеть.

Автоматическая и ручная индексация

  • Вся текстовая информация, которая попадает на сайт в виде статических HTML страниц или через интерфейс модулей (например, модуль Информационные блоки, модуль Форум и т.д.) индексируется автоматически.

    Важно!

    В индексе, а, следовательно, и в поиске участвуют только те статические файлы, для которых задан заголовок ($APPLICATION -> SetTitle();) или есть метатег TITLE.

    В индексе, а, следовательно, и в поиске участвуют только те информационные блоки, для которых в настройках указано соответствующее разрешение. Разрешение можно задать по разделам и по элементам.
  • Во всех случаях, когда происходит добавление информации не штатными средствами (минуя интерфейс системы), либо информация изменена без изменения даты, требуется ручная переиндексация. Например, после загрузки файлов по FTP понадобится ручная переиндексация сайта.
  • Инфоблоки переиндексируются автоматически при внесении элементов или разделов, а также при их последующем редактировании. Важно то, что настройки инфоблока и настройки соответствующего компонента должны обязательно совпадать, иначе поиск будет выдавать неправильные URL найденных страниц.
  • При работе с учебными курсами (т.е. при добавлении и редактировании курсов, глав, уроков или импорте курсов) всегда требуется ручная переиндексация.
  • Изменения адресов в настройках компонентов при использовании инфоблоков фиксируются также автоматически. А вот изменения адресов форумов, блогов требуют ручной переиндексации.

Как обновить поисковый индекс?

Обновление индексных таблиц выполняется на странице Переиндексация сайта (Настройки > Поиск > Переиндексация):

  • Так как на сайте может быть представлен значительный объем информации, процедура переиндексации может занять довольно продолжительное время. Чтобы сократить затраты времени, можно выполнить переиндексацию только измененных файлов (опция Переиндексировать только измененные), либо выбрать сайт и/или модуль, данные которых будут участвовать в переиндексации (поля Сайт и Модуль).

    Примечание:

    в некоторых случаях есть смысл не использовать функцию Переиндексировать только измененные, а прибегнуть к радикальному методу: удаление и восстановление модуля Поиск. Определенные операции по обновлению данных могут выполняться дольше, чем создание нового индекса. В частности это касается случаев использования таблиц InnoDB и большой базы данных.

    Например, вы создали большое число элементов инфоблока (скажем, 50 000). Во время этой работы в свойствах инфоблока не были включены опции Индексировать разделы (элементы) с целью снижения нагрузки на сайт. Затем вы активируете эти опции. Автоматически этот инфоблок в поиск не попадет, нужна ручная индексация. Вот в таком случае и лучше использовать прием удаления модуля Поиск из системы (с удалением файлов поискового индекса) и восстановление его обратно.

  • Индексирование производится поэтапно, продолжительность выполнения одного шага задается в поле Шаг.

    Чем больше время – тем лучше (при незаполненном поле переиндексация выполняется в один шаг, что и рекомендуется делать на локальной установке при разработке проекта). Но на время выполнения операции индексирования на удаленном сервере накладывает ограничения хостинг. Установку времени выполнения шага рекомендуется назначать не больше, чем время выполнения скрипта, задаваемое хостинговой кампанией. В большинстве случаев подходит значение параметров в 50 секунд на один шаг.

  • В процессе индексации можно также удалить все фразы, которые будут отображаться в подсказке при наборе слова в поле поиска. Для этого служит опция Удалить поисковые фразы для подсказки.
Внимание! Несмотря на то, что в показанной выше форме в выпадающем списке поля Модуль есть Социальная сеть переиндексация этого модуля производится отдельно и только из публичного раздела.

Для этого:

  • Перейдите в разделы социальной сети (где установлены компоненты Социальная сеть (socialnetwork), Социальная сеть – группы (socialnetwork_group), Социальная сеть – пользователь (socialnetwork_user))
  • Нажмите кнопку Индексация на панели управления (Режим правки должен быть включен):

Документация по теме:

  • Поиск > Переиндексация


Правила сортировки
263 / 278

Как происходит поиск?

Пользователь вводит поисковый запрос и после нажатия кнопки Поиск система отбирает из поискового индекса страницы, соответствующие запросу. Перед показом пользователю результаты поиска сортируются по следующим параметрам:

  • по релевантности - степень релевантности документа поисковому запросу определяется исходя из наличия на странице слов, участвующих в поиске, и их удаленности друг от друга;
  • по дате изменения (последнего обновления) страницы.

Пользователь сам выбирает режим сортировки на странице с результатами поиска с помощью ссылок в конце списка найденных документов: Сортировать по релевантности или Сортировать по дате .

Вместе с тем, очень часто требуется при выводе результатов поиска отдать предпочтение документам той или иной тематики. Например, может потребоваться «поднять» в результатах поиска товары, которые требуют скорейшего сбыта. Такие цели достигаются с помощью специального механизма: желаемым страницам задается требуемый вес (ранг, page rank). При отображении результатов поиска, страницы, соответствующие заданным правилам сортировки, будут отображены в самом начале списка, в соответствии с весами, указанными в правилах.

Фиксированный вес

Фиксированный вес может быть присвоен:

  • статическим файлам (требует указания полного пути к таким файлам);
  • информационным блокам (дополнительно могут быть указаны тип информационных блоков, информационный блок и элемент, которым следует отдать предпочтение);
  • форумам (могут быть указаны форум, тема выбранного форума и сообщение).
  • блогам (должен быть указан ID блога).
  • обучению (могут быть указаны ID курса или главы/урока, причем перед идентификатором для курса приписывается C, а для глав/урока - U (например, C5 или U278)).
  • социальной сети (могут быть указаны ID группы или ID пользователя).

Управление сортировкой

Управление правилами сортировки осуществляется на странице Список правил сортировки (Настройки > Поиск > Правила сортировки):

Назначение или изменение правил сортировки делится на два этапа:

  • Первый этап: управление правилами сортировки - создание, правка или удаление правил.

    В форме создания/редактирования правила выберите модуль, для элемента которого будет настроено правило сортировки.

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

    Примечание: при заполнении полей параметров можно остановиться на любом уровне. Например, можно при настройке правил для информационного блока указать только тип и сам инфоблок. Или даже на типе инфоблока.

    Кроме того, укажите вес (ранг) правила. Документы, соответствующие критериям правила, будут расположены в списке результатов поиска в соответствии с рангом сортировки. Чем больше значение веса, тем выше в списке будет отображен документ.
  • Второй этап: обновление поискового индекса для вступления новых правил в силу.

    Обновление поискового индекса выполняется по кнопке Обновить . По окончании процедуры обновления индекса будет выведено сообщение о ее результатах.

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

Документация по теме

  • Создание и редактирование правила сортировки результатов поиска
  • Правила сортировки результатов поиска


Морфологический поиск
264 / 278

Учитывать формы слов

Модуль Поиск позволяет осуществлять морфологический поиск на сайте. В этом случае при создании индекса (и, соответственно, при поиске) учитываются все формы индексируемых слов. Морфологический поиск поддерживает работу со всеми языками, установленными в системе.

Например, при индексации слова телефон, база данных индекса будет учитывать различие в падежных окончаниях (телефона, телефону и т.д.), а также его множественное число (телефоны, телефонов, телефонам и т.д.).

Соответственно, при поиске по запросу телефон будут найдены страницы, содержащие не только слово телефон, но и слова телефона, телефону, телефоны, телефонов, телефонам и т.д.

Внимание!: в системе нет полного соответствия морфологии русского языка. Например, не учитываются беглые гласные при склонении слова по падежам. Если в каталоге есть товары: Ремень Радуга, Ремень Элегантность, Ремень Плетение, то при вводе запроса "Ремень" они находятся. Но другие формы этого слова, например "Ремни", "Ремней", "Ремня", уже не находят товар, так как поисковое ядро считает корнем "Ремен" и будет искать "ремени", а не "ремни".

Настройка морфологического поиска

Активизация морфологического поиска выполняется путем установки флага в настройках модуля Поиск (Настройки > Настройки продукта > Настройки модулей > Поиск) и выбора поисковой системы: Bitrix, Sphinx (доступен с версии 14.0.0) или Полнотекстовый поиск MySql (доступен с версии 17.0.1):

Примечание: полнотекстовый поиск Sphinx можно подключить в том случае, если на сервере установлен и настроен Sphinx, кроме того, к нему можно подключиться из PHP.

Ручная настройка поискового механизма Sphinx описана в данном уроке.

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

Если вам подходит обычный поиск (Bitrix), то в настройках параметров морфологии вам будет доступен параметр Cимволы, по которым не производится разделение документа на слова (при морфологическом анализе) .

Алгоритм морфологического анализа разбивает предложения на слова, используя в качестве разделителя все знаки, не являющиеся буквами алфавита (пробел, точка, запятая и т.п.). В то же время, существуют символы, которые, не будучи буквами, все же являются частями слов (например, дефис в слове: южно-африканский). Поэтому с помощью данного параметра вы можете указать символы, которые морфологический анализатор должен рассматривать как части слов.

Важно! После выбора системы полнотекстового поиска и сохранения настроек не забудьте выполнить полную переиндексацию сайта.

Примечание: рекомендуется не отключать морфологический поиск.

Документация по теме

  • Пользовательская документация по модулю "Поиск"


Статистика
265 / 278

Не знаете, что ищут чаще всего посетители на вашем сайте? Обратите свой взор в административной части сайта на раздел Настройки > Поиск > Статистика. В нем собрана вся поисковая статистика.

Виды поисковой статистики

Статистику можно рассматривать в 3 разрезах:

Нажмите на рисунок, чтобы увеличить

  • Статистика переходов - развернутый отчет о поисковых фразах, времени ввода, места перехода, количества найденных документов и т.д.;
  • Список фраз - позволяет просмотреть список поисковых фраз, используемых людьми на сайте;
  • Список тегов - перечень установленных тегов сайта.

Документация по теме:

  • Список переходов
  • Список фраз
  • Список тегов


Логические операторы
266 / 278

Облегчайте поиск информации вместе с логическими операторами. Система допускает использование пяти видов логических операторов. Давайте их рассмотрим.

Операторы языка запросов

Оператор | Синонимы | Описание
и | And, &, + | Оператор логическое и. Подразумевается, что его можно опускать: запрос свежая рыба полностью эквивалентен запросу свежая и рыба.
или | Or, > | Оператор логическое или позволяет искать элементы, содержащие хотя бы один из операндов.
не | Not, ~ | Оператор логическое не ограничивает поиск элементами, не содержащими слово, указанное после оператора.
( ) |  | Круглые скобки задают порядок действия логических операторов. При формировании строки запроса убедитесь, что для каждой открывающейся скобки есть парная закрывающаяся.
"" |  | Поиск точной фразы. Обычно используется для поиска цитат.

Примеры использования логических операторов

  • свежая рыба или пылесос
    По такому запросу находится информация, в которой встречаются либо слова "свежая" и "рыба", либо слово "пылесос".
  • свежая рыба не скумбрия
    По такому запросу находится информация, в которой встречаются слова "свежая" и "рыба" и не встречается слово "скумбрия".
  • свежая рыба не (селедка или ставрида)
    По такому запросу система найдет все страницы сайта, где упоминается "свежая рыба" любых сортов, кроме "селедки" или "ставриды".

Дополнительно

  • Сложная логика в фильтре в документации для разработчиков.


Облако тегов
267 / 278

Индексирование по тегам

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

Достаточно часто бывает очень удобно использовать поочередно оба поисковых механизма. Например, сначала отобрать страницы по нужному тегу, а потом вести поиск с помощью поискового индекса, в отобранных по тегам результатах.

Теги - это темы информационного сообщения. Под информационным сообщением понимается многое: элемент инфоблока, сообщение в форуме или блоге, теги фотографий и так далее.

На данный момент ввод тегов возможен в статических страницах, элементах информационных блоков, в блогах и форумах. Формат ввода тегов: через запятую и пробел.

Добавление тегов к материалам сайта

В качестве примера укажем теги для элемента инфоблока. Для этого перейдите на закладку Дополнительно формы редактирования параметров элемента инфоблока:

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

Кроме того, имеется возможность создавать теги из публичной части сайта. Например, при создании новой темы на форуме.

Таким образом, за счет расширения функционала модуля поиска, реализован полноценный механизм индексации материалов сайта по тегам.

Как разместить облако тегов на сайте?

Облако тегов - это визуальное представление списка ярлыков (или категорий). Частота упоминаний, ссылок в Интернете с определенного сайта, терминов, имен отображается на специальной странице в виде изображения этих слов в формате гиперссылок. Размер тега тем больше, чем выше релевантность данного слова (термина, имени), т.е. чем больше размер, тем больше документов на сайте связано этим тегом. Цвет тега говорит о том, как давно этот тег был использован в документах последний раз.

Для реализации механизма поиска по тегам в модуле Поиск имеются компоненты: Облако тегов , Форма ввода тегов и Стандартная страница поиска (для компонента добавлен шаблон tags с поддержкой облака тегов).

Рассмотрим на примере, как разместить облако тегов на сайте

  • Создайте новую страницу и разместите компонент Облако тегов .
  • Выполните настройки компонента и сохраните страницу.

Для просмотра результата перейдите в публичный раздел:

Примечание: предварительно должны быть настроены теги к материалам сайта, в противном случае страница будет пустой.

Воспользуйтесь какой-нибудь ссылкой, например, компонент. По ссылке откроется страница поиска , для создания которой использовался компонент Стандартная страница поиска с шаблоном tags.

На этой странице облако тегов перестраивается, выводятся только те теги, которые соответствуют результатам поиска по первому тегу. Если вы используете строку поиска, то это также приводит к перестроению облака на основании результатов.


Google Sitemap
268 / 278

Инструмент Google Sitemap

Google Sitemap - простой инструмент управления доставкой информации о страницах сайта в базу данных поисковой системы Google.

Примечание: данный инструмент устарел в рамках модуля Поиск. Ему на смену пришел модуль Поисковая оптимизация

Инструмент Google Sitemap оставлен в системе для совместимости и на случай отсутствия установленного модуля Поисковая оптимизация.

Применение Google Sitemap особенно важно для динамических сайтов, страницы которых генерируются автоматически, поскольку это гарантирует наличие информации обо всех страницах сайта в базе данных Google. В файл попадает только контент с правами на чтение для всех пользователей.

Инструмент Google Sitemap позволяет получить гарантию того, что:

  • поисковая система Google проиндексирует все имеющиеся в этом файле страницы вашего сайта
  • Google будет регулярно сканировать этот файл на наличие новых страниц для индексации.

В результате:

  • Уменьшение нагрузки на сайт за счет более быстрого нахождения и добавления страниц сайта в индекс Google и более быстрого нахождения Google’ом изменившихся страниц.
  • Более быстрое попадание сайта в результаты поисковой выдачи Google.
  • Более полное индексирование сайта поисковой системой. Часто определенное количество страниц сайта не индексируется, хотя ссылки, ведущие на них, корректно распознаются поисковыми роботами. Причина – расположение ссылок на эти страницы в глубине сайта, т.е. поисковый робот просто не доходит до них и, соответственно, не находит эти страницы.

Примечание: использование Google Sitemap не дает преимущества при ранжировании в этой поисковой системе. Кроме того, формат Google Sitemap поддерживается многими поисковыми системами, в частности, Yandex’ом.

Создание Google Sitemap

Файлы Google Sitemap по своей сути являются XML-файлами, однако создание их вручную крайне трудоемко и требует много времени. Быстро создать карту и передать ее Google помогает форма Создание Google Sitemap (Настройки > Поиск > Google Sitemap):

Внимание! При создании файлов Google Sitemap все файлы вида sitemap_*.xml, расположенные в корневой папке выбранного сайта, будут перезаписаны.

Параметры формы интуитивно понятны. Обратим внимание лишь на следующие:

  • Максимальное количество документов для обработки на одном шаге - чтобы нагрузка на сервер не была велика, укажите максимальное количество документов для обработки на одном шаге.
  • Включать в Google Sitemap только темы форумов, но не сообщения - если отметить, то при создании в карту будут писаться только первые сообщения темы форума с датой модификации, равной последнему добавленному в тему сообщению.

Примечание: для правильного формирования sitemap.xml в настройках модуля Поиск необходимо указать, какие файлы не должны индексироваться: поле Маска исключения .

После генерации файл индекса для Google Sitemap будет доступен для скачивания на локальный компьютер. Адреса файлов в сообщении выведены в виде гиперссылок. То есть, файлы можно открыть в другой закладке браузера, не загружая файлы на локальный компьютер.

Обратите внимание

Инструмент при создании файла не использует все возможности Google Sitemap. В частности не используются теги changefreq и priority. После создания файла Google Sitemap вы можете открыть его для редактирования и вручную добавить указанные теги с параметрами.

  • Тег Change frequency – говорит о том, как часто обновляется веб-страница. Возможные значения: never, weekly, daily, hourly, monthly, yearly.
  • Тег Рriority – устанавливает приоритет, который Google назначит для конкретной веб-страницы в ранжировании страниц вашего сайта. Возможные значения: 0.0 (низший приоритет), 1.0 (высший приоритет), 0.5 (средний приоритет).

Документация по теме

  • Google Sitemap


Полезные советы
269 / 278

Знаете ли вы, что эффективность полнотекстового поиска можно значительно увеличить, если исключить из индекса слова встречающиеся очень часто? Например, если в каждом сообщении на форуме встречается слово "привет", то поиск по этому слову выдаст все сообщения, что не может удовлетворить инициатора такого запроса. Такие слова называются "СТОП" словами.

Практика показывает, что при использовании списка стоп-слов размер индекса уменьшается примерно на 10-15%, а возможный прирост скорости поиска бывает в десятки раз (20-50).

Задача по увеличению эффективности полнотекстового поиска решается в 3 этапа.

Этап 1. Определение наиболее "популярных" слов

Чтобы определить стоп-слова, выполните следующее:

  • Перейдите на страницу SQL запрос (Настройки > Инструменты > SQL запрос).
  • Выполните запрос:
    select ss.STEM,count(*) from b_search_content_stem cs inner join b_search_stem ss on ss.ID = cs.STEM group by STEM order by count(*) desc limit 100

    Примечание: до 11-й версии модуля необходимо использовать другой запрос:
    select STEM,count(*) from b_search_content_stem group by STEM order by count(*) desc limit 100

    В результате на странице будут отражены 100 самых популярных терминов на сайте.

    Внимание! Этот запрос может быть очень "тяжелым". Не торопитесь и выполните его во время наименьшей нагрузки на сайт. А если вдруг есть актуальная резервная копия на тестовом сайте, то лучше выполнить запрос на ней.

Есть и немного другой вариант получения списка стоп-слов:

  • Создайте страницу со следующим содержимым:
    <?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$query = $DB->Query("select ss.STEM,count(*) from b_search_content_stem cs inner join b_search_stem ss on ss.ID = cs.STEM group by STEM order by count(*) desc limit 100");
while($ar = $query->Fetch())
   echo " ,",$ar["STEM"];
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

    Так, вы быстро скопируете список самых популярных слов.

    Внимание: Обязательно удалите эту страницу после ее выполнения!

Этап 2. Исключение слов из полнотекстового индекса

Для исключения слов из полнотекстового индекса и поисковых запросов добавьте в init.php через запятую слова, которые необходимо исключить:

define("STEMMING_STOP_RU", "ЗДЕСЬ, СПИСОК, СТОП, СЛОВ");
Примечание: Система поддерживает стемминг 2-х языков: русского и английского. Для первого обрабатывается константа STEMMING_STOP_RU, для второго - STEMMING_STOP_EN.

Этап 3. Переиндексация

После внесенных изменений выполните полную переиндексацию для обновления поискового индекса. Используйте форму Переиндексация сайта (Настройки > Поиск > Переиндексация).

Примечание: подробнее про индексацию читайте в уроке Индексация.

Обратите внимание:

  • Наиболее эффективным будет удаление/установка модуля поиска без сохранения таблиц.
  • Начиная с версии форума 5.9.3, у модуля появилась настройка, значительно ускоряющая переиндексацию - Количество документов, переиндексируемых за шаг. Разумное значение 2-3 тысячи.
  • По окончании переиндексации обязательно выполните оптимизацию БД на странице Проверка/восстановление таблиц (Настройки > Инструменты > Диагностика > Оптимизация БД).


Поиск элементов инфоблока по их свойствам
270 / 278

Знаете ли вы, что поиск элементов инфоблока можно выполнять не только по названию, но и по значениям их свойств? Такой поиск будет работать у вас на сайте, если в свойствах отмечена всего лишь специальная галочка. Давайте вместе разберем данную настройку.

Настройка поиска элементов по значениям их свойств

  • Откройте форму с настройками требуемого инфоблока (Контент > Инфоблоки > Типы инфоблоков > [ваш_инфоблок]) и перейдите на закладку Свойства.
  • Нажмите кнопку [...] напротив интересующего свойства.
  • В открывшейся форме отметьте опцию Значения свойства участвуют в поиске .
  • Сохраните внесенные данные.
  • Выполните полную переиндексацию инфоблока.

Теперь поиск элементов инфоблока будет осуществляться и по названиям, и по значениям свойств.

Документация по теме:

  • Создание и редактирование свойств инфоблока
  • Переиндексация


Типичные ошибки
271 / 278

В уроке рассмотрим решение ошибок поискового характера:

  • Поиск выдаёт ссылки на несуществующие страницы
  • "Зависает" переиндексация статических файлов
    •

    Поиск выдаёт ссылки на несуществующие страницы (404 - HTTP not found)

    • Ошибки поиска элементов инфоблока связаны с неправильно указанным URL'ом страницы детального просмотра элемента . Этот URL используется при формировании страницы результатов поиска. Соответственно, если он проставлен неправильно или указывает на несуществующую страницу, то пользователь по ссылке попадет не на страницу просмотра найденного элемента, а на 404-ю.

      Кроме того, похожая ситуация возникает, если компонент работает в режиме ЧПУ, а URL в настройках инфоблока прописан не в ЧПУ. В данной ситуации следует указать URL по правилам ЧПУ.

      Примечание: чтобы разделы и элементы инфоблока могли участвовать в поиске, в форме настройки инфоблока также следует отметить опции Индексировать разделы для модуля поиска и Индексировать элементы для модуля поиска. Подробнее читайте в уроке Настройки инфоблока для корректного поиска элементов.
    • Проблема может возникать со ссылками на страницы форума и блога. Проверьте корректность шаблонов путей к сообщениям форума, блога.

    Внимание! После изменения путей обязательно выполните переиндексацию сайта.

    "Зависает" переиндексация статических файлов

    Проблема: информационные блоки индексируются нормально, а статические файлы - нет. Переиндексация зависает и изменение шага индексации на странице Настройки > Поиск > Переиндексация не помогает.

    Решение: причиной является большой файл на сайте, который не успевает проиндексироваться за шаг. В настройках модуля Поиска установите ограничение на размер в поле Максимальный размер индексируемого документа в килобайтах.


Проверьте себя
272 / 278

Ответьте на несколько вопросов по теме Поиск, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Модуль Поиск может искать только статическую информацию.
Верно
Увы, вы ошиблись. Модуль может искать как статическую, так и динамическую информацию. Советуем почитать главу ещё раз.
Неверно
Аплодисменты, вы ответили правильно! Модуль может искать как статическую, так и динамическую информацию.
2 Настройки индексации модуля Поиск позволяют ограничить поиск по ряду параметров, в том числе и по максимальному размеру документа.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
3 Морфологический поиск поддерживает работу со всеми языками, установленными в системе.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Для корректного поиска элементов достаточно, чтобы адреса страниц в настройках инфоблока содержали адреса, указанные в настройках компонента.
Верно
Увы, вы ошиблись. Адреса страниц в настройках инфоблока должны совпадать с адресами в компоненте, а не содержать их. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно! Адреса страниц в настройках инфоблока должны совпадать с адресами в компоненте, а не содержать их.
5 Поиск на сайте можно организовать с помощью компонентов (например, Форма поиска и Стандартная страница поиска ).
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
6 При выводе результатов поиска можно настроить приоритетный показ желаемых страниц (например, "поднять" в результатах поиска товары, которые требуют скорейшего сбыта).
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Такие цели достигаются с помощью специального механизма: желаемым страницам задается требуемый вес (ранг, page rank). Советуем почитать тему ещё раз.
7 Можно узнать, что чаще всего ищут посетители сайта. Для этого есть специальная страница Статистика.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
8 Ввод тегов возможен только в блогах и на форумах.
Верно
Увы, вы ошиблись. На данный момент ввод тегов возможен в статических страницах, элементах информационных блоков, в блогах и форумах. Формат ввода тегов: через запятую и пробел. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
9 Поиск элементов инфоблока можно выполнять только по названию этих элементов.
Верно
Увы, вы ошиблись. Поиск элементов инфоблока можно выполнять не только по названию, но и по значениям их свойств, если в свойствах отмечена всего лишь специальная галочка. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!


Практические задания
273 / 278

После изучения главы рекомендуем выполнить несколько практических заданий. Их можно выполнять на:

  1. тестовой лаборатории, предоставленной компанией 1С-Битрикс
    2. либо
  2. на установленной на локальный компьютер пробной версии 1С-Битрикс: Управление сайтом

Первый вариант проще: Виртуальная лаборатория предполагает установку системы в упрощённом, в отличие от локальной версии 1С-Битрикс: Управление сайтом, варианте. При такой установке для получения идентичного изображения у пользователя и на скриншотах заданий выберите на шаге Решение для установки: Интернет-магазин . На остальных шагах менять установки по умолчанию не нужно.

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

Примечания:
  1. Настоятельно рекомендуем НЕ выполнять задания на работающем, "боевом" сайте.
  2. Если вы всё же пытаетесь выполнять задания на работающем сайте, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

  1. Для инфоблока Одежда (тип инфоблока Каталоги) измените URL страницы раздела и URL страницы детального просмотра таким образом, чтобы:
    • в этих URL выводился полный путь из символьных кодов раздела (используйте макрос #SECTION_CODE_PATH#);
    • найденные через поиск товары выводились корректно (с полным путём из символьных кодов раздела).

    Решение
    Задание составлено по материалам уроков:
    • Настройки инфоблока для корректного поиска элементов
    • Типичные ошибки

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  2. Допустим, на Вашем сайте произошли изменения в описании множества товаров. Проведите переиндексацию для таких товаров.

    Решение
    Задание составлено по материалам уроков:
    • Индексация

    Результат:

    Обновить поисковые индексы можно на странице Переиндексация сайта (Настройки > Поиск > Переиндексация):

    Нажмите на рисунок, чтобы увеличить

    • Переиндексировать только измененные – отмечаем опцию (согласно условиям задания);
    • Шаг – так как мы работаем на локальной установке, то не заполняем это поле (тогда переиндексация выполнится за один шаг);
    • Сайт – указываем текущий сайт (сайт Интернет-магазина);
    • Модуль – выбираем Инфоблоки, потому что товары магазина - это элементы инфоблока Каталог;
    • Удалить поисковые фразы для подсказки – отметим опцию, так как по условиям задания у товаров было изменено описание, и старые поисковые фразы могут быть уже не актуальны.

  3. На странице новостей разместите форму поиска согласно следующим условиям:
    • результаты поиска должны выводиться на новой странице /search/results.php
    • поиск должен осуществляться только по элементам инфоблока Новости

    Примечание: в системе по умолчанию уже есть настроенная страница вывода результатов поиска /search/index.php, но в рамках практического занятия её использовать нельзя.

    Решение
    Задание составлено по материалам уроков:
    • Компоненты Поиска

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

  4. Сделайте так, чтобы при поиске новостей приоритет отдавался новости "Международная выставка одежды Salon De Fashion".

    Решение
    Задание составлено по материалам уроков:
    • Правила сортировки

    Результат:

    Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».


Требования законодательства РФ
274 / 278

С расширением государственного регулирования Интернета в продукты компании 1С-Битрикс добавляется функционал, обеспечивающий требования законодательства.

Требования законодательства РФ:

  • Защита персональных данных (ФЗ-152)
  • ККМ в интернет-магазинах (ФЗ-54)
  • Маркировка товаров (487-ФЗ)


Защита персональных данных
275 / 278

Согласно закону ФЗ-152 пользователь должен дать согласие/несогласие на обработку своих персональных данных. На сайте обязательно должна быть страница с текстом соглашения об обработке персональных данных. А на странице обязательно должен быть специальный адрес для обращений пользователей.

Реализация этого требования закона удобно и просто осуществлена в компонентах и на странице Соглашения Административной части системы "1С-Битрикс: Управление сайтом".


Согласие на обработку персональных данных
276 / 278

Выполнение требований закона ФЗ-152 реализуется штатными средствами системы. Для этого достаточно создать соглашение с нужным текстом или ссылкой, и настроить компоненты.

Поставьте "галочку", если вы согласны...(видеоурок)

На видео показана работа соглашения на примере компонента Форма оформления заказа.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Страница Соглашения

На странице Соглашения (Настройки > Настройки продукта > Соглашения) выводятся все созданные и используемые соглашения. С неё же можно перейти к списку полученных соглашений от пользователей.

Нажмите на рисунок, чтобы увеличить

Создание соглашения

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

Создание соглашение - несложный процесс. Несколько особенностей:

  • Если нужен нестандартный текст соглашения - используйте тип Собственное.
    Примечание: С версии 20.0.1150 Главного модуля (main) в соглашениях типа Собственное добавлена поддержка ссылок на текст соглашения при запросе согласия.
    Как создать ссылку на текст соглашения
    Указание ссылки на текст соглашения пригодится, когда текст соглашения размещен на странице сайта или в виде файла.

    1. Выберем тип соглашения - Собственное;
    2. Поле Текст согласия оставим пустым;
    3. В поле Подпись галки согласия укажем текст. Ту часть текста, что будет являться ссылкой, заключим в знаки процента: %текст%. Если этого не сделать, то весь текст подсветится как ссылка;
    4. Обязательно установим опцию При клике на ссылку открывать стороннюю ссылку или файл, после которой укажем непосредственно ссылку на нужную страницу/файл.

    Посмотрим заполнение на примере:

    Выбрав наше соглашение в компоненте Оформление заказа, увидим такой результат:

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

Просмотр списка согласий

Для каждого соглашения можно просмотреть список согласий пользователей .

Нажмите на рисунок, чтобы увеличить

Список согласий не допускает удаления согласия. Фильтр поможет найти нужное согласие в общем списке

Получение согласия пользователя

Для получения согласия пользователя в компоненте включите опцию Запрашивать согласие (на примере sale.order.ajax):

Нажмите на рисунок, чтобы увеличить

Документация по теме

  • Соглашения и список согласий
  • Создание соглашения


Согласие в собственных компонентах
277 / 278

Как добавить согласие в собственные компоненты

Включение поддержки соглашений в собственных компонентах рассмотрим на примере компонента подписки на рассылку sender.subscribe .

Добавление секции в настройки компонента

В файле параметров вашего компонента .parameters.php достаточно объявить параметр "USER_CONSENT" => array():

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentParameters = array(
    "GROUPS" => array(
    ),
    "PARAMETERS" => array(
     "AJAX_MODE" => array(),
     "USER_CONSENT" => array(),
    )
);

и в настройках компонента появится секция Согласие пользователя .

Вывод в форме

Для вывода используется компонент main.userconsent.request . Компонент умеет сохранять полученное согласие. Он выводит чекбокс с подписью, по нажатию на которую выводится окно с текстом соглашения. Окно с текстом адаптивное и уже сделано и под мобильные устройства:

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

Простая форма с событием submit (стандартная get/post отправка формы с событием submit).

В этом случае подключаем компонент перед кнопкой отправки формы:

<form method="POST">
    <input name="EMAIL" placeholder="Email">
    <input name="PHONE" placeholder="Телефон">
    <input name="NAME" placeholder="Имя">
    <br>
    <?if ($arParams['USER_CONSENT'] == 'Y'):?>
     <?$APPLICATION->IncludeComponent(
      "bitrix:main.userconsent.request",
      "",
      array(
          "ID" => $arParams["USER_CONSENT_ID"],
          "IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
          "AUTO_SAVE" => "Y",
          "IS_LOADED" => $arParams["USER_CONSENT_IS_LOADED"],
          "REPLACE" => array(
           'button_caption' => 'Подписаться!',
           'fields' => array('Email', 'Телефон', 'Имя')
          ),
      )
     );?>
    <?endif;?>
    <input type="submit" name="subscribe" value="Подписаться!">
</form>

Указанные в примере параметры $arParams появятся в шаблоне вашего компонента при наличии в .parameters.php блока "USER_CONSENT" => array().

В параметре REPLACE передается:

  • button_caption - название кнопки отправки формы;
  • fields - массив названий полей, которые попадут в текст соглашения.

Форма без события submit (отправка через ajax и иные механизмы, реализованные в js, то есть без события submit у формы).

В компонент в параметре SUBMIT_EVENT_NAME передаётся название события, при котором появится окно запроса согласия.

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

<div id="my_container">
    <input type="text" placeholder="Электронный адрес" name="EMAIL">
    <input type="submit" id="fire_event" value="Отправить">
    <br>
    <?if ($arParams['USER_CONSENT'] == 'Y'):?>
        <?$APPLICATION->IncludeComponent(
            "bitrix:main.userconsent.request",
            "",
            array(
                'ID' => $arParams["USER_CONSENT_ID"],
                "IS_CHECKED" => $arParams["USER_CONSENT_IS_CHECKED"],
                "IS_LOADED" => "Y",
                "AUTO_SAVE" => "N",
                'SUBMIT_EVENT_NAME' => 'my-event-name',
                'REPLACE' => array(
                    'button_caption' => 'Отправить',
                    'fields' => array('Электронный адрес')
                ),
            )
        );?>
    <?endif;?>
</div>

<script type="text/javascript">
BX.ready(function () {

    var submitBtn = BX('fire_event');
    BX.bind(submitBtn, 'click', function(){
        BX.onCustomEvent('my-event-name', []);
    });

    if (!BX.UserConsent)
    {
        return;
    }
    var control = BX.UserConsent.load(BX('my_container'));
    if (!control)
    {
        return;
    }

    BX.addCustomEvent(
        control,
        BX.UserConsent.events.save,
        function (data) {
            console.log('js event:', 'save', data);
            // успешно!
            // отправляем ajax
            // или другие действия
        }
    );

});
</script>

Внешнее сканирование

В параметрах компонента есть параметр AUTO_SAVE. Если его значение равно Y, то согласие автоматически сохраняется компонентом. Если вам нужно сохранить согласие самим, то передайте значение N. А для ручного добавления согласия вызовите следующий код:

\Bitrix\Main\UserConsent\Consent::addByContext(
       $arParams["USER_CONSENT_ID"]
   );


Проверьте себя
278 / 278

Ответьте на несколько вопросов по теме Требования законодательства РФ, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 В дистрибутиве доступно использование только стандартного варианта соглашения на обработку персональный данных.
Верно
Увы, вы ошиблись. У администратора всегда есть возможность создать свой текст соглашения. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!
2 Удаление согласия в списке согласий пользователей не допускается.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
3 Для добавления секции Согласие пользователя в файле параметров нужного компонента .parameters.php достаточно объявить параметр "USER_CONSENT" => array().
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
4 Для вывода согласия в форме используется специальный компонент, который умеет сохранять полученное согласие.
Верно
Аплодисменты, вы ответили правильно!
Неверно
Увы, вы ошиблись. Советуем почитать тему ещё раз.
5 Для всех форм компонент main.userconsent.request используется одинаково.
Верно
Увы, вы ошиблись. Есть два вида форм в которых компонент используется по разному: с событием submit и без. Советуем почитать тему ещё раз.
Неверно
Аплодисменты, вы ответили правильно!


Администратор. Базовый
0 / 278

Для кого этот курс?

Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом". Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.

Если вы добросовестно изучите курс, то научитесь:

  • управлять доступом к системе, сайтами, пользователями, группами пользователей;
  • работать с инструментами системы;
  • использовать возможности интерфейса по управлению системой;
  • работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
  • выполнять работу по конфигурированию веб-системы для оптимальной работы.

Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка вам не обойтись.

Начальные требования

Необходимый минимум знаний для изучения курса:

  • базовые навыки компьютерной грамотности и навыков работы с ОС Windows;
  • базовые знания о WWW и организации доступа к веб-серверу;
  • знание системы в рамках курса Контент-менеджер , чтобы банально не путаться в интерфейсе.

Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.

Тесты и сертификат

После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение вы увидите результат обучения и там же - ваш сертификат в формате PDF.

Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.

Комментарии к урокам

На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий - не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).

Если нет интернета

Экономите время и учитесь по дороге на работу или в ВУЗ? Для этого нужны файлы. Мы предоставляем две возможности оффлайнового изучения: файлы в формате PDF и CHM, они открываются на любых устройствах. Программы для чтения доступны в AppStore и Play Market. Файлы обновляются периодически, но всё равно будут отставать от онлайновой версии курса. Поэтому, всё же, мы рекомендуем он-лайн версию курсов, тем более, что мобильный интернет сейчас не проблема.

Скачать материалы курса в формате PDF .

Скачать материалы курса в формате CHM .

Если не видно содержание файла CHM
Внимание! Если вы не видите содержимое файла формата .chm, то причина - настройки безопасности операционной системы: скачанные из интернета файлы находятся под наблюдением системы, которая ограничивает доступ к ним.

Чтобы отключить подобное отношение к файлу необходимо:

  • перейти в свойства файла на вкладку Общие. Внизу у Вас отобразится сообщение о том, что этот файл был заблокирован системой с целью защиты компьютера.

  • нажать кнопку Разблокировать.

Отсутствие кнопки Разблокировать возможно в двух случаях:

  1. Файл лежит не локально, а на сетевом ресурсе.
  2. Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).

Как проходить учебный курс?

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».