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

 

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

Автор: admin от 28-03-2015, 20:07, посмотрело: 1938

А зачем?



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

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

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

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

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



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


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

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



Оптимизация ISPmanager под проекты на Битриксе или как я скрестили ISPmanager и VMBitrix (Битрикс окружение)
Композит
HTTPS
Красивые сообщения об ошибках веб-сервера

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



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

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

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


  • Вы установили чистую CentOS 6.6 x86_64

  • Установили ISPmanager 5, следуя официальным инструкциям

  • В разделе «Возможности» панели ISPmanager 5 активировали Nginx



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

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

  • сначала запускаем «bitrix-env_5.1.2_patched_2.sh»

  • копируем скрипт «isp_patch_V0.1.sh» вместе с распакованным архивом «patch_filesV0.1.zip» в произвольную директорию на сервере

  • запускаем «isp_patch_V0.1.sh»



  • Поздравляю, ваш сервер с ISPmanager 5 готов для работы с проектами на Битрикс

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


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

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



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

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

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



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



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

    Классическая установка битрикса происходит на битрикс-окружение, которое устанавливается через скрипт
    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 (или Основной этап конфигурации)



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

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

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

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

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



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

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

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

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



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

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

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

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

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


    Оптимизация ISPmanager под проекты на Битриксе или как я скрестили ISPmanager и VMBitrix (Битрикс окружение)
    Изменяем несколько параметром в php.ini (строки 33-40 в нашем скрипте)

    • memory_limit = 512M

    • pcre.backtrack_limit = 1000000

    • short_open_tag = On


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

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



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

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



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

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

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

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

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



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

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

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

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

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



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

    В скрипте (строки 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.sh
    bitrix_install.zip
    создание хоста.pdf
    isp_patch_V0.1.sh
    patch_filesV0.1.zip

    Источник: Хабрахабр

    Категория: Программирование, Веб-разработка, Linux

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

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *