Как откатить 1с битрикс
На всех порталах Битрикс24, независимо от тарифного плана, делается ежедневное резервное копирование. Обычно эти копии хранятся не более недели.
Функция Восстановление бэкапа по запросу доступна не на всех тарифах Битрикс24. Узнать подробнее вы можете на странице тарифов.Если вы или кто-то из ваших сотрудников удалил список контактов/лидов/компаний/сделок, удалил весь список задач или удалил другие важные данные, и у вас платный тариф, то вам нужно создать обращение в техподдержку Битрикс24 и указать один из способов восстановления данных, а также дату восстановления.
Обращайтесь в поддержку только при потере больших объёмов данных. Восстановление – серьезный процесс, и использовать его для нескольких элементов не очень практично.Поддержка24 может создать CSV-файл со списком элементов CRM на нужную дату. Вам останется только импортировать данные в CRM.
Это самый безопасный метод – вся информация на портале останется в сохранности.
CSV-файл содержит только список однородных элементов (например список лидов или сделок, или компаний, или контактов), без дел, истории и комментариев.Полное восстановление всего Битрикс24 за указанную дату
Этот способ полностью вернет портал на состояние указанной даты. То есть при внесении данных после этой даты, новые данные будут потеряны. Этот вариант подходит для возврата списка задач/календаря и других данных, не имеющих отношения к CRM. Для восстановления данных CRM этот способ также подходит.
- Заявка на восстановление данных может быть отправлена только от имени первого администратора портала.
- Восстановление данных НЕ делается для одного определенного сотрудника, оно затронет всех сотрудников портала.
- Восстановление данных возможно максимум на неделю назад.
- Все данные, которые были внесены после даты восстановления данных будут утеряны.
Если вы используете тариф, где не предоставляется услуга восстановления данных, нужно сделать следующее:
- Напишите в техподдержку Битрикс24 заявку, указав вариант восстановления и дату восстановления.
- Мы подтвердим возможность восстановления данных.
- Вы оплачиваете коммерческий тариф, на котором есть функция восстановления, на ваш выбор.
- После подтверждения оплаты мы осуществляем восстановление данных.
Регулярное обновление Битрикс поможет не отставать от совершенствующихся технологий и обезопасит ваш сайт. Вручную обновить Bitrix в виде облачного портала не получится. Последняя версия загрузится автоматически – как только появится новое обновление. В случае же с коробочной редакцией все гораздо сложнее. Обновление здесь требует большой аккуратности.
ТОП-10лучших компаний интернет-продвижения России 2020
Основные шаги
Если при обновлении не будут учтены некоторые моменты, возникнет риск неполадок в работе сервиса. В частности, касается это доработанных порталов: все нестандартные модернизации «слетят» и устанавливать их придется заново.
Этап 1. Резервная копия
Первым делом выполняем резервную копию сайта. Это поможет восстановить его в случае непредвиденной ситуации. Выполняется создание резервной копии в одноименной вкладке:
Создание полной резервной копии битрикс
Копирование выполняется в течение нескольких минут. Как только все будет готово, отправляемся на проверку целостности ядра Битрикса.
Этап 2. Проверка целостности ядра
Возможно, разработчик вносил в ядро нестандартные изменения. Проверка нужна для сохранения ряда функций, которые были реализованы через изменение файлов ядра.
Чтобы проверить данные на вкладке «контроль целостности», нужно иметь лицензию Битрикс с проактивной защитой (например, это «Малый бизнес»). Введите пароль с проверочным словом в этой вкладке:
Контроль целостности файлов в Битрикс
Система высветит уведомление, вносились ли изменения в ядро. Как видно на изображении выше, Битрикс предлагает собрать информацию по файлам. Сделайте актуальный файл уже после обновления, чтобы вернуть данные в исходное состояние в случае взлома. Это необходимо, поскольку бэкап не всегда помогает восстановить взломанный сайт.
Этап 3. Проверка базы данных
В базе данных могут находиться битые таблицы. Это помешает обновить Битрикс. Проверить базу можно по следующим вкладкам:
Проверка базы данных в Битрикс
Результат проверки базы данных в Битрикс
Этап 4. Обновление Битрикс
Приближаемся к главному вопросу: как обновить Битрикс? Заходим на вкладку «Обновление платформы»:
Система обновлений Битрикс
Тут уже будут указаны необходимые для установки обновления. Нажимаем «Установить» и ожидаем завершения процедуры.
Следующий наш шаг – очистка кэша сайта. Это нужно во избежание проблем с отображением некоторых элементов сайта. Выполняется во вкладке «Автокеширование». Выбираем очистку и жмем «Все».
Очистка кэша
Проверка системы в Битрикс
Вы получите подробный отчет, в котором сможете изучить все по пунктам. При наличии каких-либо проблем не стоит решать их самостоятельно. Обратитесь к специалисту по Битрикс или напишите в техническую поддержку.
Этап 5. Завершение обновления
Сделайте еще одну резервную копию веб-ресурса, чтобы сохранилась уже обновленная версия. После этого зайдите на свой сайт в режиме Инкогнито – желательно с разных браузеров. Внимательно изучите, корректно ли отображаются разные функции сайта – будь-то корзина, конверсионные элементы, различные кнопки и т.д.
Не забудьте проверить обновление Битрикс на мобильном устройстве. В Android и IOS о новой версии пользователь узнает из пришедшего уведомления.
Новая версия при этом загрузится автоматически.
Можно ли откатить обновление битрикс?
Предположим, вы обновили Битрикс до новой версии. После нескольких дней пользования вы решили сделать откат, поскольку новая версия вас чем-то не устроила. Но что делать, если за время пользования на портал были загружены новые документы, пользователи и прочие данные?
Вы можете восстановить старую версию при помощи бэкапа. Однако, при откате на бэкап сохранить данные, которые были накоплены за время работы сайта на новой версии не получится.
Что делать, если не все обновления доступны?
При попытке обновления модуля Битрикс могут возникать самые разные проблемы. Большинство из них связано с отсутствием лицензии. Проверить ее наличие можно в административном разделе сайта, в разделе «Обновление продукта». Там есть строка «Редакция продукта». Второй вариант – введение лицензионного ключа с коробочной версии.
Если с лицензией все в порядке, но часть обновлений все еще недоступна, придется обратиться в техническую поддержку Битрикс.
В данной статье я бы хотел рассмотреть проблему обновления 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 проста в первоначальной настройке. Однако рекомендовать это решение, можно разве что для простых проектов.
Рассказываем, как восстановить сайт с помощью резервного копирования 1С-Битрикс и панели управления хостингом.
Перед переносом сайта на новый хостинг или предоставления доступа разработчику нужно сделать копию сайта. Сохранить ее у себя, и в случае ЧП восстановить сайт в виде до начала работ.
Резервные копии создаются на уровне 1С-Битрикс и хостинга.
В 1С-Битрикс предусмотрено сохранение резервных копий в Облако.
Система бесплатно предоставляет место для хранения 3 резервных копий на каждую активную лицензию.
Объем пространства зависит от лицензии.
Нужно учитывать, что доступ к копиям осуществляется по лицензионному ключу и паролю. Без знания пароля никто, включая коллег из «1С-Битрикс», не сможет получить доступ к данным.
Перейдите в Настройки → Инструменты → Резервное копирование → Список резервных копий.
Если последняя копия создана в облако 1С-Битрикс, кликните на «Восстановить».
Если вы хотите восстановить сайт из локальной копии, то выберите нужную и скачайте или восстановите ее. Скачанную копию нужно будет загрузить в корневую папку нового сайта.
На хостинге Reddock предусмотрено резервное копирование на удаленный FTP-сервер. Наличие копий можно посмотреть в панели управления услугой в разделе Инструменты → Резервные копии.
Хранение копий на удаленном FTP-сервере позволяет не только создать бэкапы без потерь и частично их восстановить, но и возобновить сайт, если основной сервер недоступен. По умолчанию сохраняются файлы и базы данных сайта, настройки аккаунта и личные файлы, которые хранятся на хостинге.
Восстановление данных из резервных копий происходит в панели управления хостингом. Мы подготовили подробные инструкции в Справочном центре.
Защититесь от непредвиденных ситуаций — проверьте актуальность резервных копий сайта сегодня и убедитесь в наличии доступа к важной информации. Желаем бесперебойной работы вашему проекту!
Читайте также: