Обновление рабочего сайта

Приветствуем!

Хотите что-то написать?

Нужно назвать себя.

Если вы пришли в первый раз,
то нужно зарегистрироваться.

Читайте нас в:

Блог на ya.ru
Блог на Деловом квартале
Блог на Twitter.om
Блог на Livejournal.com
15 октября

РазработкаОбновление рабочего сайта

При обновлении программного кода сайта — а это происходит довольно часто, итерационно, я бы сказал — часто возникают ошибки («А-а-а!!! У нас всё работает, на сайте все умерло!»). Ошибки эти неприятны именно тем, что всё приходится чинить быстро, в авральном режиме. Все нервничают, хватаются за голову и торопят друг друга. Если всё починили быстро, то народ потом отпаивается кофием. А если не чинится или чинится очень долго, то нужно записываться на приём к психотерапевту.

НУ И КОМУ ЭТО ТАКИ НУЖНО?

Есть простой и надёжный метод обновления сайта, основанный на символических ссылках, или симлинках. Допустим, у нас есть *nix-система, на которой работает наш мегапортал. Пусть основной код сайта лежит в некой папке site/www. Перенесём весь код сайта в папку site/version1, а папку www заменим на символическую ссылку, перстом своим указующую на site/version1:

cd siteln -s ./version1 www

Итак, теперь при обращении к папке www мы перескакиваем в папку version1. Едем дальше. Создадим папку site/version2 и скопируем туда весь код из site/version1. Это будет наша тестовая версия. Теперь создадим симлинк site/www_test, ссылающийся на site/version2.

ln -s ./version2 www_test

Далее надо настроить виртуальный хост test.example.org так, чтобы его DocumentRoot был site/www_test.

Далее пишется скрипт на php, который меняет симлинки местами так, чтобы www -> site/version2, www_test -> site/version1.

И В ЧЁМ ЗДЕСЬ СОЛЬ?

А вот в чем. Когда надо обновить версию сайта, вы смотрите, куда ссылается симлинк www_test, и заливаете изменения именно туда — на тестовую версию сайта. Если что-то сломалось, то можно все чинить не спеша, без нервотрепки и обгрызания и без того обгрызенных губ. Итак вкратце процедура обновления сайта:

  1. Заливаем все изменения в www_test
  2. Смотрим сайт test.example.org, чиним то, что поломалось
  3. Запускаем скрипт, который меняет симлинки местами
  4. Посмеиваясь, идём пить чай

Привет!

Тэги: php, версии, разработка, сайт, сайты

Коментарии:

amikhailov 2008-10-15 12:15:58

Сделайте для тэга pre нормальный стиль, а то буковки мелкие )

ответить
maddogg 2008-10-15 12:24:31

Сделаем. А вы бы чтоли поставили бы [дальше] куда следует

ответить
amikhailov 2008-10-15 12:42:52

Не понял )

ответить
amikhailov 2008-10-15 12:44:12

А, теперь понял :)
Кстати, а чего это ты ко мне на "вы"? Дурное воспитание? :))

ответить
maddogg 2008-10-15 13:41:26

да привычка просто дурацкая. Ещё в irc-сетях локальных образовалась N лет назад

ответить
maddogg 2008-10-15 12:35:07

что же делать, если мегапортал расположен на Windows Server?

ответить
amikhailov 2008-10-15 12:42:33

http://www.computerra.ru/gid/rtfm/system/38547/

ответить

Комментарий удалён

maddogg 2008-10-16 16:39:29

на досуге попробую. Ладно хоть у ангелов и голдена есть доступ через SSH

ответить
amikhailov 2008-10-16 17:10:57

Схема проверенная )

ответить

Комментарий удалён

amikhailov 2008-10-16 17:24:12

Ну это уже вопрос из области управления кадрами :)) Штрафы, лишения зарплат, побиения палками и плетьми должны помочь :)

С другой стороны, достаточно попробовать один раз, чтобы понять, что это просто удобно

ответить

Комментарий удалён

CharnaD 2008-12-04 13:45:35

А для винды есть такие же простые способы?

ответить
NKostya 2009-05-27 03:12:01

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

ответить

Свой комментарий: