Здравствуйте!
Уже несколько дней ушло на то что бы хоть что то понять в развёртывании Django приложения на локальном сервере Ubuntu 12.04; Apache 2.2.2; mod_wsgi; Django 1.8.
Всё работает на домашней машине. Настроен /etc/hosts для сайта:
127.0.1.1 ram.com
Прочитано море документации ссылок и рекомендаций. Как человек новый в этом деле могу сказать, что вопрос этот очень мутный для начинающих. Кое где пишут про настройки Apache в файле httpd.conf (в том числе в официальной документации Django 1.8), другие пишут что нужно настраивать файл в директории apache2/sites-available/ третьи вообще смешивают и то и это между собой в том числе много таких вопросов и на этом форуме. После прочтения в голове одна каша. Нашёл ссылку тут на форуме на документ по настройке [/examples/3/][1] Судя по нему речь про то что бы не трогать httpd.conf и делается всё в дирректории sites-available. Но и тут не всё гладко пока не прописал в место <VirtualHost *> вот это <VirtualHost *:80> ничего не запускалось вообще. Кроме того не понятно где должны лежать исходники Django. Есть опять несколько вариантов:
1) все лежит в /var/www/ram.com в папке Apache. 2) всё лежит, например,
в домашней папке /home/serg/ram.com
Также не совсем понятна судьба файла wsgi.py Нужно ли его выносить из проекта где он генерится автоматически в другую дирректорию?
Всё что есть в сети запутано и противоречиво и информация обрывочна. Хочу задать несколько вопросов тем кто уже давно разобрался в этом деле.
Вот что я успел попробывать и что получилось:
1) Пробывал настройки httpd.conf и ничего не настраивал в apache2/sites-available/
WSGIScriptAlias / /var/www/ram.com/wsgi.py
WSGIDaemonProcess ram.com processes=2 threads=4 maximum-requests=200 display-name=apache-trans-wsgi python-path=/var/www/ram.com:/home/serg/.virtualenvs/catalog/lib/python2.7/site-packages
WSGIProcessGroup ram.com
<Directory /var/www/ram.com>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
В таком варианте увидел долгожданное окно: It worked
Но перестали работать все другие хосты на php
Тогда перешли ко второму варианту который описан тут [/examples/3/][1]
вот код:
<VirtualHost *:80>
ServerName ram.com
ServerAdmin admin@ram.com
WSGIScriptAlias / /var/www/ram.com/wsgi.py
WSGIDaemonProcess ram.com processes=2 maximum-requests=100 threads=4 display-name=apache-ram.com-wsgi python-path=/var/www/ram.com:/home/serg/.virtualenvs/catalog/lib/python2.7/site-packages
WSGIProcessGroup ram.com
LogLevel debug
ErrorLog /var/www/ram.com/error.log
CustomLog /var/www/ram.com/acces.log combined
ServerSignature On
<Directory /var/www/ram.com>
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/ram.com/static>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
В таком варианте также видно долгожданное окно: It worked и уже работают другие хосты но не работает статика. Когда заходишь по пути
http://ram.com/admin появляется окно приглашения админки но без стилей и статики.
Вопросы в следующем:
1) Правильны ли все шаги описанные выши и способ установки Django
проекта в каталог Apacha /var/www/ram.com или нужно распологать
проект в домашней дирректории?
2) Правильно ли выбрана настройка Apacha для файла
/etc/apache2/sites-available/ram.com (при этом файл httpd.conf пустой )
3) Куда правильно ложить сгенерированый автоматом файл wsgi.py
сейчас я его вытащил с его родного места и положил рядом с файлом
manage.py на урвень выше, иначе все это хозяйство не запускалось,
кое где пишут что его wsgi.py - нужно вообще убрать из проекта в
другое. Куда убирать и как потом все настроить?
4) И самое главное как насторить статику что бы вся админка
работала. Сразу пишу что у меня STATIC_ROOT =
"/var/www/ram.com/static" команду python manage.py
collectstatic делал и вся статика Django админки собрана в этом
месте "/var/www/ram.com/static" как это всё оживить?
5) Где взять рабочие настройки /etc/apache2/sites-available и
где посмотреть все пути по которым расположен какй то минимальный проект
для примера.
Если кто знает, помогите буду благодарен, да и другим пригодится. Бороться дальше нету сил. Количество вариантов настроек превышает физические возможности -)). Самое лучшее это простой пример пустого Django проекта и все настройки к нему и пути к файлам проекта.
Updated 29 May 2015, 23:21 by Gradulin.