Some HAT...

= Анабар.ru => Адм.: вопросы, пожелания, сообщения об ошибках => сообщение 1070
| Вход | Регистрация
нет
фото
Автор:  Admin
Дата:  5-Mar-2007 02:35 (gmt = -3.0)
URL:  http://anabar.ru

Это случилось 5-го марта.

Сегодня, 5 марта 2007 года, примерно в 0.30 по московскому времени, совершëн окончательный переход сервера Anabar.RU на платформу OpenBSD.

Это радостное событие готовилось достаточно долго. Большинство (точнее все за исключением web-сервера) служб были переведены на OpenBSD'шный сервер ещë в январе. Однако, перевод службы http оказался не столь тривиальным, как это можно подумать. Дело в том, что за последние три года, то программное обеспечение, что используется на Анабаре подверглось непоправимым улучшениям и для осуществления перехода пришлось фиксить и переписывать много чего. Иcпользовать же старое привычное ПО казалось неразумным — замучаешься ставить старые порты и пакеты на четвëртый Open.

Так что пришлось разбираться с новьëм. В итоге были приняты во внимание четыре основных столпа web-сервера Anabar.RU. Они в свою очередь потащили ещë немного.

1. Web-сервер Apache (http://apahce.org). В OpenBSD используется (по умолчанию) версия 1.3.29, что вообщем-то хорошо. Меня всë в ней устраивает, но оказалось проблематично использовать с ней mod_python — http://httpd.apache.org/modules/python... ,причëм новый mod_python (3.3.х) нельзя использовать по определению, а старый (2.7.11) можно (якобы), но для этого надо так изворачиваться, что желание пропадает. Дело в том, что для старой версии нужно использовать Python без поддержки multithred'инга, что для меня не приемлемо, а ставить параллельно вторую версию (такой вариант предлагается в документации к этому модулю) совершенно не улыбалось (ясно, что при таком подходе, рано или поздно полезут такие косяки, что от шаманства устанешь). Вообщем, за ковырянием и время прошло.

Хоть в OpenBSD используется (и так будет в дальнейшем по лицензионным соображениям) версия Апача 1.3.29, никто не запрещает ставить параллельно ещë один Апач, что и было сделано. Портов и пакетов не было, поэтому я ставил из исходников 2.2.4, и таким же образом и mod_python 3.2.10. Как ни странно, всë прошло гладко и легло как родное. Ура!

Естественно пришлось мëржить конфиги, формат немного изменили, но куда без этого :). Ну, это всë быстро.

2. Vim — http://vim.org . Да, этот редактор используется ещë и на вебе. В частности, на сервере anabar.ru с его помощью происходит раскраска синтаксиса размещаемых в форуме исходников. Нельзя не отметить, что число поддерживаемых форматов для раскраски увеличилось с 350-и до 480. Это приятно, однако о большинстве из них никто никогда и не узнает :). Но гораздо более удручающим оказался факт, что синтаксис команд плагина 2html изменился, и старый движок (заточенный под Vim 5.8) с новым Vim'ом версии 7.0 выдавал исходники совершенно в непотребном виде. Тут пришлось ковыряться несколько часов, пока читалась документация, ставились эксперименты и пр. Конечно же, не всë работает так как описано, но в основном задачу удалось решить. Теперь новый код будет раскрашивать исходники по-другому (примеры можно посмотреть здесь — http://www.anabar.ru/forumz/anafo.p... ). А старые сорсы (отправленные до пятого марта) остануться такими же как и были.

3. MySQL — http://mysql.org Его тоже постигли улучшения. Пришлось переходить с версии 3.24 сразу на 5.0.22. Переход оказался всë же гораздо более мягким, чем мыслилось. но некоторые вещи изменились в странную сторону. Количество таблиц в базе mysql резко увеличилось, но более поразило то, что теперь таблица mysql.user имеет 34 поля (раньше было раза в два меньше). Работа с TINYBLOB стала более интригующей, чем было раньше. Не знаю, может быть это питоновский интерфейс MySQLdb не может угнаться за «самым лучшим», но на данный момент приходиться отдельно рассматривать значения в этих полях (так как теперь там приходит array) и очень аккуратно обрабатывать Питоновский «курсор» после запроса. Раньше такого рода проблем не было. Работать стало всë это помедленее, даром, что машина с двумя камнями :).

4. Сам Python и все скрипты. Это самая простая часть перехода. Типа написать скрипт, который сам пройдëтся по всем *.py файлам и заменит линуксовый #/usr/bin/env python на приемлемый в OpenBSD #!/usr/local/bin/python. А заодно ещë проставить второй строчкой -*- coding: koi8-r -*- в тех местах, где этого не было.

Всë это потребовало времени и нет уверенности, что все косяки выловлены. Так что, буду благодарен, если найдëте.


URL изображения: http://openbsd.org/images/puffy40.gif


все сообщения ветви:
  • 1070 Это случилось 5-го марта.  Admin  | 5-Mar-2007, 02:35 | просмотров: 8212    ⇐ ◄

О том как (правильно) написать сообщение...

Написать ответ

* Ник    
E-mail   Получать ответы  
Ссылка (URL)   мин. уровень чтения  
Картинка (URL)   мин. уровень ответа  
* Тема ответа  
Текст сообщения (можно не заполнять)

Время генерации страницы в секундах: 0.085