Моя библиотека - социальная сеть любителей книг

Интро

Уже пару месяцев я разбираюсь с Python & Django. И вот настало время выкладывать свои художества в сеть ) Правда, мой первый сайт на Django посвящен ведению отчетов по работе. Он довольно прост и хвалиться нечем. Вместо этого я расскажу как просто развертывается проект на Django + Nginx + FastCGI.

Устанавливаем

У меня на офисном сервере стоит Ubuntu.

Выполняем ритуальное:

# sudo aptitude update

Mysql

# sudo aptitude install mysql-server

Далее создаем пользователя и БД:

# sudo mysqladmin -u user password ********
# mysql -u user -p
> CREATE DATABASE `report` CHARACTER SET utf8;

Теперь установим библиотеку для работы Python с MySQL:

# sudo aptitude install python-mysqldb

Все, база настроена.

Django

Узнаем расположение “питоновских” библиотек:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Полученное значение подставляем, в листинг ниже. У меня это /usr/local/lib/python2.5/site-packages
Django устанавливаем последней версии из офф. репозитория, а вот путь:
З.Ы.: для python 2.6 путь -/usr/local/lib/python2.6/dist-packages/django

# cd /usr/local/lib/python2.5/site-packages
# sudo svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
# sudo ln -s django-trunk/django /usr/local/lib/python2.5/site-packages/django
# cd /usr/local/bin
# sudo ln -s /usr/local/lib/python2.5/site-packages/django-trunk/django/bin/django-admin.py django-admin.py

Nginx

Устанавливаем стандартным способом:

# mkdir ~/tmp
# cd ~/tmp
# wget http://sysoev.ru/nginx/nginx-0.6.36.tar.gz
# tar -xzf nginx-0.6.36.tar.gz
# cd nginx-0.6.36
# ./configure
# make
# sudo make install

Далее настраиваем Nginx для нашего сайта, создаем виртуальных хост для нашего проекта, добавляем секцию server в фалик /usr/local/nginx/conf/nginx.conf:
# sudo vim /usr/local/nginx/conf/nginx.conf


    server {
	server_name report.loc;
	location / {
	    root   /var/www/report.loc/www;
	    index  index.html index.htm;
	    fastcgi_pass 127.0.0.1:7777;

            include /usr/local/nginx/conf/fastcgi.conf;
	}
	location /media {
	    root /var/www/report.loc/www;
	}
	location /admin-media {
	    alias  /usr/local/lib/python2.5/site-packages/django-trunk/django/contrib/admin/media;
	}
    }

# sudo vim /usr/local/nginx/conf/fastcgi.conf


fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;

Перенос проекта

Файлы проекта будем хранить в месте не доступном для WEB-пользователя. Создаем в /var/www/report.loc/ каталог с именем своего проекта, в моем случае это publishing. И копируем в него все файлы проекта. Всю статику (js, css, img, etc) сайта я храню в одном каталоге media, т.е. /media/js/, /media/css/ & etc. Этот каталог будет находиться в web-директории, т.е. /var/www/report.loc/www/media.

Поехали!

Вот и все, все настроено, настало время запуска:
Инициализируем БД проекта:

# python /var/www/report.loc/publishing/manage.py syncdb

и запускаем сервер:

# python /var/www/report.loc/publishing/manage.py runfcgi host=127.0.0.1 port=7777
# /usr/local/nginx/sbin/nginx

Все (:



Комментарии (18) на запись «Django + Nginx + FastCGI»

  1. adw0rd MonsterID Icon adw0rd | 15.04.2009 в 08:57

    Да, действительно просто :)

    По питону порекомендуешь эту книгу?
    http://www.ozon.ru/context/detail/id/3889012/

  2. Larin MonsterID Icon Larin | 15.04.2009 в 09:22

    Привет!
    Конечно рекомендую - она же у меня в блоке справа “Хорошие книги” =) Только как вариант можно купить русский вариант, он просто дешевле )

    А так книга очень хорошая - для новичка как раз, хотя подойдет и для профессионалов )

  3. adw0rd MonsterID Icon adw0rd | 15.04.2009 в 09:44

    Сенк, куплю её :)

  4. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 09:33

    Купил http://adw0rd.ru/2009/python-first-book/

  5. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 09:34

    И по django http://adw0rd.ru/2009/django-first-book/

  6. Larin MonsterID Icon Larin | 02.09.2009 в 09:40

    @adw0rd, поздравляю!
    И как успехи в разработке на Питоне? “Кинсбург” - уже на Django построен? =)

  7. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 09:52

    Не, на django будет http://liburg.ru/ :)

  8. Larin MonsterID Icon Larin | 02.09.2009 в 09:53

    А что такое “либург”? О чем сайт?

  9. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 09:59

    В данное время, просто приоритеты расставлены так, что Python на первом месте! Чтобы серьезно попрактиковаться, я собираюсь на нем разрабатывать Либург (каталог IT-книг с рецензиями и очерками), в связке с Django.

    http://adw0rd.ru/2009/python-introduction/

  10. Larin MonsterID Icon Larin | 02.09.2009 в 10:10

    О! Тоже по книгам ) Если что могу предложить сотрудничество: “мойлиб” и “либург” )

  11. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 10:42

    Да, можем посотрудничать. Я в скайп тебя добавил :)

  12. polosatyi MonsterID Icon polosatyi | 13.05.2010 в 22:01

    Вот не люблю я пособия с ошибками и недописками!
    1) Неплохо бы рассказать начинающим, что комманда svn будет выполняться, если в системе установлен subversion.
    2) Неплохо бы указывать sudo для тех комманд, которые без этого выполняться не будут.
    Это моё суровое дилетантское замечание :)

  13. polosatyi MonsterID Icon polosatyi | 13.05.2010 в 22:09

    Выполнение инструкции make install закончилось ошибками (коды ошибок 1 и 2)

  14. polosatyi MonsterID Icon polosatyi | 13.05.2010 в 22:13

    А чем, собственно, не устраивает sudo aptitude install nginx?

  15. adw0rd MonsterID Icon adw0rd | 13.05.2010 в 23:18

    1. Если вы это не знаете, то лучше вам сменить область
    2. Смотря под кем вы это выполняете (и sudo не везде есть)

    >А чем, собственно, не устраивает sudo aptitude install nginx?

    может в пакетах была старая версия?

  16. polosatyi MonsterID Icon polosatyi | 18.05.2010 в 14:21

    >> Если вы это не знаете, то лучше вам сменить область
    Область чего? Специалиста по linux? Я и не претендую. А статья, как мне кажется, для начинающих.

  17. Larin MonsterID Icon Larin | 18.05.2010 в 16:08

    @polosatyi
    Статья написана, как “записка на память”, и по формату явно не для специалистов.

    З.Ы.

    Выполнение инструкции make install закончилось ошибками (коды ошибок 1 и 2)

    Вообще это нормально ))) К этому просто стоит привыкнуть, скорее всего на моменте ./configure скрипт писал, что не достает каких либо библиотек.

  18. adw0rd MonsterID Icon adw0rd | 18.05.2010 в 16:38

    @polosatyi, я о svn

Оставить комментарий


Copyright, 1983 – 2010