а вообще же нельзя в hosts порты писать. И не должно работать.
Кстати, а зачем именно 8000 порт?
Я сам удивился, но работает. 8000 по привычке, по аналогии как раз с development server у Django.
И, простите, может и глупый вопрос, но не пытаетесь ли вы при этом запускать runserver?
Ни в коем случае.
Может это уточнит мою проблему, цель всего проекта такова:
Открываю страницу, на ней форма, поле ввода (Введите домен), кнопка отправить. Форма обрабатывается приложением Django domains, приложение должно создать домен в Apache по имени указанном в форме. Привожу листинг /domains/views.py:
from django.shortcuts import render
from django.http import HttpResponse
from domains.models import DomainName
import os, sys
def createDomain(request):
DomainName = request.POST['domain_name']
path = os.path.join('/etc/apache2/sites-available/', DomainName + '.conf')
conf = open(path, 'w+')
conf_text = '<VirtualHost 127.0.0.1:80>\n\n ServerName ' + DomainName + '\n ServerAlias ' + DomainName + '\n\n DocumentRoot "/var/www/' + DomainName + '"\n\n <Directory "/var/www/' + DomainName + '">\n allow from all\n Options +Indexes\n </Directory>\n\n</VirtualHost>'
conf.write(conf_text)
conf.close()
dst = os.path.join('/etc/apache2/sites-enabled/' + DomainName + '.conf')
try:
os.symlink(path, dst)
except OSError:
sys.exc_clear()
hosts = open('/etc/hosts', 'a')
hosts.write('127.0.0.1 ' + DomainName + '\n')
hosts.close()
try:
os.mkdir(os.path.join('/var/www/', DomainName))
except OSError:
sys.exc_clear()
os.system('/etc/init.d/apache2 restart')
return HttpResponse('Domain has been created\n')
Так вот, домен создается, Apache перезаводится, могу перейти по DomainName, но логично то, что обновить страницу с Django-проектом я уже не смогу, ибо там теперь живет Apache. Опять же, на локальном устройстве я не могу завести development server на 1.2.3.4:8000. Поэтому я задался идеей хостить проект Django уже в Apache.