Как в битрикс веб окружение обновить php

Как обновить версии MySQL и PHP для сайтов на окружении Битрикс

Для максимальной производительности сайтов на веб-окружении Битрикс важно своевременно обновлять версии PHP и MySQL.

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

Обновление версии PHP

Подключимся к серверу по SSH и авторизуемся под root-пользователем, чтобы попасть в меню веб-окружения. Далее выберем пункт «1. Manage servers in the pool» :

В открывшемся списке выбираем пункт «8. Update PHP and MySQL» :

Текущая версия PHP, которая используется на сервере, — 7.0. В меню для смены PHP предлагается 2 варианта:

«Rollback PHP to version 5.6» — возврат к версии 5.6

«Update PHP to version 7.1» — обновление PHP до версии 7.1

Нам необходимо обновление, поэтому выбираем пункт «2. Update PHP to version 7.1» . Появится строка с подтверждением обновления. Напишите «y» (yes) и нажмите Enter:

Появится сообщение о том, что создано задание на обновление, и будет указан идентификатор задания (Job ID), процесса (PID) и текущий статус выполнения (Status):

Нажимаем Enter, чтобы снова попасть в меню обновления PHP и MySQL, а после дважды выбираем пункт «0. Previous screen or exit» и попадаем снова в главное меню окружения. Теперь выберем пункт «10. Background pool tasks» :

И посмотрим статус процесса обновления PHP. Увидели «finished» — значит задание успешно завершено, PHP обновлен с 7.0, до 7.1.

Если вам понадобится вернуться к более ранней версии PHP, или обновить до 7.2, сможете сделать это также в меню «1. Manage servers in the pool» — «8. Update PHP and MySQL» , выбрав пункт «1. Rollback PHP to version 7.0» для возвращения к старой версии, либо пункт «2. Update PHP to version 7.2» для обновления:

Примечание: если вам надо вернуться на версию 5.6 с 7.1, то сначала необходимо установить версию 7.0 и только потом получится изменить её на PHP 5.6.

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

Обновление версии MySQL

Для обновления MySQL-сервера перейдём в меню веб-окружения Битрикс. Выберем пункт «1. Manage servers in the pool» , затем пункт «8. Update PHP and MySQL» . И наконец пункт «3. Update MySQL to version 5.7» :

Подтвердим обновление аналогично с обновлением PHP — напишем «y» :

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

Нажмем Enter , вернемся в меню обновления PHP и MySQL, после дважды выберем пункт «0. Previous screen or exit» , оказавшись в главном меню, проверим выполнение задачи, перейдя в пункт «10. Background pool tasks» :

Обновление MySQL процесс занимает больше времени, чем обновление PHP, поэтому, скорее всего, вы увидите, что задача ещё выполняется — статус «running»:

Подождите 5-15 минут, выпейте чаю и погладьте кота, и снова зайдите в «Background pool tasks» :

Задача перешла в статус «Finished», и MySQL-сервер успешно обновлен до версии 5.7. Ура, товарищи!

Если у вас возникли сложности с обновлением PHP и MySQL на Веб-окружении Битрикс, напишите нам в поддержку — мы поможем.

Есть Bitrix web-окружение 2.1. Как обновить PHP?

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

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

Цитата
Александр Шаманин написал:
Bitrix web-окружение 2.1.

Оно давно не поддерживается.

Цитата
Александр Шаманин написал:
Рекомендуют качать виртуальные машины с юниксами и с ними разбираться.

Для ленивых, есть Виртуальная машина : установил среду виртуализации (VMWare/VirtualBox/etc), закинул образ в нее и подключаешь по ssh. Минимум геморроя, максимум пользы.

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

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

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

Как понизить версию PHP на Веб-окружении Битрикс

На первый месяц сотрудничества вы получаете скидку 20% на все работы!

  • Главная
  • База знаний
  • Как понизить версию PHP на Веб-окружении Битрикс

В современных версиях Веб-окружения 1С-Битрикс есть встроенный функционал по понижению версии PHP (downgrade).

