Django – среда обитания. Часть 3 – Установка Django

djangoВ этой части я постараюсь подробно рассказать об установке самой Django, Т.к. статья адресована, в основном, для человека, не знакомого с Linux системами, я буду подробно описывать каждый свой шаг (см. часть 1). Так же для продолжения, я буду исходить из того, что у вас уже есть web-сервер на Ubuntu, и он настроен так, как описано в части 2.

Чтобы работать дальше я скачал программу терминального доступа по SSH соединению – «putty.exe» вот отсюда

http://putty.org.ru/download.html

Она позволяет соединяться с сервером по защищенному соединению, но мне главное, что она позволяет делать копи/паст («Ctrl+ins»/«Shift+ins») и изменять размеры/цвет шрифта в терминальном окне. Так же она не «захватывает» мышку.

PuTTY без установки запускается из того места, куда скачаете.

Кстати, вы сейчас спокойно можете закрыть окно терминала ВК программы VMWare, наш ВК при этом будет продолжать работать.

Запускаем putty.exe, в поле «Host Name» вводим 10.10.10.42 (вы – свой)

r1-putty

рис. 1. PuTTY - Session

В секции «Session logging» ставлю переключатель на «SSH packet and raw data»

рис.2. PuTTY - logging

рис.2. PuTTY - logging

В секции «Windows Translation», в выпадающем списке «Received data … set» ставим «UTF-8», иначе вместо русских букв будут разные интересные символы.

рис.3. PuTTY - кодировка

рис.3. PuTTY - кодировка

Жмем кнопку «Open», на вопрос отвечаем «да», вводим логин, пароль на ВК.

Получаем – терминал на ВК.

рис.4. PuTTY - окно терминала

рис.4. PuTTY - окно терминала

Если щелкнуть правой кнопкой мышки на заголовке окна putty – вы окажетесь в контекстном меню, где выбрав пункт «Change Settings…» откроете окно установкок программы. В нем вы сможете изменить шрифт, а так же для того, чтобы не вводить каждый раз адрес и другие настройки, можно сохранить параметры:

рис.5. PuTTY - запись параметров сессии

рис.5. PuTTY - запись параметров сессии

Еще пару слов о VMWare. Эта программа позволяет делать «снимки» своих ВК. Только один момент – хранится самый последний «снимок» (может я просто не нашел, где можно добраться до списка «контрольных точек» :) )

Итак, выбрав в списке слева, интересующий нас ВК, в правой панели «Commands»  щелкаем на пункте «Snapshot», откроется выпадающий список. Для создания «снимка» выбираем «Take Snapshot», если у вас уже были «снимки» этой ВК, то программа предупредит вас о том, что перепишет последний «снимок». Идентификация их происходит по дате и времени.

Для восстановления состояния ВК, на момент последнего «снимка», нужно выбрать «Revert to Snapshot».

Надо ли выключать ВК при этих операциях? Если про восстановление все понятно, то сохранение я также делаю при выключенном ВК.

Для выключения ВК нажмите кнопку с красным квадратиком в верхней части окна программы VMWare. Я не знаю, корректно ли выключает ВК сама программа VMWare, т.е. без команды «shutdown» в терминале. Скорее всего – да, по крайней мере, я делаю так.

Теперь, если хотите, сохраните состояние вашего ВК.

Вновь запустим ВК, нажав кнопку с зеленым значком «>».

Запустим PuTTY. Если вы сохраняли сессию, то просто выберите ее. Если нет, то заново введите IP ВК, и все остальные настройки. После этого, возможно, придется немного подождать – ВК грузится. Потом введите логин и пароль.

Далее мы будем вводить различные команды в системе, так вот – регистр букв – всегда ИмЕеТ значение! Пользователи Windows – внимательнее.

Для безопасности в Ubuntu  изначально недоступен главный пользователь root. Именно от его имени будет происходить большая часть дальнейшей настройки. Попробуем переключиться на этого пользователя:

$ sudo su

(знак «$» – вводить не надо, так я буду обозначать приглашение системы на ввод команды от пользователя «evg»)

Система попросит ввести ваш пароль, и затем переключит на пользователя root. Строка приглашения ввода изменится с «evg@ubuntu:~$» на «root@ubuntu:/home/evg#». Теперь вы можете творить с системой что хотите. Но мы не будем этого делать, и просто вернемся к пользователю «evg» набрав в строке приглашения «exit». А если нам понадобится права пользователя «root», будем в начале команды писать «sudo». Этим мы  сообщим системе, что следующую команду надо выполнят от имени пользователя «root».

