Здравствуйте, друзья.
Сегодня на повестке довольно прагматичная, но, весьма интересная тема - создание точной копии online-блога на локальном компьютере. Несмотря на то, что в Интернете данная тема изъезжена вдоль и поперек, найденное решение поразило меня своей простотой и удобством. Об этом и поговорим.
Казалось бы, зачем изобретать заново велосипед и усложнять себе жизнь, когда есть Denver и иже с ним приблуды?! Согласен, были и у меня такие мысли. Тем не менее, есть одно НО! Denver хорош, только на начальном этапе, когда можно поднять "голую" версию той или иной CMS и в ознакомительных целях, методом научного тыка постигать ее. Когда же есть потом и кровью созданное детище, с кучей контента, плагинов и других extended features, все уже выглядит не столь очевидным.
Возникает два логических вопроса: как "слить" имеющуюся CMS и чем ее подымать локально? Разумеется, без ответов я их не оставлю. На деле все очень просто.
ВАЖНО! Операция создания образа online-блога потребует дополнительного места на Вашем хостинге (порядка 600 Мб, в зависимости от степени Вашей активности), поэтому, учитывайте этот факт в дальнейшем.
Из инструментария нам понадобятся:
- Duplicator [Скачать Duplicator, 753 Кб];
- DesktopServer [Скачать DesktopServer, 6.1 Мб].
Duplicator активируем, т.к. он понадобится сразу, а с DesktopServer разберемся чуть позже - я объясню, как с ним работать. Итак, готовы? Поехали.
Шаг А: заходим в настройки Duplicator. Его раздел появился под Settings'ами WordPress'a. В основном окне появится предупреждение о несовместимости пакетов из старых версий, но, оно нас не интересует. Переходим на вкладку Create New.
Шаг Б: вкладка Create New переключает на 3-шаговый Wizard для создания образа. Однако, первый Fail (и, скорее всего, единственный) уже значится напротив Requirements. Раскрыв меню видно, что фэйлятся Permissions. Чтобы исправить данную ошибку, заходим в файл-менеджер на своем хостинге и папке public_html (корень блога - та папка, в которой находится сам WordPress) ставим права доступа 777.
ВАЖНО! Установка прав доступа 777 для любой папки - крайне рискованный шаг, т.к. он ставит под угрозу безопасность блога. Поэтому, после завершения процесса создания образа, необходимо вернуть корню старые пермиссии.
Да, рискованно, но, вряд ли за время создания пакета блог успеют взломать :-D После установки прав доступа, обновляем страницу Duplicator, на которой должно радостно загореться зеленое Pass напротив Permissions. Получилось? Отлично. Плагин дополнительно создаст свои служебные папки, которые в конце можно будет удалить. Здесь же в разделе Package можно указать краткое имя для пакета (рекомендую именно так и сделать), а также описание (например, если предполагается генерировать несколько копий). Остальные настройки пока не нужны. Когда все готово, кликаем внизу Next.
Шаг В: после нажатия Next, Duplicator некоторое время будет сканировать блог, после чего выдаст отчет о том, что Scan Complete и он готов к созданию образа.
В отчете будут указаны приблизительные размеры конечного "слепка" и базы данных, поэтому, еще раз удостоверьтесь в наличии необходимого количества мегабайт на хостинге. Кстати, у меня отказались работать фильтры, призванные уменьшить размер конечного образа, поэтому, локальный блог будет точной копией исходного. Несколько предупреждений в отчете (например, как у меня в разделе Files) можно проигнорировать, т.к. они оповещают о том, что я сказал строкой выше. Жмем Build.
Процесс создания образа блога занимает порядка 2-3 минут, финальный отчет укажет на то, что было создано два файла: installer.php и Archive.zip.
Сохраняем их в удобном месте. На этом работа Duplicator завершена и больше он не понадобится.
Переходим ко второму этапу - настройке DesktopServer.
Шаг 1: Переносим папку xampplite в корень диска С:
Шаг 2: Из папки xampplite запускаем DesktopServer.exe. Выбираем Create a new development website. Кликаем Next.
Шаг 3: Прописываем название для локального блога и выбираем папку на винчестере для его хранения. Кликаем Create.
Программа инициирует процесс создания конфигурационных файлов и где-то через минуту сообщит о завершении. Кликаем Next.
ВАЖНО!
На 3 шаге, после того, как программа начнет процесс создания конфигураций, возможно прерывание установки и появление ошибок.
Причина - "недоступность" hosts для программы.
Решение - снять атрибуты "только чтение" и "скрытый" в свойствах файла.
Адрес Hosts: C:\Windows\System32\drivers\etc\
Далее будет сказано, что процесс установки WordPress необходимо завершить, пройдя по ссылке http://адрес-сайта.dev/wp-admin/install.php
. Мы делать этого не будем по очевидным причинам. Пытливые умы, тем не менее, могут залезть в браузер по данной ссылке и удостовериться, что локальный сервер работает и ждет продолжения установки WordPress.
C DesktopServer пока закончили. Переходим к интересному и самому ответственному этапу - "привязке" реального блога к серверу.
Открываем папку sandbox-блога, которую указывали на 3 шаге при настройке DesktopServer'a. В ней ищем файл wp-config.php
и перемещаем его в любое другое место (например, где сохранены файлы Duplicator). Остальные файлы удаляем.
Открываем папку, в которой были сохранены файлы Duplicator'a: installer.php и zip-архив самого блога и переносим их в папку sandbox-блога.
В браузере прописываем адрес: http://адрес-сайта.dev/installer.php
. Появится страница-установщик Duplicator'a.
Открываем блокнотом wp-config.php
, который ранее перемещали в "безопасное" место. Заполняем поля установщика Duplicator'a данными из конфига. Должно получиться нечто вроде такого:
- Host - localhost]
- User - define('DB_USER', 'santaagaDBqke3z');
- Password - define('DB_PASSWORD', '2aMAI7cOwi');
- Name - define('DB_NAME', 'santaagaDBqke3z');
Имена юзера и базы данных совпадают, поэтому, 2-е и 4-е поля заполняются одинаковыми копипастами.
Когда все готово, можно нажать Test Connection, чтобы удостовериться, что Duplicator обладает нужными данными. Появится небольшое окно, в котором будет отображено два зеленых Success.
Закрываем окно, выставляем галку под Warnings & Notices и жмем Run Deployment. На всплывающем Continue installation нажимаем Ok. Пойдет процесс развертывания локальной копии блога, который может занять до 5 минут.
На втором этапе (обновление ссылок) программа сообщит, что доменные имена сменятся на .dev.
Жмем Run Update. После небольшого ожидания, программа сообщит о завершении и выдаст финальный report с n-ным количеством warning'ов. Не обращаем внимания, закрываем вкладку.
Теперь можно прописать в адресной строке http://адрес-сайта.dev
и обрадоваться тому, что теперь вся наша онлайн-версия блога ютится в одной папке на компьютере.
Плюсы данного подхода очевидны:
- Тестирование блога на предмет работоспособности нового кода не затрагивая онлайн-версию;
- Проверка и отладка новых фич, плагинов, тем и др.;
- Обновление в safe-режиме;
- Возможность издеваться 24/7 над собственным блогом :)
Думаю, каждый найдет свои причины установки локального сервера, я лишь привел наиболее "мотивирующие" и поделился одним из методов достижения этой цели.
P.S: В период тестирования DesktopServer'а я столкнулся лишь с одной проблемой, возникшей не так давно, когда при заходе как на http://localhost, так и по адресу sandbox-блога, я получал Page Not Found. В hosts не наблюдалось конфликтов, манипуляции с активным сайтом в DesktopServer не давали результатов. Когда мои варианты действий закончились, я обратился за помощью к Google.
Решение нашел на официальном форуме, буквально по первой же ссылке. Достаточно было выгрузить Skype из памяти и сделать рестарт Apache & MySQL Services.
DesktopServer представляет собой отличное средство для организации локального sandbox'a буквально в 2 клика. Duplicator оптимален для создания резервных аварийных копий блога, поскольку конечный Package содержит как базу данных, так и все файлы самого блога. Такой тандем, при грамотном использовании, позволяет забыть проблему отсутствия backup'ов в критические моменты, а также случаи непроизвольной порчи конфигурационных файлов.
Я давно искал простой способ переноса блога на локальную "базу", дабы иметь возможность свободно ковырять код шаблона и плагинов. Найденное решение оказалось простым (проще, чем я думал), но, крайне эффективным. Все обновления, которые вносились в онлайн версию с декабря месяца (о чем я писал в группе), сначала были тщательно отработаны на dev-"стенде" и только потом отшлифованы на оригинале.
Впереди есть еще пара серьезных задумок, которые на полпути к реализации и частично уже внедрены локально. Однако, из-за того, что часть features приходится писать с нуля, ввиду несовершенства существующих решений, а также физической нехватки времени, финализация постоянно откладывается. Но, как только я смогу найти оптимальные варианты, все они будут постепенно внедрены на данный блог. "Перегореть" не боюсь, т.к. идеи эти пилят мне мозг уже давно, вопрос только во времени.
На данной, почти оптимистичной ноте, разрешите откланяться. До новых статей.
Ваш покорный слуга.
Читайте также: альтернативная песочница - NAS Xtreamer e-TRAYz, примеряем на себя Flat File CMS.
Интересна ли для вас была статья? Осталось ли что-то неясным? Напишите в комментариях ниже.