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

Казалось бы, все, сайт пропал бесследно, как в воду канул. Но, в те далекие времена у меня хватило благоразумия делать регулярные резервные копии сайта, благо, под WordPress имеются несколько плагинов для этой цели. Удобных и относящихся к разряду “must have”.

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

1
cifero_wrdp1_wp_20100225_594.sql.gz
. Из расширения этого файла видно, что это архивированная (о чем говорит расширение
1
.gz
) база данных (расширение
1
.sql
). Цифры
1
20100225
- это дата, когда было выполнено резервное архивирование - 25 февраля 2010 года, а
1
cifero
- это домен, на котором когда-то располагался данный сайт.

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

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

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

1
front-end
, в частности) восстановлен не был, что привело к так называемому “белому экрану смерти”. Стоит также оговориться, что, возможно, существуют команды
1
sql
и правки резервной копии базы данных, с помощью которых можно “напрямую” восстановить статьи, не заморачиваясь с phpMyAdmin и WordPress. Но для автора такие команды неизвестны, а способ, приведенный ниже, является более наглядным и простым.

Мною был скачана свежая версия CMS WordPress - 3.5. Но только скачана - не установлена. Данный шаг будет в дальнейшей последовательности действий самым последним.

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

1
cifero.ru
.

  1. Запускаю локальный сервер Denwer. Это можно сделать разными способами, но если установка происходила в точности по инструкциям самого пакета, то на Рабочем столе должны быть три ярлычка - “Start Denwer”, “Restart Denwer”, “Stop Denwer” - которые запускают, перезапускают или останавливают Denwer. Я такими ярлычками и воспользовался, щелкнув мышью на ярлыке “Start Denwer”. На несколько секунд мелькнет и пропадет окно терминала, а в панели задач появится значок Denwer’а, говорящий о том, что локальный сервер запустился и готов к работе:

Локальный сервер Denwer

  1. Вторым шагом мне необходим доступ к базам данных локального сервера. В состав пакета Denwer входит графическое приложение phpMyAdmin, с помощью которого очень удобно работать с базами данных MySQL. Иногда в Интернет встречается сокращенное название этого приложения -
    1
    
    pma
    
    . Так как сервер уже запущен, то я захожу в панель управления базами, набрав к адресной строке браузера (любого - это дело вкуса и дела совсем не меняет) -
    1
    
    http://localhost/tools/phpmyadmin/
    
    . Откроется окно phpMyAdmin, в левой половине которого будет список уже имеющихся баз данных, созданных во время инсталляции локального сервера:

Список баз данных в phpMyAdmin

  1. Теперь необходимо создать новую базу данных, в которой и будет развернуты резервные копии таблиц сайта
    1
    
    cifero.ru
    
    . Стоит заранее оговориться, что база данных будет в нашем случае создана пустой, таблиц в ней не будет. Последние будут взяты из backup’а. Итак, перехожу на вкладку “Базы данных” и создаю новую, введя в поле нужное мне имя -
    1
    
    cifero
    
    . На самом деле имя может быть любым. Нажимаю кнопку “Создать”. База данных
    1
    
    cifero
    
    появляется в списке:

Созданная база данных cifero

  1. Перед импортом резервной копии базы данных необходимо отметить один момент. Доменное имя, на котором находился когда-то сайт, нужно поменять. Ведь в таблицах резервной копии везде прописана ссылка на
    1
    
    http://cifero.ru
    
    , а в нашем случае копия будет восстанавливаться на домене
    1
    
    cifero.lc
    
    . Также в таблицах необходимо исправить имя базы данных - она также изменилась и теперь называется
    1
    
    cifero
    
    . Можно также изменить и пароль пользователя, но проще это сделать уже потом, после импорта в phpMyAdmin.

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

Итак, в первую очередь, распаковываю резервную копию