Теперь сделаем нашу работу в терминале Ubuntu немного приятнее, установим файловый менеджер «Midnight Commander». Почитать о нем можно, например, здесь – «http://www.ixbt.com/soft/filemanagers-linux.shtml#7».

Выполним следующую команду:

$ sudo apt-get install mc

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

рис.6. Установка - mc

рис.6. Установка - mc

Внимательный человек заметит, что приглашение в моей системе сменилось с «evg@ubuntu~$» на  «evg@ub43~$», это из-за того, что я сейчас в другом ВК нежели в начале статьи (и IP стал 10.10.10.43). При первом «прогоне» я не сделал некоторые иллюстрации. Чтобы восполнить данный пробел, а так же для проверки всего, я проделал установку еще раз.

Теперь введем

$ mc

Запустится файловый менеджер от имени пользователя evg.

рис.7. Файловый менеджер - mc

рис.7. Файловый менеджер - mc

Сейчас мы находимся в домашнем каталоге пользователя «evg», как видно – он пуст (несмотря на имеющиеся записи, это системные штучки, нам они не интересны).

В дальнейшем я буду продолжать установку без файлового менеджера. Вы можете его использовать, если запутаетесь/потеряетесь в лабиринтах файлов/папок/ссылок/устройств Linux. Запустив «mc» вы сможете быстро вернуть ориентацию :). Его можно запустить и под правами пользователя «root», предварительно переключившись на него, как описано ранее. Только будьте при этом осторожны, с этими правами можно сделать много нехорошего :).

Если оболочка не нужна на экране, нажмите F10 для выхода, либо «Ctrl+O» для того, чтобы временно убрать «mc» с экрана, возврат опять по «Ctrl+O» (привет NC и VC из 90-х…).

Я же пока вышел из программы «mc».

Для информации… Консоль хранит список набранных вами команд. Клавишами «вверх» и «вниз» можно, находясь в строке приглашения для ввода, выбрать нужную из истории команду.

Итак, займемся именно тем, для чего мы все это затеяли – установкой Django.

Будем брать самую «свежую» версию.

Для этого установим программу «subversion»

$ sudo apt-get install subversion

Для установки система «докачает» необходимые пакеты. Придется один раз ответить «д»а. По окончании этого процесса на экране будет примерно следующее:

рис.8. Установка Subversion

рис.8. Установка Subversion

ставим Django из последней сборки

$ svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk

(если у вас не получится установить mc или subversion на этом этапе – прочитайте следующую статью, а затем вновь вернитесь к этому месту установки)

Обратите внимание на пробел в команде перед словом «django-trunk».

Этой командой мы скачали последнюю версию  Django в каталог «django-trunk», который создался в нашей домашней папке. Чтобы увидеть это, запустите «mc», либо просто дайте команду

$ ls

она покажет все объекты в текущей папке.

Теперь, нам надо узнать, где Python хранит свои библиотеки.

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

Эта команда вывела – «/usr/lib/python2.6/dist-packages»

рис.9. Папка библиотек Python

рис.9. Папка библиотек Python

Теперь свяжем папку библиотек Python с папкой Django, которую вы скачали, командой «$sudo ln -s /home/_USER_/django-trunk/django _PACKAGES-DIR_ /django», где _USER_ – имя вашего пользователя, а _PACKAGES-DIR_ – папка библиотек Python.

У меня получилось следующее:

$ sudo ln -s /home/evg/django-trunk/django /usr/lib/python2.6/dist-packages/django

(стоит пробел между «/home/evg/django-trunk/django» и «/usr/lib/python2.6/dist-packages /django»)

рис.10. Добавление Django в библиотеки Python

рис.10. Добавление Django в библиотеки Python

Проверим установку.

Запустите интерпретатор Python

$ python

Строка приглашения изменится на «>>>».

Введите строку:

>>>import django

Если ничего не произошло – Django установлена.

Узнаем текущую версию:

>>>django.VERSION

У меня получилось – «1, 2, 0, ’alpha’,0»

Выйдем из интерпретатора Python – нажмите «Ctrl+D»

Если на предыдущем этапе после команды «>>>import django» вместо просто «>>>» интерпретатор еще и «поругался», то это значит, что вы допустили ошибку при создании символической ссылки. Выполните последовательно следующие команды:

$ cd /usr/lib/python2.6/dist-packages
$ sudo rm django
$ cd ~

Теперь вернитесь к рисунку 9. И проделайте все действия по установке еще раз.

Для иллюстрации процесс исправления символической ссылки я тоже проделал:

рис.11. Исправление неправильной ссылки

