В прошлый раз я занимался исключительно теоретическими изысканиями, но теперь настало время для практики. Приступим.
Я ставил себе систему Debian 5.0, потому что неплохо в ней разбираюсь и мне нравится ее несколько параноидальная политика – в репозитории присутствуют только суперпроверенные пакеты. Все примеры будут приведены именно для нее, но с некоторыми изменениями подойдут и для других Linux систем.
Еще одно предупреждение. Я работаю под рутом для администрирования сервера. Если вы поступаете не так, то добавляйте “sudo” перед вводом команд.
Python.
Во-первых, естественно, сам интерпретатор Python. Как правило, по умолчанию он уже установлен, однако нужно проверить версию. Я использую для разработки Python 2.6, потому что он, как правило, присутствует в репозиториях всех современных систем, что позволяет ставить его из пакетов, а не собирать вручную.
Проверим версию Python:
root@myserver: ~# python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:00:36)
[GCC 4.4.5 20100909 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
В моем случае все нормально, можно набрать
>>> exit()
для выхода в командную строку.
Если нужно обновление (например, установлен Python ветки 2.5), вводим команду
root@myserver: ~# aptitude install python
Если обновления есть, будет предложено эти обновления автоматически скачать и установить.
Django Framework.
Предположим, интерпретатор Python установлен. Для запуска Django-проекта нам, естественно, понадобится и сам фреймворк. Производим следующие действия (текущая версия Джанго на сейчас – 1.2.3):
root@myserver: ~# wget http://www.djangoproject.com/download/1.2.3/tarball/
root@myserver: ~# tar xzvf Django-1.2.3.tar.gz
root@myserver: ~# cd Django-1.2.3
root@myserver: ~# python setup.py install
На моей установке Debian фреймворк установился в /usr/local/lib/python2.6/dist-packages/django. В вашей системе он может оказаться по другому пути, принципиального значения это не имеет. Чтобы найти, куда установился фреймворк, воспользуйтесь поиском:
find / -name django
Обязательно найдется.
Проверить правильность установки можно следующим образом:
root@myserver: ~# python Python 2.6.6 (r266:84292, Sep 15 2010, 16:00:36)
[GCC 4.4.5 20100909 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>
В моем случае все прошло отлично. Если же вы видите ошибку следующего вида:
>>> import django
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named django
>>>
Значит, установка прошла неверно, модуль Django не найден. Попробуйте переустановить.
Итак, фреймворк установлен. Мы можем протестировать его работоспособность следующим образом:
root@myserver: ~# mkdir /home/djangotest
root@myserver: ~# cd /home/djangotest
root@myserver: ~# django-admin.py startproject mysite
Это все стандартные процедуры для старта нового проекта. Созданная структура впоследствии понадобится нам для тестирования работоспособности нашей среды.
Можно выполнить нашу любимую команду:
root@myserver:/home/djangotest/mysite# python manage.py runserver
Validating models...
0 errors found
Django version 1.2.3, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Останавливаем сервер (CONTROL-C) и приступаем к установке остального ПО.
Снова немного теории.
Для запуска веб-приложения обычно требуются следующие компоненты:
- - веб-сервер для отдачи продукта пользователю;
- - сервер СУБД для обслуживания данных;
- - почтовый сервер для отсылки сообщений пользователям приложения.
- Этими программами дело, конечно, не ограничиваете, но в первом приближении этого будет достаточно.
Некий потребительский стандарт предполагает набор Apache (веб-сервер) + MySQL (СУБД) +Sendmail/Postfix (почтовый сервер). Все это невероятно удобное и надежное, при этом страшно тяжёлое – наш скромный сервачок это все крутить не сможет.
Мы пойдем другим путем. В качестве веб-сервера мы будем использовать Lighttpd, наше Django-приложение будет работать как FastCGI, базу данных мы будем крутить на SQLite, а без почтового сервера и вовсе обойдемся – будем использовать Gmail через SMTP.
В следующей части установим и настроим Lighhtpd + FastCGI.