УрокПеренос сайта с локального сервера Denwer на рабочий сервер

Наверняка многие веб-разработчики, особенно использующих для своих нужд ОС Windows, сталкивались с таким джентельменстким набором как Denwer. Штука действительно очень полезная - за пару минут можно поставить себе на компьютер локальный сервер с базой данных (mysql) и настроенными php и apache. И сервис отправки почты в нагрузку. В общем, получается отличная имитация не сильно заурядного боевого сервера. Тут и памяти можно дать чуть больше для ускорения работы, и отлаживать удобнее, и прочие полезности.

Соответственно, если сайт был сделан целиком на локальном сервере, неплохо было бы показать его людям - а значит, перенести его на рабочий сервер в Интернете. И тут для людей не сильно опытных в этом вопросе может возникнуть затык - а с чего начинать, собсна?) Рассказываю.

Чтобы создать на рабочем сервере полную копию локального, вам необходимо перетащить туда следующие вещи:

  • базу данных
  • друпал
  • файловую систему (папку с файлами)
  • модули
  • темы

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

По большому счёту, чтобы перенести все пункты, кроме 1го, достаточно банальнейшим образом скопировать содержимое папки C:\WebServers\home\ваш_сайт\www\ в папку с названием вашего сайта на сервере. Таким образом на сервере у нас окажутся все данные о сайте указанные в базе данных (модули, темы, пути файловой системы и т.п.).

Теперь поговорим о том, как перенести базу данных. Существует немалое количество скриптов(программ, сервисов), позволяющих сделать это. Я расскажу о двух, которыми я пользуюсь чаще всего.

1 способ перенести базу данных - phpmyadmin

Если ваш хостер выдал вам доступ в phpmyadmin, то второй способ вам вряд ли понадобится. Но начнём по порядку.

Первым делом включаем наш Денвер и переходим на страницу http://localhost/Tools/phpMyAdmin/. Выбираем из списка слева название базы, которую будем импортировать. Далее сверху находим вкладку Export и нажимаем её: Экспорт базы данных из Denwer

Теперь вы находитесь на странице настроек экспорта базы данных. Если вам нужен обычный импорт, без извращений, то ничего тут трогать и не надо, кроме сжатия базы - его надо поменять на gzip, а то база будет занимать раз так в 8-10 больше места. Экспорт базы данных из Denwer

Жмём Go. Получаем базу данных в архиве. Далее переходим в phpdyadmin уже рабочего сайта. Тут действия совсем простые - выбираем базу, куда будем экспортировать, находим вкладочку IMPORT, заходим туда, указываем сохранённую недавно базу, жмём GO. И всё, база перенесена. А вместе с ней и полностью сайт. Поздравляю :)

2 способ перенести базу данных - sypex

Есть такой полезный скрипт, скачать который можно тут. С ним не нужен доступ в phpmyadmin - достаточно доступа на ftp. Я обычно пользуюсь Lite версией - мне хватает. Однако были случаи, что приходилось использовать полную версию - когда облегчённая не справлялась с задачей переноса тяжёлой базы данных.

Кстати, для друпала там даже есть готовый модуль с этим скриптом. Но у меня был не сильно приятный опыт работы с ним - я его скачал, поставил, а модуль не заработал :) После того как я нашёл всё же ошибку в модуле и отправил баг репорт автору модуля, автор через несколько дней лишь заявил, что у него всё работает, и модуль так и не поправил. Хотя, возможно, на сегодняшний день этот косяк уже решён, но я уже не пользуюсь им из принципа :)

О работе скрипта можно рассказать вкратце (на примере Lite версии): закидываете скрипт dumper.php на сервер, в корень сайта. Потом обращаетесь к нему через браузер по адресу http://имясайта.ру/dumper.php. Откроется страница с логином и паролем (их можно посмотреть в файле /sites/default/settings.php) - дальше разберётесь, там всё предельно просто. Выглядит оно вот так: Sypex Dumper

И ещё один нюанс для импорта базы данных: дампы (архивы) баз, которые вы будете импортировать, надо складывать в папку backup, которую надо создать (или она автоматически будет создана) в корне сайта.

Существуют ещё способы и хитрости при переносе сайтов, но им несложно обучиться самому, в процессе. А если не получится что-то - то задавайте вопросы, буду отвечать :)

А ещё, как подсказали, есть модуль, который позволяет быстро переехать с одного сервера на другой - тут

Комментарии

Аватар пользователя Ottomoto
Ottomoto написал:

Спасибо.

07.12.2010 04:27
Аватар пользователя гость
гость написал:

1.Для копирования файлов на сервер их луште перед этим заархивировать. Тогда копирование занимает в разы меньше времени.

07.12.2010 11:43
Аватар пользователя Spleshka
Spleshka написал:

согласен, архивировать надо. Но я отнёс это к "хитростям" переноса, которым можно научиться самому

07.12.2010 14:36
Аватар пользователя powerscin
powerscin написал:

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

07.12.2010 14:38
Аватар пользователя Бешеный стопицоткрыл
Бешеный стопицоткрыл написал:
08.12.2010 08:12
Аватар пользователя mpa3b
mpa3b написал:

а что за иллюстрация? какой-то фронт-енд к денверу? можно подробнее об этом узнать?
или это мифический 4-ый денвер? ;)

а так да. проще залить архив и распаковать уже на сервере. паковать надо без сжатия.

backup_migrate тоже полезная вещь. достаточно поставить друпал на хостинге, залить тему и модули и впаять БД через backup_migrate.

вы кстати не написали что при простом копировании друпли — нужно ещё и settings.php править.

14.12.2010 22:51
Аватар пользователя bogdan
bogdan написал:

http://pograncom.ru/index.php?set=pages&mc=0

07.03.2011 14:48
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

где в файле settings.php найти ацц и пароль ?
- искать сложно, у меня фаил открываеться одной строкой

через поиск нашёл следующее:
pgsql://username:password@localhost/databasename';
*/
$db_url = 'mysqli://root@localhost/webshop_db';

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

11.04.2011 00:33
Аватар пользователя powerscin
powerscin написал:

Вы правильно нашли строчку : $db_url = 'mysql://username:password@localhost/databasename' просто вы наверное на локальном хостинге сайт разрабатываете, а у меня например на локалке тоже нету пароля, та что все правильно.

11.04.2011 21:58
Аватар пользователя Тайный поклонник
Тайный поклонник написал:

Ладно. Привёл к нормальному виду. попытался задать через сеттингс новый пароль - ничего не вышло. Попытка 2:скопировал сеттингс с другого моего проекта, где пасс был указан при установке - ничего не вышло. Кст, когды я пытался запустить базу не через денвер, было тоже самое - никак не мог написать ацц и пасс...

11.04.2011 01:18
Аватар пользователя otmoroz095
otmoroz095 написал:

не ацц, а акк. строка 114
$db_url = 'mysql://youname:youpass@localhost/basename';
$db_prefix = 'prefix_';
Через phpmyadmin можешь зайти?

12.04.2011 17:49
Аватар пользователя z0uR
z0uR написал:

Спасибо за информацию!

14.07.2013 01:01

Комментировать