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

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

Оптимизация ISPmanager под проекты на Битриксе. В данной статье вы найдёте подробное пошаговое руководство с пояснениями.

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

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

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

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

Итак, перед тем как начать, внимательно ознакомьтесь с важной информацией


- Сценарий установки протестирован только на чистой CentOS 6.6 x64_86, сразу после установки стабильного ISPmanager 5 и включения в нём "Возможности" nginx. Для продвинутых пользователей, желающих использовать предложенное решение, которые ранее модифицировали какие-либо настройки в своей системе, категорически не рекомендуется устанавливать скрипты полностью в автоматическом режиме - выполняйте инструкции из них вручную;

- Автор не даёт никаких гарантий по стабильной или правильной работе предложенного решения. Все инструкции вы выполняете на свой страх и риск. Текущее версия скриптов и конфигурационных файлов находится на этапе активного тестирования;

- Модуль "компрессия" в системе должен быть обязательно УДАЛЁН. 

Функционал, который сейчас отсутствует или не тестировался вовсе, но планируется в следующем обновлении

  • Композит
  • HTTPS
  • Красивые сообщения об ошибках веб-сервера 

Оптимизация в полностью автоматическом режиме

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

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

  1. Вы установили чистую CentOS 6.6 x86_64
  2. Установили ISPmanager 5, следуя официальным инструкциям
  3. В разделе "Возможности" панели ISPmanager 5 активировали Nginx 

Snimok ekrana ot 2015_03_28 03l51q14.png

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

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

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

- Предложенный мною вариант о том, как это можно сделать, в отдельной, но небольшой инструкции "создание хоста.pdf" (в любом случае, обратите внимание на подключение необходимого конфига apache и nginx к созданному хосту);

- Для вашего удобства, выкладываю дистрибутив для установки битрикса в архиве "bitrix_install.zip" (установка в таком случае происходит в режиме Быстрая установка/Short install).

Рассмотрим предложенное решение подробнее 

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

Классическая установка Битрикса происходит на Битрикс-окружение, которое устанавливается через скрипт 

https://www.1c-bitrix.ru/download/vmbitrix.php

Именно с разбора bitrix-env.sh мы и начнём оптимизацию своего ISPmanager 

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

Вся магия происходит, когда скрипт добавляет "фирменный" репозиторий 1С-Битрикс и устанавливает в систему пакет bitrix-env* и bx-nginx, на них мы заострим своё внимание. 

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

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

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

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

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


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

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

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

Этап 2.2 bvat.bx (или автотюнер параметров ПО)

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

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

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

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

Этап 2.3 Настройки php

Изменяем несколько параметром в php.ini (строки 33-40 в нашем скрипте) 

- memory_limit = 512M

- pcre.backtrack_limit = 1000000

- short_open_tag = On

- и отключаем dav модули для php 

Этап 2.4 Настройки mysql

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

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

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

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

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

Этап 2.6 Настройка nginx

Настройки nginx в моём скрипте имеют долю "автотюна" (строка 64 и 67) 

Остальное взято из конфигурационных файлов для nginx от Битрикс-окружения 

строки 72-77 отвечают за компрессию на уровне сервера 

79-82 - за push&pull 

обратите внимание, на файл

- bx/conf/bitrix.conf 

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

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

 isp.bitrix_v0.6.zip (778.06 КБ)

Похожие записи в блоге

Все статьи