Печать

Занятие 12. Перенос сайта на другой хостинг

Рейтинг:   / 0
ПлохоОтлично 

Эта тема актуальна всегда, прежде всего в силу того, что настроение вашего провайдера нередко бывает непредсказуемо, что в договоре о предоставлении услуг (в нашем случае - хостинга) обычно прописывается сакраментальной фразой типа: «об одностороннем изменении условий договора пользователь хостинга будет уведомлен владельцем по электронной почте». На сто процентов подобные изменения касаются выгоды владельца и, соответственно, материального ущерба для клиента. В таких случаях сайт берется со старого хостинга и переносится на хостинг с более привлекательными условиями. Если бы мы имели дело с обычным html-ным сайтом, проблемы бы не существовало: все бы ограничилось простым копированием файлов и папок сайта со старого хостинга на свой компьютер и затем со своего компьютера - на новое место.

Сайт на Joomla требует к себе более тонкого отношения. Все действия по переносу сайта делятся на несколько шагов (этапов):

  1. Копирование всех файлов и папок сайта на винчестер своего компьютера
  2. Создание дампа базы данных (текстовый файл, в который вписана структура базы данных и все данные) сайта и сохранение его на винчестер.
  3. Копирование всех файлов и папок сайта с винчестера своего компьютера на новый хостинг
  4. Создание пустой базы данных на новом хостинге посредством панели управления хостингом
  5. Заливка в эту базу дампа базы данных вашего сайта.
  6. Правка файла configuration.php
  7. Тестирование сайта
  8. Правка файла .htaccess согласно результатам тестирования и советам службы техподдержки провайдера (на некоторых хостингах этого делать не надо, т.к. системные администраторы уже обо всем позаботились)

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

А понять тут нужно следующее. Сайт хранит свои данные в базе данных. Поэтому нужно перенести на новый хостинг и сайт, и его базу данных в виде дампа. База данных без данных, то бишь, совершенно пустая, создается с помощью панели управления хостингом. При этом часто пользователь не вводит старые логин и пароль, а соглашается с предложенными системой. Соединяется сайт с базой данных (когда мы набираем его адрес в браузере) посредством логина и пароля, которые считывает из файла configuration.php, лежащего в корне сайта. Логин и пароль позволяют войти в базу и вынести из нее все данные в браузер, чтобы пользователь вообще увидел ваш сайт. Если логин и пароль в свежесозданной базе данных будут новыми, а в configuration.php остались старые, понятно, что ни о каком соединении сайта с базой не может быть и речи. И пользователь увидит вместо вашего сайта строчку предупреждения на английском языке о том, что не удалось соединиться с базой данных. Именно поэтому придется править configuration.php, внеся в соответствующие его строки новые логин и пароль. А правка файла .htaccess нужна, если в нем по умолчанию не прописаны директивы сервера, необходимые именно для вашего сайта, ведь сервер информацию, как отображать ваш сайт, читает именно из этого скрытого файла. Скажем, если там явно не указана кодировка для считываемой из базы данных информации, а по умолчанию используется, например, cp 1251 (а вам нужно utf8), то текст на вашем сайте будет отображаться только в виде кракозябров или вопросительных знаков. Пока вы эту особенность не пропишете в .htaccess, используя адекватный синтаксис, кракозябры будут мозолить вам глаза и нервы. О том, как это прописывается, расскажем попозже.

Вот, собственно, и вся теория.

Поехали!

Копирование всех файлов и папок сайта на винчестер своего компьютера

Это делаем, используя ftp-протокол и ftp-клиент (мы уже знаем с вами из прежних постов, что такое FileZilla). Причем, если интернет соединение слабенькое, то не копируем сразу весь сайт, а по частям, - так больше вероятности, что будет меньше ошибок при копировании, ведь соединение может часто прерываться. Лучше, конечно, для этого использовать специальные утилиты типа JoomlaPack, которой был посвящен предыдущий пост. Но если у вас недостаточно места на старом хостинге, чтобы разместить на нем копию вашего сайта, остается только уповать на ftp-клиента. Кроме того, во многие панели управления хостингом встроены утилиты для резервного копирования сайта. Этот вариант тоже не надо упускать из виду. Универсального рецепта для этого нет, поскольку утилиты в разных панелях – разные. Каждому придется самостоятельно апробировать возможности своей панели.

Создание дампа базы данных сайта и сохранение его на винчестер

