Перенос сайтов с Денвера.

Денвер (Denwer) — это набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и оболочка для разработки сайтов на «домашней» (локальной) Windows-машине без выхода в Интернет.

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

Для переноса сайта с Denwer на наш хостинг нужно выполнить несколько действий.

Первое, что Вам нужно сделать - это создать аккаунт на хостинге, сделать это можно здесь.

После создания аккаунта, Вам на почту придет письмо, в котором указаны Ваши регистрационные данные.
По умолчанию при регистрации на хостинге Вам предоставляется 30 дней бесплатного тестового периода, а так же бесплатный домен. Допустим при регистрации Вы получили логин test, Вашим бесплатным доменом будет test.bget.ru

Для переноса сайта на Ваш собственный домен - Вам необходимо его зарегистрировать или, если он у Вас уже есть, перенести на наш хостинг. Зарегистрировать и перенести домен Вы можете из Панели Управления в разделе "Домены".

Бесплатный домен test.bget.ru по умолчанию уже прилинкован к папке - public_html, то есть файлы нужно загружать в папку public_html.

Предположим, что у нас есть домен test.ru и для него мы создали папку test.ru/public_html и прилинковали его к этой папке.

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

Итак, продолжим.

  • Мы будем использовать пакет Денвер-3, дополнительную информацию об установленном Денвере можно увидеть на странице http://localhost/denwer
  • Для начала Вам нужно будет на Денвере создать копию базы данных (дамп базы), используя инструмент "Экспорт" программы phpMyAdmin.
 Для этого введите в браузере http://localhost/Tools/phpmyadmin
  • Следующее, что надо сделать, это переместить файлы на сервер. С помощью любого FTP-клиента (Total Commander, FileZilla и т.п.) или с помощью файлового менеджера в Панели Управления необходимо переместить все файлы из папки локального сервера Денвер (где находится сайт, как правило, путь до файлов: "директория где установлен Denwer/home/имя сайта/www/" в корневую папку сайта на сервере (в нашем случае - "test.ru/public_html")

Логин и пароль от FTP совпадают с Вашим логином и паролем для входа в Панель Управления аккаунтом, имя сервера указано в Панели Управления на главной странице.

  • Далее Вам нужно создать базу данных на хостинге и импортировать в неё дамп базы, созданный на первом шаге. Сделать это можно через панель управления - раздел "MYSQL".

Затем необходимо сделать импорт Вашей базы данных в созданную базу. Рядом с базой кнопка phpMyAdmin, инструмент "Импорт". Перед совершением импорта, необходимо нажать на имя базы в левом меню, тем самым выбрав базу, куда надо импортировать.

Также необходимо убедиться, что в самом файле дампа нет конструкции

CREATE DATABASE

А если она есть, то удалите или закомментируйте её.

  • Последний шаг - это настройка соединения с базой данных.

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

Имя пользователя совпадает с именем базы

Т.е. если, например, Вы создали базу test_db, то имя пользователя также test_db

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



Дополнительно - cкрипт для замены двойных слешей в путях (\)

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

import sys, re, fileinput

def win_path(match):
 return re.sub(r'\\','/',match.group(1))

try:
 for line in fileinput.input('dump.sql',inplace=1,backup='.begetcms_delete_me'):
  newline = re.sub(r'[A-Z]:(\\(?:[\-\.\w]+\\)+)',win_path,line)
  sys.stdout.write(newline);
except:
 sys.exit('%s\n\nFAIL: %s, %s'%(traceback.format_exc(),fileinput.filename(),fileinput.filelineno()));


Удачной работы!