рис.11. Исправление неправильной ссылки

Теперь проверим работоспособность Django на сервере Apache.

Для этого нам необходимо поставить модуль «mod-wsgi», заодно обновим Apache.

$ sudo aptitude install apache2 libapache2-mod-wsgi

рис.12. Сатавим mod-wsgi

рис.12. Сатавим mod-wsgi

Вовремя установки, на вопросы, всегда отвечайте «Д»а или «Y»

За создание проектов в Django отвечает файл «django-admin.py», для того, чтобы не копировать его в папку каждого проекта, сделаем его доступным из любого места в системе:

$ sudo ln -s /home/evg/django-trunk/django/bin/django-admin.py /usr/local/bin

(есть пробел между «/home/evg/django-trunk/django/bin/django-admin.py» и «/usr/local/bin»)

Теперь создадим папку для проектов «django-projects» и папку нашего первого проекта «mysite_ss»

$ sudo mkdir -p /home/evg/django-projects/mysite_ss

Перейдем в каталог «mysite_ss» (если вы «потерялись» то команда «cd[ПРОБЕЛ]~» всегда вернет вас в домашний каталог)

$ cd ~
$ ls
$ cd django-projects/
$ ls
$ cd mysite_ss/
$ ls

На рисунке – команды и ответ системы после этого процесса

рис.13. Папка "mysite_ss"

рис.13. Папка "mysite_ss"

Напомню, что команда «ls» – выводит содержимое текущей папки, а команда «cd» – осуществляет переход в указанную папку. Если при наборе «пути» нажать «Тab», то система сделает авто дополнение имени папки/файла при однозначном его определении (т.е. если в папке есть «projects» и «programms», то для авто дополнения до «programms» нужно набрать хотя – бы «cd prog» и нажать клавишу «Tab»).

Итак, находясь в папке проекта, создадим его (назовем «mysite»):

$ sudo django-admin.py startproject mysite
$ ls

рис.14. Папка проекта

рис.14. Папка проекта

Скорректируем названия модуля для импорта

$ sudo perl -pi -e 's/mysite.urls/urls/g' mysite/settings.py

Добавим группу «evg»

$ sudo addgroup --quiet --system evg

Создадим директории:

Для настроек wsgi

$ sudo mkdir deploy

Для статики

$ sudo mkdir media

Для логов

$ sudo mkdir logs
$ ls

рис.15. Создаем дополнительные папки

рис.15. Создаем дополнительные папки

Ну и как вам Linux – весело, правда :)

Настал момент создания/редактирования файлов проекта. Конечно можно это делать и в терминале, с помощью редактора «vim» или «nano», но мне как-то по больше душе родные windows-программы. Поэтому следующим шагом я «расшарю» папку «django-projects» в локальную сеть.

$ sudo nano /etc/samba/smb.conf

Двигаем курсор вниз, до секции [global]

И изменяем строчки

workgroup = INTERWOOD  #(вы ставьте свою группу в локальной сети)
server string = eeddiitt #(тут можно любую строку)
security = share #(по умолчанию она была ниже, закомментированной и равна "user")
рис.16. Правим smb.conf (начало файла)

рис.16. Правим smb.conf (начало файла)

Затем, в самый конец файла, добавляем:

[django-projects] #(под этим именем папка будет видна в сети)
    path = /home/evg/django-projects
    available = yes
    browsable = yes
    public = yes
    writable = yes
    guest ok = yes
    guest only = yes
    create mask = 0777
    directory mask = 0777

рис.17. Правим smb.conf (конец файла)

рис.17. Правим smb.conf (конец файла)

Для сохранения надо нажать «Ctrl+O» и «Enter».

Для выхода – «Ctrl+X».

Перезапустим службу

$ sudo /etc/init.d/samba restart

Так как безопасность нам не нужна, то делаем следующее:

$ cd ~
$ sudo chmod 0777 django-projects/

на экране сейчас следующее:

рис.18. Перезапуск Samba

рис.18. Перезапуск Samba

на компьютере под Windows открываем сеть, находим наш ВК, открываем его, видим

рис.19. Расшаренный ресурс Ubuntu

рис.19. Расшаренный ресурс Ubuntu

заходим

рис.20. Папка mysite_ss

рис.20. Папка mysite_ss

и дальше

рис.21. Содержимое папки

рис.21. Содержимое папки

радуемся :)

Для проверки я попробовал создать папку, а затем в Ubuntu удалил ее, т.е. все работает!

Да, я забыл дать права 0777 на подпапки для «django-projects».

Ничего страшного, выполним команду еще раз, но с параметром «-R»

$ sudo chmod 0777 -R django-projects/

Теперь все нормально. С файлами проекта можно работать из-под Windows, по сети. Но пока не закрывайте PuTTY-терминал, он еще пригодится.

Хотя мы и может создавать/редактировать файлы из-под Windows, все же первые 2-а файла мы создадим в Ubuntu, с помощью редактора nano. Ответ на вопрос: «Зачем нам это надо?»  прост – Кодировки!

Да-да, именно разная кодировка символов в Ubuntu и Windows заставляет меня так сделать. Затем, когда мы уже запустим первый Django-проект, будем подбирать редактор, способный ничего не испортить с кодировками.

Итак, создадим файл mysite.ss в папке deploy

$ cd ~
$ sudo nano /home/evg/django-projects/mysite_ss/deploy/mysite.ss

Он должен быть таким:

рис.22. Файл mysite.ss

рис.22. Файл mysite.ss

Для того, чтобы вам все не набирать, его можно взять здесь. Напомню, что можно спокойно копировать/вставлять по «Ctrl+Ins»/«Shift+Ins»

Символ «\», в конце строки «WSGIDaemonProcess evg-site user=evg group=evg home=/home/evg/django-projects/mysite_ss/media/ \», экранирует перевод строки («Enter») т.к. вся строка не умещалась на экране для показа. Кстати, перед символом «\» – стоит «пробел». Если вы копируете, то советую вам, сначала скопировать первую часть строки, после » \» нажать «Enter», а затем только скопировать вторую часть строки. Можно так делать и далее по тексту, где встретиться экранирование символом «\».

По окончании ввода, нажмите «Ctrl+O», затем «Enter», затем «Ctrl+X»

Теперь создадим файл django.wsgi (лежит здесь)

$ sudo nano /home/evg/django-projects/mysite_ss/deploy/django.wsgi
рис.23. Файл django.wsgi

рис.23. Файл django.wsgi

Примечание:

Основу для этих файлов я взял с сайта debianworld.ru

Я нашел еще 2 места в сети, где была вышеуказанная статья. Но, думаю, это ссылка именно на «оригинал». Сужу по имени пользователя и группы, которые там используются (dw – похоже означает – debianworld). Кстати, если вы используете свои имена пользователя и группы, а так-же отличные от моих путь к проекту и версию Python’а, то сравнив файлы, легко сможете выяснить места в них, подлежащих исправлению согласно вашим настройкам :)

Добавим ссылку на виртуальный хост

$ sudo ln -s /home/evg/django-projects/mysite_ss/deploy/mysite.ss \
/etc/apache2/sites-available/mysite.ss

Обратите внимание – символ «\» экранирует перевод строки (Enter)

Затем создадим файл (его у меня не было, у вас, наверное тоже)  «/etc/apache2/conf.d/vhosts.conf»:

$ sudo nano /etc/apache2/conf.d/vhosts.conf

Добавим в него строку, следующего содержания:

ServerName ub43
 

рис.23.1. Файл vhosts.conf

рис.23.1. Файл vhosts.conf

где, «ub43″ – имя моего ВК.

Сохраним его, выйдем из него.

Включим наш виртуальный хост

$ sudo a2ensite mysite.ss

Перегрузим apache

$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart

рис.24. Перегружаем Apache

рис.24. Перегружаем Apache

Перейдем в Windows и добавим в файл «C:\Windows\System32\drivers\etc\hosts» строку:

10.10.10.43 wsgi.mysite.ss

Сохраним его и запустим Firefox.

В адресной строке надо написать wsgi.mysite.ss

рис.25. Приветствие Django

рис.25. Приветствие Django

Ура – Все работает!

Для продолжения читайте

Django – среда обитания. Часть 4 – Обновление Ubuntu

Размещено в Django · Метки: , , , , , , , , , , ,

Комментарии

Есть 44 коммент. к “Django – среда обитания. Часть 3 – Установка Django”
  1. Интересно было почитать. Сам тоже недавно начал изучать Django. Советую обратить внимание на пакет virtualenv для настройки рабочего окружения django проекта. В общем подписался на rss.

  2. admin:

    Спасибо за совет. Как сам разберусь – обязательно выложу здесь. Но это будет еще не скоро :).
    Рад, если помог в чем-то!
    И вдвойне рад первому отзыву на блоге:)))

  3. admin:

    Статья была исправлена, сейчас к сайту можно обращаться только по имени.
    Запрос по IP, т.е. если набрать в броузере 10.10.10.43 – откроет стандартное приветствие сервера Apache.
    Сейчас можно иметь сколько хочешь «Виртуальных Хостов», т.е. работать с несколькими сайтами. Необходимо только правильно настраивать для каждого файл виртуального хоста (в этой статье это mysite.ss)
    Если вы читали статью до времени выхода этого комментария, обновите страницу, нажав ‘Ctrl+F5′. (у меня в WordPress’e стоит кэш-плагин)

  4. Тим:

    Скорректируем названия модуля для импорта
    $ sudo perl -pi -e 's/mysite.urls/urls/g' mysite/settings.py

    для чего это нужно?

    • admin:

      Скажу честно, если со всем остальным более-менее разобрался, то это для меня тоже загадка. Точнее, незачем было с этим разбираться. Сделал это согласно статье на ДебианМире :). Т.к. сейчас сервер работает так, как мне надо, то и разбираться не хочу :)
      Сейчас у меня на серваке 2 сайта «вертятся». Завтра буду 3-й добавлять, попробую сделать это без данной операции :)

  5. Тим:

    Я вот тут для разработки решил тоже прикрутить проект к apache, токо вот у меня проект в виртуальном окружение (virtualenv) вроде апач запустил только как то странно и не понятно все работает, он уменя по httр://127.0.0.1/ выводит приветствие но я сменил этот ip на другой а он все продолжает выводить приветствие по httр://127.0.0.1/ (это что его дефолтный ip и я что то не правильно делаю ) какой я должен прописать ip в тоже не понятно?

    • admin:

      Адрес 127.0.0.1 – это т.н. «заглушка», ссылка компьютера на самого себя в адресном пространстве, синоним его – «localhost». Он, действительно, по умолчанию открывает «приветствие» Apache.
      Я так понял, что вы хотите добавить на сервер ВиртуальныйХост. Имя для своего, разрабатываемого сайта.
      И делаете вы это, скорее всего в Windows :) Если я прав, то попробуйте поискать в гугле по фразе «настройка виртуальных хостов в Apache». Сегодня утром я находил очень много инфы на эту тему.
      Если же я не прав, и вы работаете в Ubuntu, то ответы в статье.

  6. Тим:

    Нет делаю я на debian! скажите я так понял что мой внутрений ip 192.168.1.33 я могу на него или на 127.0.0.1 повесить проект для разработки? в /etc/hosts сделал вот так
    127.0.0.1 localhost
    127.0.1.1 debian
    192.168.1.33 wsgi.mysite.ru

    # The following lines are desirable for IPv6 capable hosts
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    когда захожу на 192.168.1.33 или wsgi.mysite.ru получаю ошибку
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, admin@wsgi.mysite.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at wsgi.mysite.ru Port 80!

    • admin:

      Понятно :)
      Точно не знаю, но я бы сделал так…
      В файл hosts
      127.0.0.1 localhost
      192.168.1.33 debian
      192.168.1.33 wsgi.mysite.ru

      где «debian» – имя вашего компьютера
      В файл /etc/apache2/conf.d/vhosts.conf
      ServerName debian
      Затем настроить VirtualHost, т.е. проделать все, что в этой части статьи, кроме настройки службы samba.
      По идее – должно заработать.

      Хочу добавить – эта статья, все ее 10 частей, я написал именно из-за того, чтобы вы не заморачивались с настройками (в том числе и с virtualenv). Прочитайте все, начиная с 1-й части. Если понравится – сделайте аналогично. Плюсы – налицо. Из минусов, один – синхронизация версий Python и Django на «сервере» и «рабочем клиенте», по моему, он легко решается.
      Подумайте над целью изучения Django. В любом случае это – работающий сайт.
      Т.е. все равно проект надо будет переносить на сервер.
      У меня же сейчас – готовый работающий сервер. Если мне надо, сделаю несколько ВК, с разными ОС, Python, Django.
      В том числе это возможно и если у вас 1 компьютер, и он под Debian. Есть множество программ ВиртуальныхМашин и под Linux. Все, что вам требуетя – это создать виртуальную локальную сеть со статичными адресами между основным компом и виртуальным сервером. А дальше – все настройки, начиная со второй части.
      Подумайте. Я так сделал, и не пожалел, пока еще:)

  7. Тим:

    Спасибо!

    • admin:

      Т.е. помогло? (самому просто интересно :))
      Или будете ВиртМашину ставить?

      • Тим:

        не помогло, буду пока это добивать, но потом попробую с вм!

        • admin:

          Судя по ответу в ошибке – сайт у вас к Апачу «прицепился». Т.е. не верны настройки файла ВиртХоста. А по этому поводу сказать не могу ничего, т.к. там есть и настройки связанные с virtualenv (вы же должны как-то «подсовывать» этот «env» Апачу), а его (virtualenv) я не знаю. И не узнаю, т.к. ненадо :)
          Удачи!

          • admin:

            уточню… не «…не верны настройки файла ВиртХоста…», А – возможно не верны настройки файла ВиртХоста, или настройки связанные с этим файлом в virtualenv.

  8. Тим:

    Все получилось настроил нечего сложного! Не подскажишь где посмотреть инфу команд апача и как сделать
    несколько проектов а то ип всего один и постоянно менять настойки проекта как то не очень удобно, можно как нибудь айпи добавить?

    • admin:

      Там особо ничего и не надо делать. Т.е. 1 – создаешь еще один файл виртхоста (как здесь),2 – ‘энаблируешь’ новый сайт, 3- добавляешь в файл hosts еще одну строку с тем же IP но с другим именем, 4- ‘рестартишь’ Апач… и все.

    • admin:

      поправлюсь – создаешь, конечно же, 2 файла как здесь и как здесь. Т.е. все надо сделать как и для 1-го сайта. Только ставить везде пути и названия второго проекта\сайта

  9. Тим:

    Нет так не получаеться вот мои фаилы настроек!

    # Описание сервера
    ServerAdmin admin@www.mysite.ru
    ServerName http://www.mysite.ru

    # Описание сервера
    ServerAdmin admin@www.sparta-wrestling.ru
    ServerName http://www.sparta-wrestling.ru

    /etc/hosts
    127.0.0.1 localhost
    192.168.1.33 debian
    192.168.1.33 http://www.sparta-wrestling.ru
    192.168.1.33 http://www.mysite.ru

    # The following lines are desirable for IPv6 capable hosts
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    вот лог апача

    debian:/home/user# sudo /etc/init.d/apache2 reload
    Reloading web server config: apache2[Tue Dec 29 01:41:08 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive
    .
    debian:/home/user# sudo /etc/init.d/apache2 restart
    Restarting web server: apache2[Tue Dec 29 01:41:17 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive
    … waiting .[Tue Dec 29 01:41:19 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive

  10. Тим:

    Все время срабатывает http://www.mysite.ru!

  11. Тим:

    все получилось надо так *80 а не айпишник! спасибо! а чем команды отличаються
    apache2 reload
    apache2 restart?

    • admin:

      по идее, в нашем случае, хватит любой из них и одной.
      Написал 2-е, на всякий случай, чтоб наверняка. Чем конкретно отличаются – сказать трудно. Предположу: reload – перегружает список виртХостов, restart – полностью останавливает и запускает вновь сервер.

    • admin:

      Я пытался вначале написать в ответе 1-ю строку из этого файла, но ВордПресс «не пускает» символы «больше\меньше», думает, что тег :) Вот я и написал «…буква в букву…» :)
      Рад, что разобрались.
      Т.е. virtualenv все же?

      • Тим:

        пока да, но я думаю что приду и к твоему способу тоже, просто пока рано еще! а можно как кто с моими граблями пробывать SSH так для общего развития, или обезательно нужен вирт комп?

        • admin:

          PuTTY – Это просто терминал по защищенному протоколу. Я ей пользуюсь так как в ней можно делать копи\паст из основного компа, и шрифт настроить. Т.е. в твоем случае – проще просто в командной оболочке (или как там в дебиане это называется)

  12. Nick:

    Спасибо за статью, очень полезна для меня оказалась.

    Нашел очепятку в команде. У Вас написана:
    $ sudo ln -s /home/evg/django-trunk/django /usr/lib/python2.6/dist-packages/django
    а надо
    $ sudo ln -s /home/evg/django-trunk/trunk/django /usr/lib/python2.6/dist-packages/django
    иначе линк создается на не существующую папку.

    Еще раз спасибо.

    • admin:

      Спасибо за замечание. Но…
      Я делал скрины всех команд, см. рис. 10. Т.е. у меня папки «…/django-trunk/trunk…» – нет :).

  13. onlyfreedigits:

    1)
    $ sudo apt-get install mc сразу
    не заработал. перед этим надо было вызывать
    $ sudo apt-get update

    2) при конфиге smb.conf забыл в пути ресурса имя пользователя на свое поменять и поэтому немного мучался. Вроде тут все.

    • admin:

      1. да, это возможно. Я там ниже сделал примечание:

      (если у вас не получится установить mc или subversion на этом этапе – прочитайте следующую статью, а затем вновь вернитесь к этому месту установки)

      2. Если у Вас отличаются пути/имена папок/проектов и проч. (а это вполне естественно), внимательнее смотрите на скрины (для этого я их и делал так подробно :)).

  14. dddeadhorse:

    КАКОЙ ЗАМЕЧАТЕЛЬНЫЙ ЦИКЛ!!!
    Автору &mbash; глубокое мерси!
    ===========================

    Только вот… Сделал всё в точности как было велено, но при попытке перейти по адресу http://wsgi.mysite.ss/, получил следующую \»красоту\»:

    ImportError at /

    No module named mysite.urls

    Request Method: GET
    Request URL: http://wsgi.mysite.ss/
    Django Version: 1.3 SVN-15912
    Exception Type: ImportError
    Exception Value:

    No module named mysite.urls

    Exception Location: /usr/lib/python2.6/dist-packages/django/utils/importlib.py in import_module, line 35
    Python Executable: /usr/bin/python
    Python Version: 2.6.4
    Python Path:

    ['/usr/lib/python2.6',
    '/usr/lib/python2.6/plat-linux2',
    '/usr/lib/python2.6/lib-tk',
    '/usr/lib/python2.6/lib-old',
    '/usr/lib/python2.6/lib-dynload',
    '/usr/lib/python2.6/dist-packages',
    '/usr/lib/python2.6/dist-packages/PIL',
    '/usr/lib/pymodules/python2.6',
    '/usr/lib/pymodules/python2.6/gtk-2.0',
    '/usr/local/lib/python2.6/dist-packages',
    '/home/evg/django-projects/mysite_ss/mysite']

    Server time: Fri, 25 Mar 2011 05:47:42 -0500
    ……..
    ……..
    Если угодно, могу продолжить.

    VM: VirtualBox
    HOST: Windows XP SP 3
    GUEST: Ubuntu Server 9.10
    Django ver.: 1, 3, 0, \’final\’

    Заранее благодарен

  15. dddeadhorse:

    Насколько я понимаю, ему нужен модуль mysite.urls
    Что это, нововведение в свежей версии Django?

    • admin:

      Тут уже спрашивали про этот файл в четвертом комменте.
      Мой ответ не изменился – я не знаю :), но он (mysite.urls) нужен, иначе не работает.

      • dddeadhorse:

        Да-да, команду sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py я выполнял, но файла mysite.urls нигде не появилось.
        В какой же папке он должен находиться? И что должен содержать?

        • admin:

          Посмотрите откуда вы эту команду выполняли.
          Делать ее надо из mysite_ss (в моем случае), чтобы нашелся путь «mysite/settings.py»
          Возможно в этом причина.

          • dddeadhorse:

            Так точно-с!
            Выполнял именно в этой папке. Результат – нулевой.

            В Вашем случае, для проекта mysite, где же он всё-таки лежит и что содержит?
            Pleeeeeeeease!..

  16. admin:

    К сожалению сейчас нет под рукой проекта с такими настройками (статье уже 1,5 года). Рад бы подсказать, но не могу :(
    К тому же на django 1.3.0 я не проверял.
    Посмотрите – у Вас сеть работает между основным и виртуальным компьютером?
    Затем попробуйте не спеша еще раз все проделать, с самого начала (там делов на 40 мин).

    • dddeadhorse:

      Гость пингует хозяина. Хозяин пингует гостя.
      Страница Apache «It works!» видна. Расшаренные папки тоже видны…

      Эх, ладно… Пойдём по-новой.

      Спасибо!

  17. defen:

    Замечательная статья! Автору огромное спасибо.
    Но …(
    При установке Ubuntu 10.10 в VirtulBox-е возникли, на данный момент, несколько вопросов:
    (django.VERSION 1, 3, 0, ‘final’, 0)

    1).

    $ sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py
    Print error: “Can’t open mysite/settings.py: Нет такого файла или каталога.”

    !!! Не понятно: то работает, то нет!

    2).

    $ sudo /etc/init.d/samba restart
    sudo: /etc/init.d/samba: command not found !!!!)

    Просмотрев папку, действительно, samba нет
    Для начала решил тупо набрать:

    $ samba
    Программа ’samba’ на данный момент не установлена. Вы можете установить её, выполнив:
    sudo apt-get install samba4

    В линуксе я профан, чем отличается samba от samba4 не знаю, потому для начала:

    $ sudo apt-get install samba
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    Уже установлена самая новая версия samba.
    обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 143 пакетов

    не обновлено.

    Не понял! Что это значит! Если стоит «самая новая версия», то почему не работает?! Если ее

    нет, почему не устанавливается?

    2-й вопрос samba4. Установка прошла успешно – рестарт:

    $ sudo samba4 restart

    Unknown parameter encountered: «passwd program»
    Ignoring unknown parameter «passwd program»
    Unknown parameter encountered: «pam password change»
    Ignoring unknown parameter «pam password change»
    Unknown parameter encountered: «map to guest»
    Ignoring unknown parameter «map to guest»
    Unknown parameter encountered: «usershare allow guests»
    Ignoring unknown parameter «usershare allow guests»
    Unknown parameter encountered: «guest ok»
    Ignoring unknown parameter «guest ok»
    Unknown parameter encountered: «guest ok»
    Ignoring unknown parameter «guest ok»
    Unknown parameter encountered: «public»
    Ignoring unknown parameter «public»
    Unknown parameter encountered: «writable»
    Ignoring unknown parameter «writable»
    Unknown parameter encountered: «guest ok»
    Ignoring unknown parameter «guest ok»
    Unknown parameter encountered: «guest only»
    Ignoring unknown parameter «guest only»

    Следующие вопросы, возможно, возникли, как следствие, и потому пока придержу.

    • admin:

      1. Обратите внимание из какого каталога выполняете данную команду (см. рис. 14, т.е. в этом каталоге должна быть папка ‘mysite’). Или пропишите полный путь к mysite/settings.py (у Вас не находит settings.py)

      2. Установка самбы была во второй части, в статье ‘Django – среда обитания. Часть 2 – Установка VMWare и Ubuntu‘, см рис. 13
      т.е. ставилась серверная Ubuntu, и соот-нно самба устанавливалась сразу при инсталляции ОС.
      Гарантировать, что будет все работать с новыми версиями ОС и Django я не могу, ибо уже давно не делал такую настройку – пересел полностью на Ubuntu.

      PS Обращайте внимание на скрины – из них можно понять в каком каталоге какую команду я делал

  18. defen:

    Спасибо за ответю В эти дни, из-за нехватки времени, мне не удалось подойти к своим проблемам вплотную. Решил переустановить все, а там посмотрим.

  19. Hohot:

    Ох, сколько промучился, но все таки сделал это)

    It worked!
    Congratulations on your first Django-powered page.

    А вся проблема была в том, что при создании проекта получилось не так как у вас, видимо с новыми настройками, что-то поменяли. Получилось что при создании проекта, вместо пути:

    mysite_ss/mysite – и лежащими в этой папке конфигурационными файлами.

    У меня получилось:

    mysite_ss/mysite
    /mysite/__init__.py, __init__.pyc, settings.py, settings.pyc, urls.py, urls.pyc, wsgi.py
    /manede.py

    То есть, в папке mysite создалась еще папка mysite и уже в ней были конфигурационные фалы.
    Соответственно, после всех операций и попытке перейти по урлу: wsgi.mysite.ss – я получил: Internal Server Error 500.

    Пришлось подумать самому :) Заодно и в настройках получше разобрался.
    И так, чтобы все работало, нужно в фале django.wsgi в строке:

    # Установка файла настроек
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

    добавить к settings саму папку в которой лежит файл:

    # Установка файла настроек
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

    После этого перезапуск апача и… снова ошибка, только уже все гораздо интереснее расписано :) Переписывать все не буду, суть в том, что теперь не находит файл ‘urls’ – который так же лежит в подпапке:

    mysite/misite/urls.py

    Что же, раз теперь путь к файлу ‘mysite.settings’ правильный, и файл находится верно, но возникает дальнейшая ошибка, значит лезем в этот файл и смотрим там. Находим причину:

    ROOT_URLCONF = 'urls'

    А нужно сделать:

    ROOT_URLCONF = 'mysite.urls'

    И снова перезапустить апач.
    Все! Теперь нас приветствует страница, поздравляющая с успешным запуском первого проекта на Django :)

  20. CMR:

    очень полезная серия статей, большое спасибо автору и его трудам!

    но дабы не попасть в просак с новыми версиями джанго, поскольку мы устанавливали все из SVR, мы оказываемся «на острие» и лично я получил уже версию 1.5, а они зачем-то изменили структуру каталогов и теперь при создании проекта появляется 2 папки с одним названием, как уже указывалось в предыдущем посте господином Hohot. У меня вопрос как мне безопасно справиться с импортом при вводе команды

    $ sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py

    должно получиться что то типа $ sudo perl -pi -e ’smysite/mysite.urls/urls/g’ mysite/mysite/settings.py ???

    заранее благодарен за ответ!

Поделитесь своим мнением