среда, 26 декабря 2012 г.

Установка сервера Apache, mod_python, Django, MySQL и Sqlite3 на Windows

Сегодня я расскажу вам, как собрать полноценный сервер для Django приложений. Для написания и тестирования вполне хватает встроенного сервера, но часто бывает, что работа приложения на деволоперском сервере запускаемом командой (django-admin.py runserver) отличается от работы на боевом хостинге, проявляются разнообразные баги глюки и остальная нечисть.
И сегодняшней нашей целью является создание полноценного сервера, что бы проверить работу нашего сайта в условиях максимально приближенным к боевым.

Конечно, можно воспользоваться уже готовыми решениями типа Bitnami Djangostack это замечательная сборка из Apache HTTP Server, MySQL, Python, SQLite после установки вы получите работающий сервер, но мы, же не ищем лёгких путей и будем устанавливать, и настраивать это всё сами.

Связка будет выглядеть, таким образом: Apache+Mysql+mod_python+Django+Sqlite и сие чудо мы будем ставить на Windows.


Что нам надо:
0. Windows
1. Apach v.2.2.11
2. Mysql v.5.1.31
3. Sqlite v.3.6.11
4. Python v.3.0.1
5. Django v.1.0.2
6. mod_python v.3.3.1

ШАГ 1
Надеюсь, Windows у вас уже установлен и я опущу этот этап и начну с установки Apache.

Установить http сервер не сложно: просто запускаем скачанный инсталлер apache_2.2.11-win32-x86-no_ssl.msi

apache_1

Клацаем по кнопке “Next” до тех пор, пока установщик не попросит нас ввести Network Domain и Server name, так как мы делаем сервер исключительно для себя, то в обоих случаях вводим localhost или 127.0.0.1 кому как нравится.

apache_2

Это значит, что наш сервер будет видно только для данного компьютера. Если же вы хотите, что бы он был доступен для всех, введите свой IP адрес, или домен. После того как все заполнили выбираем “For All Users” и жмём Next и смотрим как устанавливается. По окончанию установки он должен запустится автоматически как сервис. Для проверки набираем в браузере http://localhost, если вы видите надпись “It works!” всё готово и можете читать дальше.

apache_7


