Оптимизация ISPmanager под проекты на Битриксе или как я скрестили ISPmanager и VMBitrix (Битрикс окружение)

image

Возможно вы уже знакомы с таким продуктом, как »1С-Битрикс: Веб-окружение» — Linux. Очень часто это идеальное решение для проектов на базе CMS «Битрикс», но, иногда, чисто «консольное» меню не обладает необходимым функционалом для людей, работающими над проектами.

Для примера, другой популярный продукт — ISPmanager, позволяет создавать FTP аккаунты из удобной веб-панели для администраторов всего за пару кликов мышкой, в то время как из консоли вам необходимы навыки администратирования Linux. Порой просто хочется управлять своим сервером и проектами из вкладки в браузере, без помощи ssh консоли.

Однако, ISPmanager, в нашем случае его последняя версия под номером пять, не готов «из коробки» работать с сайтами на Битрикс, не говоря уже о Битрикс24, корпоративных порталах. Часть функционала недоступна, проекты работают довольно медленно. Приходится долго время изучать рекомендации из документации по Битриксу, которая, к сожалению, иногда сильно запаздывает с обновлением актуальной информацией.

В связи с необходимым требованием работать с проектами через «user-friendly» интерфейс ISPmanager 5 и не потерять в скорости и функционале проектов, было принято решение о неком «скрещивание» этих двух систем.

imageСценарий установки протестирован только на чистой CentOS 6.6×64_86, сразу после установки стабильного ISPmanager 5 и включения в нём «Возможности» nginx. Для продвинутых пользователей, желающих использовать предложенное решение, которые ранее модифицировали какие-либо настройки в своей системе, категорически не рекомендуется устанавливать скрипты полностью в автоматическом режиме — выполняйте инструкции из них вручнуюАвтор не даёт никаких гарантий по стабильной или правильной работе предложенного решения. Все инструкции вы выполняете на свой страх и риск. Текущее версия скриптов и конфигурационных файлов находится на этапе активного тестированияВнимательно ознакомитесь с разделом «Этап 2.6 Создания дополнительных необходимых каталогов«Модуль «компрессия» в системе должен быть обязательно УДАЛЁН. Композит — ВЫКЛЮЧЕН. imageКомпозитHTTPSКрасивые сообщения об ошибках веб-сервера

image

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

Рассматривается следующий сценарий:

Вы установили чистую CentOS 6.6×86_64 Установили ISPmanager 5, следуя официальным инструкциям В разделе «Возможности» панели ISPmanager 5 активировали Nginx image

Далее можно приступать к самой оптимизации: (все ссылки в конце публикации)

сначала запускаем «bitrix-env_5.1.2_patched_2.sh» копируем скрипт «isp_patch_V0.1.sh» вместе с распакованным архивом «patch_filesV0.1.zip» в произвольную директорию на сервере запускаем «isp_patch_V0.1.sh» Поздравляю, ваш сервер с ISPmanager 5 готов для работы с проектами на Битрикс

Осталось только развернуть сайт на свежем домене: (все ссылки в конце публикации)image

Предложенный мною вариант о том, как это можно сделать, в отдельной, но небольшой инструкции «создание хоста.pdf» (в любом случае, обратите внимание на подключение необходимого конфига apache и nginx к созданному хосту) Для вашего удобства, выкладываю дистрибутив для установки битрикса в архиве «bitrix_install.zip» (установка в таком случае происходит в режиме Быстрая установка/Short install) Буду рад любым вашим комментариям, замечаниям и пожеланиям!

image

Этап 1. bitrix-env.sh (или »1С-Битрикс: Веб-окружение» — Linux) image

Классическая установка битрикса происходит на битрикс-окружение, которое устанавливается через скриптwww.1c-bitrix.ru/products/env/Именно с разбора bitrix-env.sh мы и начнём оптимизацию своего ISPmanagerНа самом деле в самом скрипте ничего особенного нет, сначала идёт стандартная проверка дистрибутива системы, затем по результатам этой проверки устанавливается то или иное необходимое ПО.Вся магия происходит, когда скрипт добавляет «фирменный» репозиторий 1С-Битрикс и устанавливает в систему пакет bitrix-env* и bx-nginx, на них мы заострим своё внимание.

И так, наш «bitrix-env_5.1.2_patched_2.sh» ничто иное, как немного переделанный скрипт от самого 1С-Битрикс, но основная «фишка» в установке bitrix-env из него убрана, почему — расскажу дальше.

Этап 2. bitrix-env.rpm (или Основной этап конфигурации) image

Целая экосистема, которую предлагает bitrix-env, нам не подходит, нагромождения потенциально конфликтующих пакетов/конфигов ISPmanager и Битрикс-окружения нам вовсе ни к чему.

Оставив только нужно на мой взгляд я перенёс всё из rpm пакета в скрипт isp_patch.sh (внимание, протестирован только на centos 6.6×64).

