Если нужно править init.php, но страшно

Если нужно править init.php, но страшно

690
08.02.2014

Если нужно править init.php, но страшно завалить сайт и доступ есть только через админку ...

Увидел на хабре интереснейший пост.

Если нужно править init.php, но страшно завалить сайт и доступ есть только через админку ...

Увидел на хабре интереснейший пост. 

http://habrahabr.ru/sandbox/73956/

Проблема:

Cайт без доступа по ftp/ssh, редактировать файлы можно только через панель администратора Битрикса.

Если допустить ошибку при редактировании файла и сохранить его — Битрикс упадет.

Возможное решение:

Оно «в лоб», но может спасти нервы и время.

Суть в том, чтобы перед редактированием делать backup файла init.php, и в случае падения Битрикса свободно разворачивать этот backup обратно по HTTP — просто запросом.

Алгоритм решения:

  1. Загружаем в корневую папку сайта файл init_recovery.php
  2. Перед редактированием init.php в браузере набираем site.ru/init_recovery.php?action=backup. Таким образом мы создаем файл init.php_backup в /bitrix/php_interface/
  3. Редактируем init.php — сохраняем, если все ок и задачи выполнены, init.php_backup можно удалить.
  4. Если допущена ошибка и админка не загружается, набираем в браузере site.ru/init_recovery.php?action=recovery. После этого текущий init.php сохраняется под названием init.php_error (чтобы можно было подкорректировать ошибку потом, не удаляем этот файл), а файл init.php_backup переименовываем в init.php

Все довольны, все ок.

Сам скрипт:

$action = $_GET["action"];
if ($action == "backup"):
copy ($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php', $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php_backup');
    if (file_exists($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php_backup')):
        echo ('File created');
    else:
        echo ('File created error');
    endif;
elseif ($action == "recovery"):
    rename ($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php', $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php_error');
    rename ($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php_backup', $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php');
        if (file_exists($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/init.php_error')):
            echo ('Restore completed');
        else:
            echo ('Restore error');
        endif;
endif;

Источник: http://dev.1c-bitrix.ru/community/webdev/user/60622/blog/9650/


Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

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

captcha

Возврат к списку