//cdn.optipic.io/site-575/blogСнимок.PNG

Запустите консоль Веб-окружения:
# /root/menu.sh
Далее выберите пункт «1»:
1. Manage Hosts in the pool

Далее: 8. Update PHP and MySQL
//cdn.optipic.io/site-575/blogСнимок.PNG
Далее — Rollback до нужной версии.
//cdn.optipic.io/site-575/blogСнимок.PNG
Так можно откатить версию PHP несколько раз (до какой именно — зависит от версии Веб-окружения)

Наши довольные клиенты

С ребятами работаем уже 2 года. Отличная команда, отличный подбор программистов.
Практически в любое время суток есть связь с руководителями. Критичные вопросы можно решить даже в 2 часа ночи (для нас как интернет-проекта это очень важно).

Время, когда начинали сотрудничество с Атлантом сейчас вспоминается с легкой ухмылкой. А тогда — все было очень плохо.
Решили кардинально изменить сайт — старый «снести» и перейти на 1С-Битрикс.

Разработку сайта поручили фрилансеру. Он все сделал, сверстал сайт. Но прямо перед запуском у него случились какие-то трудности, 2 недели мы без связи. О нем ничего плохого сказать не могу, но — факт на лицо. Мы остались с недоработанной копией сайта (более 30 критичных доработок).

Как быть в такой ситуации — понятия не имели. Стали искать среди Золотых партнеров Битрикса, которые могли бы нам помочь в сложившейся ситуации.
Написали порядка сотни запросов.
Ответ от Атланта выделялся среди всех! Стоимость за работы оказалась одной из самых низких. Уверенность придавала пошаговая инструкция, что ребята собираются сделать с сайтом.

В итоге, запустили сайт, работаем с ними и ни разу не пожалели!
В первые 6 месяцев после начала сотрудничества — у нас рост продаж в 2 раза. Ставим любые, даже самые сложные задачи. Все выполняется.
Удобно, что все в одном месте: работы по сайту, 1С, хостинг, seo, дизайн и т.д.
Рекомендуем!

Работаем с компанией Атлант уже два года.
Всегда раскладываем яйца по разным корзинам и работали сразу с несколькими аутсорсерами.
За год перевели на «Атлант» от 20 до 70% выполнения задач по верстке сайта и настройке 1С.
Год за годом удивляемся развитию и прогрессу компании и радуемся за свой удачный выбор.
Уровень программистов стал выше — цены в пределах рынка, реакция руководства моментальная.
Как обычно когда все хорошо даже не знаешь что выделить и нет повода писать отзыв.
Ребята целиком создали наш ресурс www.datakam.ru
От стандартного визуально убожественного Б24 не оставили камня на камне.
Наши маркетологи, в ежемесячных отчетах, показывают мне как руководителю, положительный эффект изменений на сайте и в автоматизации оформления документов. Есть толк. В деньгах. В рублях.
Честно и откровенно рекомендуем этот творческий коллектив как надежного партнера в работе.
Самое смешное что мы никогда не видели никого из руководства и сотрудников в глаза — и при этом удовлетворены качеством и скоростью выполнения задач.
Рекомендуем.
Отвечаем.

Работаем с Atlant уже более 2х лет, все устраивает: скорость выполнения работ и качество. Бывает, что не хватает программистов или не всегда сходимся в вопросах дизайна, но все вопросы получалось решить более-менее оперативно.

Вполне доволен результатом. Спасибо.

C компанией АТЛАНТ мы сотрудничаем недавно, можно сказать только притираемся! Радует, что специалисты компании готовы к диалогу, и большинство спорных вопросов решается в режиме он-лайн и с учетом пожеланий заказчика. Цены на услуги, относительно большинства компаний, весьма доступные. Продолжаем работать, очень много проектов по сайту, надеемся что сотрудничество будет долгосрочным и взаимовыгодным!
Спасибо всем сотрудникам компании АТЛАНТ!