1
cifero_wrdp1_wp_20100225_594.sql.gz
. В результате получился файл довольно приличного размера - около 4Мб. По своей сути он представляет из себя обычный текстовый файл, который можно и нужно открыть в любом редакторе.

  1. Запускаю его в AkelPad и начинаю правку. Нахожу строчку Database:
    1
    
    cifero_wrdp1
    
    (она находится в самом начале файла, тут проблем не возникает) и меняю ее значение на Database:
    1
    
    cifero
    
    . Все - имя базы данных исправлено. Теперь необходимо найти все ссылки вида
    1
    
    http://www.cifero.ru/
    
    ,
    1
    
    http://cifero.ru
    
    и заменить их на
    1
    
    http://cifero.lc
    
    . Для этого воспользуюсь автоматизированным инструментом поиска и замены в редакторе AkelPad, иначе вручную эта операция может занять неизвестно сколько времени:

Правка резервной копии сайта

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

1
cifero.ru
. Но в версии WordPress, которую я буду устанавливать на локальном хостинге Denwer, их не будет. Этот факт приведет к эффекту так называемого “белого экрана смерти” в WordPress. То есть, при вводе в адресной строке браузера
1
http:/cifero.lc/
страница откроется, но изображено на ней ничего не будет - она будет пуста, как чистый лист бумаги. Но для меня данный факт не является критичным. В мою задачу, как уже говорилось ранее, входит восстановление статей, но не самого сайта.

Теперь можно импортировать таблицы в созданную пустую базу данных

1
cifero
.

  1. Захожу в эту базу данных (для этого достаточно кликнуть одинарным щелчком мыши на самом названии этой базы в списке) и вижу, что она действительно пустая, о чем говорит надпись “Таблиц в базе данных не обнаружено”. Но я их и не собираюсь создавать - они у меня уже есть, только в резервной копии. Мне нужно только их импортировать из ранее скачанного
    1
    
    backup
    
    ‘а в базу данных
    1
    
    cifero
    
    . Для этого перехожу на вкладку “Импорт” и выбираю файлик
    1
    
    cifero_wrdp1_wp_20100225_594.sql
    
    :

Импорт базы данных cifero

Нажимаю кнопку ОК в самом низу окна. Начнется процесс импорта. И тут же возникает ошибка:

Импорт в базу данных успешно завершен

Это говорит о том, что в настройках Denwer имеется ограничение по размеру загружаемого файла, моем случае это

1
cifero_wrdp1_wp_20100225_594.sql
. Основной файл настроек Denwer’а -
1
php.ini
, а параметр, отвечающий за размер загружаемого файла -
1
upload_max_filesize
.

Расположение файла

1
php.ini
я не знаю (а если и знал, то забыл), поэтому проще всего найти его с помощью инструмента поиска TotalCommander:

Ищем файл php.ini

Перехожу к найденному

1
php.ini
с помощью кнопки “Перейти к файлу” и открываю его в текстового редакторе (может быть любым, но лучше специализированный - Notepad++ или AkelPad). Теперь необходимо найти параметр
1
upload_max_filesize
. Для этого опять воспользуюсь инструментом поиска, но уже текстового редактора (у меня это AkelPad):

Находим параметр upload_max_filesize

Вижу, что значение по умолчанию для этого параметра равно 2Мб. Мой распакованный файл резервной копии

1
sql
имеет размер 3,88Мб. Поэтому меняю параметр
1
upload_max_filesize
на 8Мб (с запасом). Сохраняю изменения в файле
1
php.ini
и обязательно не забываю перезапустить Denwer, чтобы изменения вступили в силу.

Снова пробую импортировать таблицы в базу данных

1
cifero
. На этот раз операция проходит успешно:

Успешный импорт таблиц в базу данных

Осталась последняя операция с таблицами в базе данных. Так как ни имени пользователя, ни пароля к нему я не помню (давно уже это было), то необходимо изменить хотя бы пароль для входа в административную часть сайта. Открываю в phpMyAdmin базу данных

1
cifero
(если она еще не открыта) и в левом списке нахожу таблицу
1
wp_users
. Открываю ее и вижу одну единственную строку, в которой прописана учетная запись в WordPress, под которой я размещал статьи.

Нажимаю на ссылку “Изменить” для входа в редактирование учетной записи. Появится небольшая табличка с десятью строками. Мне необходима строка

1
user_pass
. В столбце “Функция” из раскрывающегося списка выбираю алгоритм шифрования MD5. В поле столбца “Значение” прописан предыдущий пароль в зашифрованном виде. Очищаю это поле и ввожу туда новый пароль, пусть это будет
1
123
:

Изменяем пароль пользователя WordPress

Логин пользователя -

1
gughai
- оставляю без изменений, только выписываю его отдельно, чтобы снова не забыть. Нажимаю кнопку ОК для сохранения внесенных в таблицу
1
wp_users
изменений. Опять перезапускаю Denwer.

  1. Половина дела сделана. Теперь осталось только установить саму систему управления контентом WordPress. При установке созданная мною база данных подключится к этой CMS.

Открываю файловый менеджер (для меня удобнее всего работать с Total Commander), перехожу на локальный диск Z, созданный и запущенный программой Denwer. В Total Commander последовательно создаю директории для будущей локальной копии сайта

1
cifero
. Сперва создаю директорию
1
homecifero.lc
, затем еще одну вложенную директорию
1
homecifero.lc\www
.

Распаковываю скачанный WordPress версии 3.5 по пути

1
z\:homecifero.lc\www
. Проще всего это сделать таким образом. Открыть архив в WordPress в другой панели Total Commander, выделить все содержимое архива Ctrl+A и перетащить выделенные файлы мышью в противоположную панель Total Commander. Программа спросит, распаковывать ли такие-то файлы в указанное место. Соглашаюсь и через пару секунд разархивация и копирование будут выполнены:

Распаковка WordPress на Denwer

  1. Перезапускаю Denwer с помощью ярлыка “Restart Denwer” на “Рабочем столе”. Это необходимо для того, чтобы все изменения, внесенные мною - создание базы данных

    1
    
    cifero
    
    и импорт в нее таблиц - вступили в силу.

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

    1
    
    http://cifero.lc
    
    и жму Enter. Установка WordPress начата:

Установка WordPress - шаг первый

Соглашаюсь с пошаговым мастером и нажимаю кнопку “Создать файл настроек”. После успешного создания файла настроек

1
wp-config.php
откроется окно, которое является вторым шагом при установке WordPress. Оно не требует ввода каких-либо данных. Просто жму кнопку Вперед.

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

1
cifero
. Воспользовался учетной записью
1
root
, созданной пакетом Denwer по умолчанию. Так как для этой учетной записи не установлен пароль, то в поле ввода “Пароль” просто стер предыдущее значение и оставил его пустым:

Подключение базы данных к WordPress

Два последних поля ввода можно оставить без изменений, так как сервер базы данных и так располагается локально

1
localhost
, а префикс подключаемой базы данных имеет точно такое же значение
1
wp_
.

Жму отправить. Мастер установки отрапортует, что все в порядке, указанные мною данные верны и существующая база данных

1
cifero
успешно подключена. Можно запускать установку WordPress. Нажимаю кнопку “Запустить установку”.

В браузере появиться сообщение о том, что: “Вы уже установили WordPress. Для переустановки, пожалуйста, сначала очистите старые таблицы в базе данных”. Нажимаю на кнопку Войти. Откроется обычное окно для входа в административную панель WordPress. Ввожу логин пользователя -

1
gughai
, и пароль (который я изменил) -
1
123
.

Откроется еще одно окно с предупреждением о том, что необходимо обновить базы данных:

Обновление базы данных

Соглашаюсь с предложением. После сообщения о том, что: “База данных WordPress успешно обновлена!” жму кнопочку Продолжить.

Откроется панель администратора WordPress. Красным будет ярко высвечена надпись о том, что: “ОШИБКА: Директория тем либо пуста, либо не существует. Убедитесь, что дистрибутив установлен полностью”. Что же, данный факт, помимо отсутствия плагинов, будет причиной белого экрана сайта.

Перехожу в пункт меню “Записи” и вижу то, ради чего все и затевалось - записи, записи, записи. Вверху шапка сайта с таким романтическим названием:

Восстановленные записи

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

На этом все.


Ошибка с версией Node.js

Довольно часто в своей практике сталкиваюсь с такой ошибкой, когда запускаю локально сторонний проект:```bash$ npm run start> dom-moving-...… Continue reading

Mangling Angular

Published on February 15, 2024

Constructor parameter without access modifier

Published on February 04, 2024