Используем JoomlaPack. В админке - «Компоненты - JoomlaPack». Жмем “Конфигурация”. В “Настройки профиля” выбираем “Простая” и в поле “Тип резервной копии” выбираем “Только база данных главного сайта”. Сохраняемся и жмем “Сделать резервную копию”. Процесс будет происходить точно так же, как и при полном бэкапе сайта (см. прошлое занятие), только намного быстрее, так как объем базы данных всегда меньше объема сайта. В результате в папке, определенной нами под бэкап, будет лежать файл с длинным названием, в которое будет входить название вашего сайта, и с расширением .sql. Это и есть дамп базы данных нашего сайта. Копируем его на винчестер своего компьютера через ftp-клиент. Желательно где-то рядом с копией сайта. Чтоб не потерять.

Копирование всех файлов и папок сайта с винчестера своего компьютера на новый хостинг

С этим, думается, проблем быть не должно. Используя логин и пароль для ftp-доступа, выданные вам провайдером, (или через панель управления хостом), соединяемся со своим хостом. Находим папку public_html и закачиваем в нее содержимое вашего сайта. Если панель управления хостом позволяет распаковывать архивы, то лучше все файлы и папки своего сайта сначала заархивировать, скопировать архив на новый хостинг, а там уже средствами панели распаковать. При слабом соединении это заметно ускорит процесс, так как архив значительно меньше оригинала по объему.

Создание пустой базы данных на новом хостинге посредством панели управления хостингом

Здесь трудно давать пошаговые инструкции, поскольку у разных провайдеров могут быть разные панели управления вашим хостингом. Однако логика работы с такими панелями, собственно, практически идентична. Вы должны понимать, что именно вы хотите делать, и, исходя из этого, «осматриваться» внутри вашей панели в поисках соответствующих вашим желаниям кнопок. База данных, используемая для сайта под управлением joomla, носит название MySQL, поэтому и на кнопке по работе с ней в панели управления хостингом обязательно должно присутствовать что-то подобное. Жмем. Находим кнопку «Создать базу данных», она уж точно обязательно есть. Либо сразу, либо в последующем за этим диалоговым окне от нас потребуется ввести имя базы данных, пароль, имя пользователя базы данных и имя сервера, на котором эта база будет лежать (здесь обычно указываем localhost). Напрягаем фантазию и заполняем эти поля. Не забываем в поле «Имя пользователя базы данных» указать тот логин, под которым вы входите в панель управления хостингом, чтобы не запутаться потом (хотя можете вводить и иное имя, только потом в конфигурационном файле вашего сайта в соответствующей строке не забудем вписать именно его, а не логин для входа в панель). Больше ничего заполнять не нужно. Жмем тривиальный «Ок». Спустя секунду вас уведомят о создании новой пустой базы данных. В нее-то нам и нужно залить информацию из созданного нами накануне дампа своего сайта.

Заливка в пустую базу данных дампа базы данных вашего сайта

Это можно делать и средствами панели управления хостингом, и с помощью утилиты phpMyAdmin, которую можно скачать и установить (просто распаковать архив и полученную папку бросить в корень вашего сайта).

Набираем в браузере http://адресвашегосайта/phpMyAdmin/ и в появившемся окне авторизации авторизуемся, т.е. вводим логин и пароль от созданной нами пустой базы данных. Входим.

Так выглядит окно программы после осуществления входа.

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

 

На рисунке видна структура базы данных, в которую попадаем. В вашем случае, той таблицы, что вы видите на этом рисунке, не будет – ваша база пока пуста, в отличие от этой. Но не в этом суть. Суть в том, как загрузить сюда из файла с дампом всю информацию с вашего сайта. В верху таблицы видим несколько кнопок меню, жмем ту из них, на которой написано «Импорт», ведь мы собираемся именно импортировать в эту базу содержимое другой. Находим поле «Импортируемый файл» и в нем видим кнопку «Обзор». Кнопка удивительно знакомая. Остается, нажав ее, выбрать файл дампа, который вы бережно храните на своем компьютере. И нажать кнопку «Ok». Обратите внимание, файл дампа не должен превышать 2 Mb.

Если файл больше, его нужно будет импортировать методом копипастинга, т.е. открыть файл дампа в Блокноте и, последовательно выделяя содержимое, копируя его – вставлять в текстовое поле, которое откроется при нажатии кнопки «SQL» в вашей базе и нажимать всякий раз после вставки «Ok». Только нужно знать, где останавливать границу выделения в файле дампа, ведь непонятная на взгляд пользователя абракадабра, имеющаяся в нем, тем не менее, подчиняется жестким законам синтаксиса языка MySQL. Скопируете в середине «предложения» и данные перенесутся неправильно.