Если же нет то
1.Попробуйте перезагрузить компьютер.
2.Проверьте, а не запущен ли у вас другой http сервер, если да то остановите его.
3.Может фаерволом (брендмуаром) у вас заблокирован порт 80, необходимо этот порт разблокировать.
4.Попробуйте просмотреть через нормальный браузер НЕ Internet Explorer
5.Если ни одно из вышеуказанных действий не помогло, то стучите в бубен, наверняка это проделки демонов мешают запуску нашего сервера.
Теперь нам понадобится конфигурационный файл, который находится
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
открываем его в блокноте:
строка 170 расскоментируйте (уберите знак #)
ServerName localhost:80
строка 177 и 204 замените параметр DocumentRoot на свой, например C:/www
DocumentRoot “C:/www”
Сохраняем файл httpd.conf и перезапускаем сервер вуаля все должно работать.

ШАГ 2 - Установка MySql 
MySql установить не сложнее, чем Apache. Для начала запускаем mysql-5.1.31-win32.msi и снова кнопка next->

mysql_1

Выбираем способ установки (я советую Typical)

mysql_2

После того все файлы установились, будим конфигурировать mysql

mysql_3

Выбираем “Detailed Configuratin”(детальная настройка)

mysql_4

Клацаем на пункте “Developer Machine”, мы же не просто пользователи, а Разработчики

mysql_5

Потом выбираем “Multifunctional Database”, тоесть мы сможем работать как с таблицами типа InnoDB, так и со скоростными MyISAM в большинстве случаев используются последние.

mysql_6

Выбираем диск для хранения таблиц типа InnoDB, оставляем всё как есть и жмем “Дальше

mysql_7

Далее мы должны выбрать, сколько будет одновременных подключений к нашему серверу. Думаю 20 для нас будет предостаточно, поэтому выбираем “Decision Support (DSS)/OLAP”,

mysql_8

Следующий этап оставляем по умолчанию, должно быть отмечено “Enable TCP/IP Networking” и “Enable Strict Mode”

mysql_9

Выбираем кодировку, которую MySql сервер будет использовать по умолчанию
“Manual Selected Default Character Set / Collation” и выделяем utf-8

mysql_10

Будет ли наш сервер запускаться как сервис или нет, мы выбираем на этом этапе, а так же рекомендую включить Include Bin Directory in Windows PATH” - это позволит нам работать с сервером из командной строки.

mysql_11

Завершающий этап - это ввод пароля (хотя можно и без него, но крайне нежелательно, поэтому введите что нибудь).

mysql_12

Ура всё!!

mysql_13

Далее идём в C:\Program Files\MySQL\MySQL Server 5.1\my.ini

Здесь нам необходимо заменить строку 84, что бы использовалась по “default” MYISAM
меняем
default-storage-engine=INNODB
на
default-storage-engine=MYISAM
Пуск -> программы -> MySQL -> MySQL Server 5.1 -> MySQL Comand Line Client
Появляется консоль с запросом ввести пароль. Вводим и получаем

mysql_15

Проверяем, что у нас за базы у нас есть! Вводим: SHOW DATABASES;

mysql_16

Все, с установкой MySql закончили!

С установкой python думаю проблем у вас не возникнет, так как вся установка заключается из двух этапов, скачать дистрибутив и запустить его, а вот на остальных моментах остановлюсь подробнее. Сразу скажу, что установка связки Apache + mod_python омрачила  меня одним моментами,  бинарник mod_python под Windows подходит только для Python 2.5.  Если хотите установить его на Python 2.6 и выше, то придется   устраивать ритуальные пляски с бубнами.


Приступим к установке mod_python (я надеюсь, python 2.5 вы уже установили)!!
Идем на офф сайт и закачиваем последнюю версию на сегодня это 3.3.1.  Запускаем приложение.

mod_python

Если вылетает окно с ошибкой типа “не найден MSVCR71.dll повторная установка приложения может решить проблему” то надо закачать отсюда MSVCR71.dll и положить его в  C:\WINDOWS\system32 это должно решить проблему. Повторно запускаем mod_python-3.3.1.win32-py2.5-Apache2.2.exe.
В процессе указываем корневой каталог Apach и ждем окончания установки.

mod_python

Теперь установим Django framework, есть несколько способов установки Django. Мы пойдем простейшим - установим из svn последнею версию дистрибутива. Для этого нам потребуется svn клиент (я взял Slik) Устанавливаем клиент!! После этого открываем консоль(cmd) заходим в каталог site-packages
cd C:\Python25\Lib\site-packages
И скачиваем  django командой
svn co http://code.djangoproject.com/svn/django/trunk/django django

django_install_end_2

Теперь наш свежеиспечённый django находится в C:\Python25\Lib\site-packages\django. Если у вас уже есть установленный, то надо его обновить командой.
svn update
при этом находясь в директории django. Вот и все!

django_update_end_4

Далее нам понадобится пустой джанго проект для тестирования. Создадим:
C:\Documents and Settings\User>cd C:\
C:\>mkdir example
C:\>cd example
С:\example>django-admin.py startproject testproject
Если у вас появилась ошибка типа “django-admin.py не является внутренней или внешней командой…” То скопируйте django-admin.py из папки C:\Python25\Lib\site-packages\django\bin в ту папку, где вы  хотите создать проект, в нашем случае это  С:\example, есть и другой способ решения данной проблемы, но об этом в другой раз. Повторите запрос
django-admin.py startproject testproject
Вот у нас есть пустой проект.  Переходим к конфигурации Apache, для этого открываем файл
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
И подключаем в самом конце файла модулю питона.
LoadModule python_module modules/mod_python.so
затем пишем
<Location “/testproject/”>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE testproject.settings
PythonOption django.root c:/example/testproject
PythonDebug On
PythonPath “['/example'] + sys.path”
</Location>

httpd_conf_1

Перезапускаем Apache заходим http://localhost/testproject/ радуемся.

localhost_testproj

1 комментарий:

  1. Последнее время я использую Valentina Studio для работы с MySQL на win. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview

    ОтветитьУдалить