Как стать автором
Обновить

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

Время на прочтение6 мин
Количество просмотров22K
UPDATE 23.04.2015

  1. Решение успешно протестировано на ISPmanager 4
  2. В режиме Apache MPM-ITK скрипт restore.php выдаёт ошибку, информация по ней в разделе «Важная информация»


А зачем?



image

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

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

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

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



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


image
  1. Сценарий установки протестирован только на чистой CentOS 6.6 x64_86, сразу после установки стабильного ISPmanager 4/5 и включения в нём «Возможности» nginx.
    Для продвинутых пользователей, желающих использовать предложенное решение, которые ранее модифицировали какие-либо настройки в своей системе, категорически не рекомендуется устанавливать скрипты полностью в автоматическом режиме — выполняйте команды из них вручную
  2. Автор не даёт никаких гарантий по стабильной или правильной работе предложенного решения. Все инструкции вы выполняете на свой страх и риск. Текущая версия скриптов и конфигурационных файлов находится на этапе активного тестирования
  3. Модуль «компрессия» в системе должен быть обязательно УДАЛЁН.
  4. Битриксовый скрипт restore.php в режиме Apache MPM-ITK падает с ошибкой short_open_tag parameter must be turned on in php.ini
    Происходит это из-за неправильно использования условия if в этом скрипте. Проблема существует, потому что во всех остальных режимах php она не модулируется, но я уже связался с разработчиками 1С-Битрикс и они должны будут исправить проблему (другой вопрос когда они это сделают). Если кого-то интересуют подробности бага — отвечу в комментариях

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

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



    image

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

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

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


    image

    Далее можно приступать к самой оптимизации: (все ссылки в конце публикации)
    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 4/5 готов для работы с проектами на Битрикс

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

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


    Что получилось



    Полностью рабочий дефолтный ISPManager 4/5, который научился работать с проектами на Битриксе быстро и без потери функционала.

    Сборка уже используется в нашей компании — Эм Си Арт, как для своих сайтов и стендах, так и для продакшен сайтов клиентов.

    Буду рад любым вашим комментариям, замечаниям и пожеланиям!

    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 x64).

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

    Этап 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



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

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



    image

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

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

    Важно заметить, что этот файлик мы нигде не инклюдим намеренно, чтобы прописывать его при необходимости только отдельным Virtualhosts созданным из-под 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» с заранее подготовленными, но закоментированными опциями, имеющими отношения к безопасности хоста.

    Ссылка на файлы


    isp.bitrix_v0.6.zip
Теги:
Хабы:
+4
Комментарии35

Публикации

Истории

Работа

PHP программист
158 вакансий

Ближайшие события