Кратенько об установке apache+django на ubuntu server 10.04.1

Есть у меня товарищ, который увлекся связочкой python+Django и заодно решил, зная, что я когда-то тоже немножко программил, увлечь ими и меня, да так решил, что у меня уже по-моему начала образовываться плешь : ) Его старания в общем-то не проходят даром (трудно переть против бульдозера : )) и я сильно потихонечку начинаю осваивать данные, так сказать, технологии. Тем паче, что на работе как раз возникла задача написать кое-что на апаче. «Написать на апаче» неудачная шутка, зато в рифму ))) В общем написать кое-что с веб-интерфейсом. Для чего и были мною выбраны питон и джанго, в целях помимо собственно выполнения задачи ещё и обучения.

В плане хостинга (громкое наверное слово для локального-то сервера) была выбрана ubuntu server 10.04.1. И так ОС установлена, lamp не ставил, т.к. мне нужно только apache из этого набора, в качестве БД будет sqllite3, приступим:

ставим apache2, мод wsgi и sqlite3 (python2.6.5 установился при установке самой убунты):

aptitude install apache2 libapache2-mod-wsgi sqlite3

ставим easy_install для удобной установки всякого-разного потом и django сейчас. Будем ставить именно так, по причине несвежести того, что в репах (1.1.1 супротив 1.2.4):

wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
sh setuptools-0.6c11-py2.6.egg

django:
easy_install django

теперь собственно скоренько настроим всё это хозяйство, чтобы наш проект, который будет неожиданно называться «project» заработал. Лежать он у меня будет в /srv/www/project. Создадим там папочку apache:
mkdir /srv/www/project/apache
в которую поместим файлик project.wsgi следующего содержания:

import os, sys
import django.core.handlers.wsgi
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('/usr/lib/python2.6/dist-packages/')
sys.path.append('/srv/www/project/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
application = django.core.handlers.wsgi.WSGIHandler()

после этого распишем наши каталоги апачу. Вот так выглядит мой /etc/apache2/sites-available/project

<VirtualHost project:80>
    WSGIScriptAlias / "/srv/www/project/apache/project.wsgi"

    <Directory "/srv/www/project/apache/">
        Allow from all
    </Directory>

     <Directory "/srv/www/project/">
         Order allow,deny
         Options Indexes
         Allow from all
         IndexOptions FancyIndexing
     </Directory>

    Alias /media/ "/srv/www/project/media/"
    <Directory "/srv/www/project/media/">
	Order allow,deny
        Options Indexes FollowSymLinks
        Allow from all
        IndexOptions FancyIndexing
     </Directory>

</VirtualHost>

Для полного достижения гармонии между всеми участниками данного таинства перезагрузим apache:
/etc/init.d/apache2 restart
хотя возможно достаточно было бы и:
/etc/init.d/apache2 force-reload

Вот наверное и всё, после данных телопальцедвижений мой проект, точнее те огрызки, что пока написаны, заработал. Так что пойду ка я играть в программиста дальше… А устав от игр таких подумаю об отдыхе душой и телом, и отличным местом для сего отдыха будет санаторий поляна свалява. Чистый воздух, радующая взгляд природа, отсутствие городского шума, что ещё нужно уставшему IT’шнику ? : )

Comments

  1. бульдозер)) ну типа приму как комплимент ага))

    кстати апач можно перезапускать так

    apache2ctl restart

    (или форс рестарт)

    Posted by roma

    Link | Январь 27th, 2011 at 11:02

  2. setuptools есть в репозитории (python-setuptools). Но это уже устаревшие технологии, советую смотреть в сторону pip (python-pip) и virtualenv (python-virtualenv). Позволяют легко и просто разворачивать на одном сервере несколько python проектов с разными версиями и набором модулей, да и даже с разными версиями самого интерпритатора python. Та и вообще думаю использовать апач ради джанги — оверинжиниринг. Здесь, на мой взгляд, идеальная связка nginx и django через fastcgi темболее, что и сама документация джанги говорит, что джанга под fastcgi смотрится лучше. А вообще, удачи вам на пути освоения питона и его чудесного веб-фреймворка — джанго. :)

    Posted by vitaly

    Link | Февраль 2nd, 2011 at 14:28

  3. Vitaly, спасибо за интересный комментарий и пожелание : )

    Posted by Amorph

    Link | Февраль 2nd, 2011 at 14:31

  4. Отлично расписано=) Сразу заработало. Жду продолжения

    Posted by dehimer

    Link | Февраль 3rd, 2011 at 18:48

  5. (Неужто я не один в нашем городе интересуюсь джангой=)

    Posted by dehimer

    Link | Февраль 3rd, 2011 at 18:49

  6. Deploying Django with Apache and mod_wsgi is the recommended way to get Django into production.

    http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/ отсюда.

    Запуск джанго под апач+всги все таки рекомендованный разработчиками способ для прадакшна.

    При запуске в прадакшн так же можно для статики прикрутить нгинкс — это несложно и эффективно.

    ни разу не запускал под фастсги — не сомневаюсь что это тоже эффективный способ — но лично мне апач+всги (+нгинкс) кажется вполне простым и эффективным способом.

    Posted by roma

    Link | Февраль 3rd, 2011 at 20:30

  7. dehimer, ты из Чебоксар? Тогда есть! ))

    Posted by roma

    Link | Февраль 3rd, 2011 at 20:31

  8. Да) Из Чебов.
    Кстати, у меня все никак не выходит настроить нормально виртуалхосты. У меня статический ip. Апач и привязанный проект на джанго запущены. Но результат возвращается только It works! то бишь апач отвечает, а вот как до странички It worked от django добраться не могу из интернета.

    Posted by dehimer

    Link | Февраль 4th, 2011 at 09:00

  9. dehimer,
    выложи конфиги апача, попробуем разобраться :)

    Posted by roma

    Link | Февраль 4th, 2011 at 09:35

  10. Да в принципе все тоже самое,

    Имя файла sites-available/stallmoss.com

    DocumentRoot /srv/www/project/
    ServerName stallmoss

    WSGIScriptAlias / «/srv/www/project/apache/project.wsgi»

    Allow from all

    Order allow,deny
    Options Indexes
    Allow from all
    IndexOptions FancyIndexing

    Alias /media/ «/srv/www/project/media/»

    Order allow,deny
    Options Indexes FollowSymLinks
    Allow from all
    IndexOptions FancyIndexing

    Наверняка что то весьма глупое

    Posted by dehimer

    Link | Февраль 4th, 2011 at 10:03

  11. denhimer, wordpress съедает тэги, выложи лучше на dpaste.com

    Posted by Amorph

    Link | Февраль 4th, 2011 at 10:13

  12. stallmoss.com — домен привязанный к моему ip.
    VirtualHost *:80
    Вот как то так=)

    Posted by dehimer

    Link | Февраль 4th, 2011 at 10:19

  13. VirtualHost *:80

    воооот… а надо по идее:
    VirtualHost stallmoss.com:80

    ну или если другие сайты на этом IP не будут существовать, то всё своё вписать в default.

    Posted by Amorph

    Link | Февраль 4th, 2011 at 10:20

  14. Ок, вот:
    http://dpaste.com/383978/

    Posted by dehimer

    Link | Февраль 4th, 2011 at 10:20

  15. Ээ не)) я такое уже пробовал. Не работает.

    Posted by dehimer

    Link | Февраль 4th, 2011 at 10:28

  16. О, ребят, спасибо вам! Запихал в default — заработало! Ура:)

    Posted by dehimer

    Link | Февраль 4th, 2011 at 10:33

  17. Вот и славно :)

    Posted by Amorph

    Link | Февраль 4th, 2011 at 10:34

  18. dehimer — а у тебя какой опыт работы с джанго?)

    Posted by roma

    Link | Февраль 4th, 2011 at 12:36

  19. чем сейчас занимаешься?)

    Posted by roma

    Link | Февраль 4th, 2011 at 12:36

  20. Не сказать чтоб опыт) Пол года как начал осваивать.

    Posted by dehimer

    Link | Февраль 4th, 2011 at 14:23

  21. Есть идея сервиса одного. Пока неизвестно как и что выйдет

    Posted by dehimer

    Link | Февраль 4th, 2011 at 14:25

  22. значит скоро обрадуешь нас новым сервисом))

    судя по домену — сервис на буржуев ориентирован?)

    Posted by roma

    Link | Февраль 4th, 2011 at 14:28

  23. Точно) Изначально была идея и буржуев ухватить.
    Не все сразу конечно

    Posted by dehimer

    Link | Февраль 4th, 2011 at 14:30

  24. а хостинг у тебя свой или vds?

    Posted by roma

    Link | Февраль 4th, 2011 at 16:08

  25. Сначала я на хостинге джино экспериментировал. Но постоянно лазить через ssh и ждать ответы тех. поддержки надоело. Сейчас на домашней машинке работаю. Благо что чебнет статический ip дает.

    Posted by dehimer

    Link | Февраль 4th, 2011 at 17:56

  26. аналогично, с чебнетовским ип адресом на домашней машине)

    Posted by roma

    Link | Февраль 4th, 2011 at 22:29

  27. dehimer, можешь свои контакты оставить? хотел с тобой переговорить

    Posted by roma

    Link | Февраль 18th, 2011 at 17:14

  28. skype: d_e_h_i_m_e_r_1 — без нижних тире

    Posted by dehimer

    Link | Март 7th, 2011 at 21:38

Leave Your Comment