28988 авторов и 62 редактора ответили на 85259 вопросов,
разместив 135226 ссылок на 43432 сайта, присоединяйтесь!

Как настроить резервное копирование по расписанию на дешёвом/бесплатном PHP хостинге?

РедактироватьВ избранноеПечать

Для небольших проектов бывает целесообразно использовать бесплатные/дешёвые хостинги.

 

Зачастую они не предоставляют нужного функционала резервного копирования. На бесплатных хостингах также актуальна проблема блокировки аккаунта по разным причинам без возможности загрузить данные, зачастую данные можно загрузить (заодно возобновив работу сайта) только оплатив платный тарифный план.

 

Этот недостаток можно исправить путём использования сторонних решений и cron. Решения не должны требовать ничего кроме PHP и модулей, поставляемых вместе с ним.

  • PHP-Backuperкомплексное решение для создания инкрементных резервных копий и загрузки их на удаленное хранилище. Представляет из себя фреймворк, операции осуществляются подключением плагинов. Есть 2 типа плагинов: Backuper и Uploader. Первые создают резервную копию, вторые сохраняют её в удаленном хранилище, например Dropbox или Яндекс.Диск. Комбинируя различные плагины, программист может построить систему резервного копирования содержимого сайта. Наиболее полезным плагином для загрузки на удаленное хранилище, на взгляд автора статьи, является WebDAVUploader, позволяющий загружать резервные копии на Яндекс.Диск, Box.com, SkyDrive, и прочие сервисы, использующие стандарт WebDAV. Также существуют сервисы, позволяющие производить загрузку на Google Drive, Dropbox, SugarSync и другие популярные хранилища в том числе через WebDAV.
  • SypexDumper — решение для качественного резервного копирования базы данных (SQL). Умеет копировать не только данные (в различных кодировках) и структуру, а также обладает удобным интерфейсом. Возможна интеграция в другие продукты.

Далее будет рассмотрена работа с PHP-Backuper.

Для начала следует удостовериться, что хостинг соответствует системным требованиям, перечисленным в файле README.

 

После этого следует определиться с необходимым функционалом.

 

Функциональность определяется сочетанием модулей.

 

На момент написания статьи были доступны плагины для создания инкрементной резервной копии файлов и неинкрементной резервной копии базы данных, а также для загрузки резервной копии на Dropbox и WebDAV-совместимые хранилища.

 

Далее будет разобран пример, в котором требуется создать резервную копию базы данных c именем test, а также файловой структуры папки ./test/ сайта и сохранить резервную копию в облачных хранилищах Dropbox и Яндекс.Диск. Это означает, что потребуются дополнительные зависимости: библиотеки SabreDAV — для загрузки на Яндекс.Диск по протоколу WebDAV и DropboxUploader — для загрузки на Dropbox.

 

Все зависимости (а также сам PHP-Backuper) должны находиться в подпапках одной папки (до тех пор, пока автор не реализует поддержку Composer и автозагрузки зависимостей).

 

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

 

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

 

Подробнее о конфигурации для каждого типа плагинов можно посмотреть в документации.

 

Обычно, конфигурация Uploaderа содержит элементы «login», «pass» и «dir», соответствующие имени пользователя, паролю и папке на удаленном сервере, в которую следует сохранять резервные копии.

 

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

 

После этого следует настроить расписание.

 

Для этого следует зайти в настройку задач cron панели управления хостингом и задать расписание, указав в качестве скрипта, который требуется выполнять, тот скрипт, который только что был написан. На разных хостингах это настраивается по-разному: где-то требуется добавит в начало скрипта shebang, где-то требуется указать в самом описании задачи путь к интерпретатору.

Последнее редактирование ответа: 09.11.2013

  • Оставить отзыв

    Оставить отзыв

РедактироватьВ избранноеПечать

Похожие вопросы

«Как настроить резервное копирование по расписанию на дешёвом/бесплатном PHP хостинге»

В других поисковых системах:

GoogleЯndexRamblerВикипедия

В соответствии с пользовательским соглашением администрация не несет ответственности за содержание материалов, которые размещают пользователи. Для урегулирования спорных вопросов и претензий Вы можете связаться с администрацией сайта genon.ru. Размещенные на сайте материалы могут содержать информацию, предназначенную для пользователей старше 18 лет, согласно Федерального закона №436-ФЗ от 29.12.2010 года "О защите детей от информации, причиняющей вред их здоровью и развитию". Обращение к пользователям 18+.