Начали работать с компанией Атлант недавно, но сразу же поняли, что выбор оказался удачным — все работы выполняются быстро и качественно, большое спасибо!

Обновление PHP в окружении BitrixVM с использованием Docker

В данной статье я бы хотел рассмотреть проблему обновления PHP в виртуальной машине BitrixVM, и действия, которые возможно применить если выполнение переезда на машину с обновленным ПО невозможно. Надеюсь, что статья будет полезна для вас.

Предыстория

Несколько месяцев назад перед нами встала задача обновления PHP до версии 7.4 на одном из наших проектов. Проект был расположен внутри виртуальной машины с развернутой на ней BitrixVM версии 7.2.2. Заглянув в меню Битрикс при обращениях к скрипту /root/menu.sh было обнаружено, что обновление PHP невозможно без обновления Битрикс окружения. При этом само обновление окружения выполняется из бета репозиториев, так как текущая стабильная версия не поддерживала работу с PHP версии 7.4 согласно курсу:

Прошерстив форумы Битрикс, мы не нашли конкретного ответа, когда будет выполнено обновление BitrixVM до стабильной версии с поддержкой с PHP 7.4. В связи с чем, нами было принято решение обновить версию окружения до актуальной беты на одном из виртуальных серверов разработки, предварительно сделав snapshot.

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

BitrixVM хранит лог выполняемых задач по пути /opt/webdir/temp/, в ходе выполнения обновления окружения в логе возникали различные ошибки, вызывавшие нарушение процесса обновления. Поиск и решение подобных ошибок занимало достаточный период времени. Как пример, возникали ошибки подключения репозитория:

Второй проблемой было то, что в случае если обновление из Бета репозиториев было выполнено неудачно и нарушало работу проекта, скрипты BitrixVM не предусматривают откат до стабильной версии, согласно информации:

Обратного отката установленной бета-версии к текущей стабильной нет, т.е если вы перешли, например, на бету 7.4.13, то вернуться к стабильной 7.4.4 нельзя. В этом случае чтобы перейти на стабильную версию, нужно дождаться релиза стабильной версии, новее беты, или установить стабильную версию заново. Например для бета-версии 7.4.13, нужно ждать стабильную версию 7.5.

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

Когда обновление до Бета версии прошло удачно, всплыла проблема при разворачивании новой версии PHP. Ansible роли виртуальной машины Битрикс предусматривают откат до предыдущей версии PHP, для этого в меню виртуальной машины есть, например следующие пункты:

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

После нескольких часов работ и восстановлений состояния виртуальной машины из снэпшота, было принято решение отказаться от обновления окружения BitrixVM и развернуть отдельный сервер под управлением ОС Debian по общим стандартам с требуемым ПО. И выполнить переезд проектов на него. От себя хочу добавить, что данный вариант, при выполнении работ по обновлению BitrixVM, считаем оптимальным, а именно переезд на новый сервер, либо с уже установленной новой версией BitrixVM, на борту, или на новый сервер под управлением другого дистрибутива Linux.

После задача была закрыта и проект работал в штатном режиме. Однако, буквально через несколько месяцев перед нами вновь встала задача обновления PHP до версии 7.4 для BitrixVM, в этот раз с CRM Битрикс24 на борту. Ситуация усложнялась тем, что обновление необходимо было выполнить в течении нескольких дней, а сам сервер располагался физически в офисе заказчика, что означало для нас невозможность переезда на новую инфраструктуру в кратчайшие сроки.

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

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

Также рассмотрен вариант разворачивания Docker контейнера c необходимой версией PHP7.4 и настроенный для работы с BitrixVM. Данный вариант показался для нас более выгодным, так как исключал все потенциальные проблемы, которые могли возникнуть при обновлении BitrixVM, а также предусматривал минимальный простой в работе проекта (в последствии простой был, однако он составил не более 5 минут, это то время, которое потребовалось для переключения Nginx для работы с Apache2 в контейнере).