Немного подробнее — далее.

Этап 2.1 bx-nginx (или Nginx с поддержкой Push & Pull) image

Этот пакет, который нам предлагает Битрикс-окружение, является ничем иным, как скомпилированным nginx с модулем «push and pull», который применяется в таком функционале как, например, «Бизнес-чат», «Живые комментарии», «Видеозвонки», «Мобильное приложение».

Мы можем просто забрать себе в систему, любезно скомпилированный 1С-Битрикс, готовый бинарник nginx на свою машину с ISPmanager и избавить себя от необходимости компилировать его самостоятельно (22 и 23 строки скрипта)

Этап 2.2 bvat.bx (или автотюнер параметров ПО) imageинтересным составляющим «Битрикс-окружения» является скрипт bvat.bx, который прописывается в автозагрузку системы и выполняет работу по тюнингу параметров ПО, отвечающее за работу проекта (преимущественно mysql сервера и расходу оперативной памяти). Сам тюнер работает довольно просто, основываясь на текущей конфигурации системы он выставляет тот или иной заготовленный «пресет» настроек в качестве действующих параметров. Хотелось бы заметить, что в конфигурации предусмотрено изменения параметров, которые выставил bvat.bx без полного его отключения (хотя можно поступить и так).

в нашем скрипте за его установку отвечают строки 25–31

Аналогично эталонному Битрикс-окружению, свои собственные параметры для mysql сервера можно прописать в файле /etc/mysql/conf.d/z_bx_custom.cnf (которые будут применены в обход bvat.bx). Аналогично, подключением своих конфигурационных файловпосле конфигурационных файлов bvat, можно обойти его автонастройки для остального ПО, если тот или иной параметр, выставленный автоматически, вас не устраивает.

Так как логика скрипта мне по-душе, дополнить его «автоматику» своими значениями не составляет труда, а его установка в систему была довольна проста — я включил его в свою конфигурацию.

Этап 2.3 Настройки php imageИзменяем несколько параметром в php.ini (строки 33–40 в нашем скрипте)memory_limit = 512M pcre.backtrack_limit = 1000000 short_open_tag = On и отключаем dav модули для phpЭтап 2.4 Настройки mysql image42–48 строки скрипта копируют заранее подготовленный и настроенный my.cnf, в котором вы, наверняка захотите что-нибудь поменять уже самостоятельно

Этап 2.5 bitrixenv.ini (или директивы php необходимые для работы битрикса) image

Неотъемлемой частью классического битрикс-окружения является файлик /etc/php.d/bitrixenv.ini, содержащий необходимые настройки директив, перечисленные в нём

с минимальной разницей с оригинальным файлом я скопирую его на свою машину с ISPmanager, как файл /etc/httpd/bx/bx_apache.conf (строки 50–52)

важно заметить, что этот файлик мы нигде не инклюдим намеренно, чтобы прописывать его при необходимости только отдельным Virtualhost созданных из-под ISPmanager (в секцию конфиг-apache)

Этап 2.6 Настройка nginx imageНастройки nginx в моём скрипте имеют долю «автотюна» (строка 64 и 67)Остальное взято из конфигурационных файлов для nginx от Битрикс-окружения

строки 72–77 отвечают за компрессию на уровне сервера79–82 — за push&pull

обратите внимание, на файлbx/conf/bitrix.confважно заметить, что этот файлик мы нигде не инклюдим намеренно, чтобы прописывать его при необходимости только отдельным хостам, созданных из-под ISPmanager (в секцию конфиг-nginx)

кроме того, в нём есть блок «Some security options» с заранее подготовленными, но закоментированными опциями, имеющими отношения к безопасности хоста

Этап 2.7 Создания дополнительных необходимых каталогов image

В скрипте (строки 13–19) создаются каталоги для хранения сессий и временных файлов битриксом.

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

1) включить хранение сессий в разделе админки «БД: Защита сессий» и создать отдельные каталоги только для временных файлов

2) либо создать отдельные два каталога (отдельные для сессии и для временных файлов), например

mkdir -p /tmp/php_sessions/ext_www/your_site.ru mkdir -p /tmp/php_upload/ext_www/your_site.ru выставить на них права только того пользователя, которыми они принадлежат chown user_of_yoursite: user_of_yoursite /tmp/php_sessions/ext_www/your_site.ru -R chown user_of_yoursite: user_of_yoursite /tmp/php_php_upload/ext_www/your_site.ru -R и прописать в конфигурацию your_site.ru php_admin_value session.save_path /tmp/php_sessions/ext_www/your_site.ru php_admin_value upload_tmp_dir /tmp/php_upload/ext_www/your_site.ru

bitrix-env_5.1.2_patched_2.shbitrix_install.zipсоздание хоста.pdfisp_patch_V0.1.shpatch_filesV0.1.zip

© Habrahabr.ru