404没有find虚拟主机的错误

在我的/ etc / apache2 / sites-enabled中,我有一个文件site2.com.conf,它定义了一个虚拟主机,如下所示:

<VirtualHost *:80> ServerAdmin hostmaster@wharfage ServerName site2.com ServerAlias www.site2.com site2.com DirectoryIndex index.html index.htm index.php DocumentRoot /var/www LogLevel debug ErrorLog /var/log/apache2/site2_error.log CustomLog /var/log/apache2/site2_access.log combined ServerSignature Off <Location /> Options -Indexes </Location> Alias /favicon.ico /srv/site2/static/favicon.ico Alias /static /srv/site2/static # Alias /media /usr/local/lib/python2.5/site-packages/django/contrib/admin/media Alias /admin/media /var/lib/python-support/python2.5/django/contrib/admin/media WSGIScriptAlias / /srv/site2/wsgi/django.wsgi WSGIDaemonProcess site2 user=samj group=samj processes=1 threads=10 WSGIProcessGroup site2 </VirtualHost> 

我做了以下来启用该网站:

1)在/ etc / apache2 / sites-enabled中,我运行命令a2ensite site2.com.conf

2)然后我得到一个消息网站成功启用,然后我运行命令/etc/init.d/apache2重新加载。

但是,如果我导航到www.site2.com,我找不到404。 我在/ var / www(permissions:777和所有权www-data:www-data)中有一个index.html,我也已经validation在/ etc / apache2 / sites中为site2.com.conf创build了一个符号链接 – 启用。

有任何解决这个问题的方法吗 ?

谢谢。

您的WSGIScriptAlias指令表示除了显式的Alias匹配的静态文件之外,将所有内容发送到Django。 因此,如果您试图显式访问index.html,它将不会使用静态的,如果Django不知道如何处理它,它将返回404。什么是您正在使用的实际URL? 对于那个URL,你有Django的urls.py中匹配的configuration吗,所以Django知道该怎么做?

或者,问题可能是因为您实际上没有/srv/site2/wsgi/django.wsgi文件,或者因为您没有为/ srv / site2 / wsgi设置Allow指令,就像Django / mod_wsgi文档说的那样虽然缺乏通常会导致403。

build议你注释掉WSGIScriptAlias,看看会发生什么。 然后你需要正确地解释你想如何使用实际的例子。 在mod_wsgi网站上阅读Django集成指南也可能是一个好主意。

你有没有:

 NameVirtualHost *:80 

在你的configuration? 你需要在你的apacheconfiguration中包含这个(Debian的ports.conf),然后重新启动apache。