Python Apache2主机,url未与mod_wsgi一起提供

Python Apache2主机,url未与mod_wsgi一起提供,python,django,apache,ubuntu,mod-wsgi,Python,Django,Apache,Ubuntu,Mod Wsgi,刚刚声明要用Django主持一个网站,问题是这样的 我将一个html文件放在/usr/local/django/virenv/Personal/mysite.com/下进行测试,它也是000 default.conf中的文档根目录,可以通过mysite.com访问该页面 然后我启动了一个django项目和一个应用程序,在app/view.py中 from django.shortcuts import render from django.http import HttpResponse

刚刚声明要用Django主持一个网站,问题是这样的

我将一个html文件放在
/usr/local/django/virenv/Personal/mysite.com/
下进行测试,它也是
000 default.conf
中的文档根目录,可以通过mysite.com访问该页面

然后我启动了一个django项目和一个应用程序,在app/view.py中

from django.shortcuts import render
from django.http import HttpResponse    
def index(request):
        return HttpResponse("Hello, a django view.")
在app/url.py中,我将

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^index$', views.index, name = 'index'),
]
将以下内容添加到project/url.py

urlpattrens = [
    url(r'^home/', include('app.urls')),
    # below is admin url created with startproject
    url(r'^admin/', admin.site.urls)),
]
最后,我在project/settings.py中将defesth=False,并将ip添加到允许的_主机

python manage.py运行服务器ip:8080之后,ip:8080/home/index和ip:8080/admin都可用

接下来,我尝试重新启动apache2,转到mysite.com/admin和mysite.com/home/index

都得到

404
Not Found The requested URL /admin was not found on this server.
我猜mod_wsgi不起作用了

httpd.conf看起来像

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / /usr/local/django/virenv/Personal/mysite.com/project/wsgi.py process-group=mysite.com
WSGIPythonHome /usr/local/django/virenv
WSGIDaemonProcess mysite.com python-home=/usr/local/django/virenv python-path=/usr/local/django/virenv/Personal/mysite.com
WSGIProcessGroup mysite.com
WSGIApplicationGroup %{GLOBAL}

<Directory /usr/local/django/virenv/Personal/mysite.com/project>
<Files wsgi.py>
Order allow,deny
Allow from all
Require all granted
</Files>
</Directory>

<Directory /usr/local/django/virenv/Personal/mysite.com/>
     Order allow,deny
     Allow from all
     Require all granted
     Options -Indexes +FollowSymLinks -Includes
</Directory>
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /usr/local/django/virenv/Personal/mysite.com
        <Directory /usr/local/django/virenv/Personal/mysite.com>
            AllowOverride All
            Options +FollowSymLinks
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
设置为
chmod a+x
chmod a+r

有什么猜测或解决办法吗

编辑:顺便说一下,在wsgi.py中

import os
import sys # added from other stack overflow answers
import django.core.handlers.wsgi as WSGIhand # added from other posts
os.environ.["DJANGO_SETTINGS_MODULE"] = "project.settings"

application = WSGIhand.WSGIHandler()

您不应将
DocumentRoot
设置为应用程序代码所在的位置。如果你在Apache配置中塞满了一些东西,这意味着人们可以下载你的源代码,包括Django设置文件中的敏感信息?除了
LoadModule
,它应该在
VirtualHost
定义中。另外,由于使用了守护程序模式,所以不再严格需要WSGIPythonHome了。而且您的wsgi.py文件不是Django在启动项目时为您生成的,为什么要更改它?看起来是基于什么将用于更旧的Django版本。
import os
import sys # added from other stack overflow answers
import django.core.handlers.wsgi as WSGIhand # added from other posts
os.environ.["DJANGO_SETTINGS_MODULE"] = "project.settings"

application = WSGIhand.WSGIHandler()