На форуме достаточно много задается вопросов о переносе сайта с локального веб-сервера на хостинг и обратно и связанных с этим ошибок.
Решил поделиться информацией-руководством о том, как это сделать максимально правильно и безболезненно.
Много советов использовать Akeeba Backup, но я с этим продуктом не работал, у меня нет крупных сайтов, все переношу вручную, об этом и расскажу.
Наиболее популярным локальным веб-сервером является
денвер, используемый и мною, в качестве примера возьму его.
В качестве примера хостинга возьму
beget.ru и
ihc.ru - это те хостеры, с которыми мне приходилось работать достаточно плотно.
Предполагается, что Вы уже выбрали хостера, тарифный план, произведена регистрация личного кабинета и домена и (при необходимости) оплата.
Все ниже написанное относится к J3.x - на J2.5 не проверялось, т.к. я с ней не работаю.
С денвера на хостинг0-1. Вы разработали сайт, оттестировали и вылизали его, добились идеальной работы во всех популярных браузерах, и теперь готовы выложить его на хостинг. Вы уверены, что действительно готовы? А может еще раз все-все перепроверить?
0-2. Вы разрабатываете сайт, у Вас что-то не получается, вы задаете вопрос на форуме (либо где-то еще), а в ответ Вас просят показать сайт, чтобы помочь Вам решить вашу проблему. Тогда лучше не использовать основной домен, на котором будет окончательная версия сайта, а зарегистрировать специальный тестовый домен, подобрать хостера, предлагающего бесплатный хостинг для J - поверьте, он Вам не раз еще пригодится, если Вы желаете заниматься вашим сайтом профессионально.
Например, beget.ru предоставляет такой бесплатный хостинг с бесплатным доменом 2 уровня с именем %login%.bget.ru, где %login% - это Ваш логин в панель управления хостинга.
При этом, в админке J в общих настройках параметр "Мета-тег Robots" выставьте значение "No index, no follow" - это избавит ваш тестовый сайт от попадания в базы поисковиков.
1. Закрываем сайт на ТО (техническое обслуживание): в общих настройках "Сайт выключен (offline)"->"Да"->"Сохранить".
2. В общих настройках на вкладке "Сервер" значение параметра "Имя базы данных" копируем куда-нибудь в отдельный текстовик (или запоминаем его, если память хорошая).
3. Производим выход с сайта всех пользователей, как во фронте, так и в админке.
4. По ссылке
http://localhost/Tools/phpMyAdmin/ открываем phpMyAdmin, слева выбираем имя нужной базы данных (то, что копировали/запоминали в п.2), затем сверху выбираем "Экспорт", далее снизу жмем ОК. Никаких параметров изменять не нужно - все уже выставлено по умолчанию идеально. В загрузках появится файл
имя_базы_данных.sql. phpMyAdmin можно закрыть.
5. Упаковываем содержимое папки www (
папка_установки_денвера/home/url_сайта/www/) в zip-архив(!) - другие форматы упаковки, скорее всего, не будут доступны на хостинге, - например:
www.zip.
6. По ftp (подразумевается, что Вы знаете, как настроить ftp-подключение) заливаем архив в папку на хостинге, в которой будет храниться сайт. На beget.ru это
имя_домена/public_html/, на ihc.ru это
имя_домена/. На Вашем хостинге это может быть
имя_домена/www/ или
www/имя_домена/ - встречаются совершенно различные варианты, уточняйте в тп хостера.
Подавляющее большинство хостеров предоставляют в панели управления хостингом файловые или ftp-менеджеры, с помощью которых можно также залить файлы на хостинг. У beget.ru Это собственный файловый менеджер, ihc.ru использует популярный net2ftp.
7. Посредством файлового или ftp-менеджера, предоставляемого хостером, распаковываем на хостинге залитый архив. При этом
права на папки и файлы как правило выставляются автоматически:
755 и 644 (ihc.ru)
или 700 и 600 (beget.ru)
соответственно, но лучше их проверить, выборочно пробежавшись по папкам. Регистр файлов как правило также сохраняется.
8. В панели управления хостингом в разделе "Базы данных" (название может отличаться) создаем базу данных, имя только из латинских символов - лучше маленьких, - цифр и символа нижнего подчеркивания. Часть имени при этом может быть уже задана, например на beget.ru это "логин_". Придумайте пароль, не менее 8 символов длиной - меньше считается небезопасным, от символов кирилицы лучше воздержаться - на некоторых хостингах могут быть проблемы, например на masterhost.ru такое встречал.
9. Запустите phpMyAdmin из панели управления хостингом - обычно кнопка/ссылка запуска рядом с именем созданной базы данных. На ihc.ru в списке баз Вы увидите только ту, против которой кликали ссылку, она автоматически выбирается. На beget.ru Вы увидите все созданные Вами базы данных, даже если она одна - ее надо выбрать. На других хостингах поведение phpMyAdmin может отличаться. Когда база данных выбрана, выберите сверху "Импорт", нажатием "Обзор" выберите sql-файл (
имя_базы_данных.sql в загрузках), нажмите ОК. Если все прошло хорошо, phpMyAdmin Вам об этом скажет, иначе на красном поле выведет запрос, на котором споткнулся. Если Вы не разбираете в запросах - просите помощи в тп хостера или на форуме. Добивайтесь полного успешного импорта sql-файла.
10. Посредством файлового или ftp-менеджера, предоставляемого хостером, в корне сайта открываем файл configuration.php и делаем там следующие правки:
public $host = '
имя сервера баз данных хостина, спрашивайте в тп, хотя обычно имя написано там, где базу создавали';
public $user = '
логин к базе данных, как правило совпадает с логином на хостинг';
public $password = '
пароль к базе данных, вами придуманный';
public $db = '
имя базы данных';
public $log_path = '/logs';
public $tmp_path = '/tmp';
Последние 2 параметра - относительные пути к корню сайта, как правило это работает, если же нет - полные пути узнавайте в тп хостера.
Сохраните и закройте файл.
11. Запустите админку сайта:
ваш_домен/administrator/, если в п.10 вы все указали правильно, Вам будет предложено авторизоваться.
12. Проверьте, все ли работает, авторизуйтесь во фронте и посмотрите, все ли там в порядке. Крайне редко что-либо слетает. Если все хорошо, снимайте сайт с ТО: в общих настройках "Сайт выключен (offline)"->"Нет"->"Сохранить" и поздравляйте себя с успешно выполненной задачей.