Имея большой опыт работы с Docker мы не видели проблемы в разворачивании контейнера, также в отличии от BitrixVM, с Docker мы могли полностью контролировать процесс обновления, а в случае появления проблем изучать логи Apache в контейнере и сервисов установленных на сервере, которые более информативны, чем логи Ansible ролей виртуальной машины Битрикс. После небольших консультации внутри команды было принято решение развернуть контейнер. На сервере была установлена БитриксВМ 7.3.4, под управлением Centos7.4. Данные работы будут описаны в статье ниже. Я постарался максимально подробно описать проделанные нами шаги, для тех, кому это решение окажется полезным. Также в конце статьи будет приложена ссылка на github с конфигурацией контейнера.

Ход работ

Перед началом работ ставим пакеты docker-ce, docker-ce-cli, containerd.io для Centos7 согласно инструкции:

После устанавливаем docker-compose (на момент публикации статьи актуальной версией является 1.29.2):

Подготавливаем docker-compose файл где описываем контейнер. Контейнер был собран но основании php:7.4-apache, в Dockerfile были включены все необходимые PHP модули. За основу виртуального хоста Apache был взят оригинальный файл BitrixVM, с небольшими правками, учитывающими работу в контейнере. В частности, вам придется указать AssignUserId в конфигурации виртуального хоста Apache, в виду отсутствия пользователя bitrix в контейнере. Добавлю, что apache2 в нашем случае работает с модулем mpm_prefork настройки для которого также прокинуты в контейнер.

Для корректной работы в docker-compose файле потребуется прокинуть в контейнер стандартные директории площадки для bitrix. В целом блок volumes в нашем варианте выглядит следующим образом:

Логи apache2 для площадки были прокинуты на сервер в стандартную директорию, что также учтено в виртуальном хосте:

Логи самого apache2 в контейнере расположены в /volumes/var/log/apache2.

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

Для решения проблем с правами необходимо добавить в описание контейнера в docker-compose строки:

Для удобства указания общения контейнера с сервером присваиваем ему IP:

и настраиваем сеть:

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

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

Битрикс оптимизация

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

Для решения этих задач была создана отдельная тестовая площадка на основном сервере, в которую был помещен установочный скрипт Битрикс. Площадка развернута через стандартное меню Битрикс /root/menu.sh.

Для тестовой площадки настраиваем проксирование на уровне Nginx в контейнер, потребуется изменить переменную proxyserver в файлах виртуального хоста площадки.

После прокидываем созданный скриптом Битрикс виртуальный хост для apache2 в контейнер, при этом обязательно указываем UID пользователя Bitrix:

В нашем случае apache2 работает на стандартном 80 порту в контейнере, поэтому в виртуальном хосте указываем:

После меняем параметры подключения к БД в файлах dbconn.php и .settings.php c 127.0.0.1 на 172.24.1.1

После внесения всех этих изменений переходим в административную панель тестовой площадки, а далее заходим в Проверка системы > Тестирование конфигурации. В первую очередь всплывет ошибка работы с сокетами, для ее решения прописываем в docker-compose.yml параметр extra_hosts, указав внешний IP сервера и доменное имя площадки:

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

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

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

Дополню, что в случае использования контейнера с Битрикс24 будет всплывать предупреждение вида:

Ошибка! Для гарантированной работы «1С-Битрикс24» необходимо его устанавливать на веб-окружении Битрикс, у вас используется собственное серверное окружение.

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

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

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

Заключение

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

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

Для удобства выложили конфигурацию нашего контейнера на GitHub, вы всегда можете ознакомится с ней по мере необходимости. Там же расположен отредактированный виртуальный хост площадки, все вносимые в PHP и Apache2 настройки и docker-compose.yml.

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

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

В BitrixVM абсолютно все площадки работают из-под одного пользователя — bitrix. Соответственно ни о какой изоляции и соответственно безопасности проектов не может быть и речи (т.е. если используя какие-либо уязвимости в коде одного сайта, его взломают, то это будет означать, то злоумышленник получит доступ сразу ко всем остальным). Иными словами BitrixVM может подойти только тогда, когда на сервере работает только одна площадка.

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *