Есть у меня товарищ, который увлекся связочкой 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’шнику ? : )
бульдозер)) ну типа приму как комплимент ага))
кстати апач можно перезапускать так
apache2ctl restart
(или форс рестарт)
Posted by roma
Link | Январь 27th, 2011 at 11:02
setuptools есть в репозитории (python-setuptools). Но это уже устаревшие технологии, советую смотреть в сторону pip (python-pip) и virtualenv (python-virtualenv). Позволяют легко и просто разворачивать на одном сервере несколько python проектов с разными версиями и набором модулей, да и даже с разными версиями самого интерпритатора python. Та и вообще думаю использовать апач ради джанги — оверинжиниринг. Здесь, на мой взгляд, идеальная связка nginx и django через fastcgi темболее, что и сама документация джанги говорит, что джанга под fastcgi смотрится лучше. А вообще, удачи вам на пути освоения питона и его чудесного веб-фреймворка — джанго.
Posted by vitaly
Link | Февраль 2nd, 2011 at 14:28
Vitaly, спасибо за интересный комментарий и пожелание : )
Posted by Amorph
Link | Февраль 2nd, 2011 at 14:31
Отлично расписано=) Сразу заработало. Жду продолжения
Posted by dehimer
Link | Февраль 3rd, 2011 at 18:48
(Неужто я не один в нашем городе интересуюсь джангой=)
Posted by dehimer
Link | Февраль 3rd, 2011 at 18:49
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
dehimer, ты из Чебоксар? Тогда есть! ))
Posted by roma
Link | Февраль 3rd, 2011 at 20:31
Да) Из Чебов.
Кстати, у меня все никак не выходит настроить нормально виртуалхосты. У меня статический ip. Апач и привязанный проект на джанго запущены. Но результат возвращается только It works! то бишь апач отвечает, а вот как до странички It worked от django добраться не могу из интернета.
Posted by dehimer
Link | Февраль 4th, 2011 at 09:00
dehimer,
выложи конфиги апача, попробуем разобраться
Posted by roma
Link | Февраль 4th, 2011 at 09:35
Да в принципе все тоже самое,
Имя файла 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
denhimer, wordpress съедает тэги, выложи лучше на dpaste.com
Posted by Amorph
Link | Февраль 4th, 2011 at 10:13
stallmoss.com — домен привязанный к моему ip.
VirtualHost *:80
Вот как то так=)
Posted by dehimer
Link | Февраль 4th, 2011 at 10:19
VirtualHost *:80
воооот… а надо по идее:
VirtualHost stallmoss.com:80
ну или если другие сайты на этом IP не будут существовать, то всё своё вписать в default.
Posted by Amorph
Link | Февраль 4th, 2011 at 10:20
Ок, вот:
http://dpaste.com/383978/
Posted by dehimer
Link | Февраль 4th, 2011 at 10:20
Ээ не)) я такое уже пробовал. Не работает.
Posted by dehimer
Link | Февраль 4th, 2011 at 10:28
О, ребят, спасибо вам! Запихал в default — заработало! Ура:)
Posted by dehimer
Link | Февраль 4th, 2011 at 10:33
Вот и славно
Posted by Amorph
Link | Февраль 4th, 2011 at 10:34
dehimer — а у тебя какой опыт работы с джанго?)
Posted by roma
Link | Февраль 4th, 2011 at 12:36
чем сейчас занимаешься?)
Posted by roma
Link | Февраль 4th, 2011 at 12:36
Не сказать чтоб опыт) Пол года как начал осваивать.
Posted by dehimer
Link | Февраль 4th, 2011 at 14:23
Есть идея сервиса одного. Пока неизвестно как и что выйдет
Posted by dehimer
Link | Февраль 4th, 2011 at 14:25
значит скоро обрадуешь нас новым сервисом))
судя по домену — сервис на буржуев ориентирован?)
Posted by roma
Link | Февраль 4th, 2011 at 14:28
Точно) Изначально была идея и буржуев ухватить.
Не все сразу конечно
Posted by dehimer
Link | Февраль 4th, 2011 at 14:30
а хостинг у тебя свой или vds?
Posted by roma
Link | Февраль 4th, 2011 at 16:08
Сначала я на хостинге джино экспериментировал. Но постоянно лазить через ssh и ждать ответы тех. поддержки надоело. Сейчас на домашней машинке работаю. Благо что чебнет статический ip дает.
Posted by dehimer
Link | Февраль 4th, 2011 at 17:56
аналогично, с чебнетовским ип адресом на домашней машине)
Posted by roma
Link | Февраль 4th, 2011 at 22:29
dehimer, можешь свои контакты оставить? хотел с тобой переговорить
Posted by roma
Link | Февраль 18th, 2011 at 17:14
skype: d_e_h_i_m_e_r_1 — без нижних тире
Posted by dehimer
Link | Март 7th, 2011 at 21:38