Файл дампа выглядит так:

 

Суть этой абракадабры такова: отдается сначала команда создать таблицу с определенным именем в существующей базе данных (CREATE TABLE IF NOT EXISTS….), а затем команда загрузить в созданную таблицу собственно ее данные (INSERT INTO….) по определенному порядку. Так вот копирование данных дампа нужно заканчивать после команды загрузки и ее содержимого, как раз перед началом команды создания следующей таблицы. Проще ориентироваться на слова: «Структура таблицы ‘название таблицы на латинице’». Перед ними и завершаем копирование, а далее копируем уже от них. И так, пока постепенно не перенесем весь дамп в нашу новую базу данных.

Но для учительского сайта дамп больше 2 Mb маловероятен – не так много на нем располагается информации, ведь 2 Mb – это примерно 600 страниц печатного текста. Редкий сайт может похвастаться таким обилием информации.

Правка файла configuration.php

Файл configuration.php выглядит так:

<?php
class JConfig {
var $offline = '0';
var $editor = 'tinymce';
var $list_limit = '20';
var $helpurl = 'http://help.joomla.org';
var $debug = '0';
var $debug_lang = '0';
var $sef = '1';
var $sef_rewrite = '1';
var $sef_suffix = '1';
var $feed_limit = '10';
var $secret = 'СЕКРЕТНОЕ СЛОВО';
var $gzip = '0';
var $error_reporting = '-1';
var $xmlrpc_server = '0';
var $log_path = 'ПУТЬ ДО ПАПКИ logs';
var $tmp_path = 'ПУТЬ ДО ПАПКИ tmp';
var $live_site = '';
var $offset = '0';
var $caching = '0';
var $cachetime = '15';
var $cache_handler = 'file';
var $memcache_settings = array();
var $ftp_enable = '0';
var $ftp_host = '127.0.0.1';
var $ftp_port = '21';
var $ftp_user = 'ЛОГИН ДЛЯ FTP-ВХОДА';
var $ftp_pass = 'ПАРОЛЬ ДЛЯ FTP-ВХОДА';
var $ftp_root = '';
var $dbtype = 'mysql';
var $host = 'localhost';
var $user = 'ИМЯ ПОЛЬЗОВАТЕЛЯ БАЗЫ ДАННЫХ';
var $db = 'ИМЯ БАЗЫ ДАННЫХ';

var $dbprefix = 'jos_';
var $mailer = 'mail';
var $mailfrom = 'АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ';
var $fromname = 'ИМЯ САЙТА';
var $sendmail = 'ПУТЬ ДО ПРОГРАММЫ sendmail';
var $smtpauth = '0';
var $smtpuser = '';
var $smtppass = '';
var $smtphost = 'localhost';
var $MetaAuthor = '0';
var $MetaTitle = '1';
var $lifetime = '15';
var $session_handler = 'database';
var $password = 'ПАРОЛЬ ОТ БАЗЫ ДАННЫХ';
var $sitename = 'ЗАГОЛОВОК САЙТА';
var $MetaDesc = 'META DESCRIPTION';
var $MetaKeys = 'МЕТА КЛЮЧЕВЫЕ СЛОВА';
var $offline_message = 'Сайт сейчас закрыт на техническое обслуживание. Пожалуйста зайдите позже.';
}
?>

То, что выделено красным, нужно заполнить своими данными, удалив старые, со старого хостинга, теми данными, что использовали при создании новой базы данных. Как это делается? Копируете из корня сайта на Рабочий стол, открываете Блокнотом, изменяете, сохраняете изменения, забрасываете обратно на сайт, ставите на этот файл права 644. Будьте предельно внимательны: одна ошибка и соединения с базой не будет происходить!

Тестирование сайта

Просто набираем адрес сайта в браузере и смотрим, что получилось. Если сайт не открылся, а вверху пишет что-то типа «Cannot connect to database», значит, вы неправильно ввели нужные значения в файл configuration.php. Еще раз внимательно перепроверьте. Если сайт открылся, но вместо букв текста вы видите неведомые кракозябры или просто одни вопросительные знаки, то вам нужно выполнить следующий пункт.

Правка файла .htaccess

Хороший мануал для правки этого файла (кстати, он у вас изначально называется htaccess.txt, но его лучше в целях безопасности переименовать в .htaccess) содержится в самом этом файле. На большинство случаев жизни там прописаны адекватные инструкции как и что делать. Просто откройте его и внимательно изучите. Единственно, поясню – комментировать строку кода означает поставить перед ней знак решетки (#).