错误:在 apache 上运行 django 时找不到目标 WSGI 脚本或无法统计

Posted

技术标签:

【中文标题】错误:在 apache 上运行 django 时找不到目标 WSGI 脚本或无法统计【英文标题】:Error: Target WSGI script not found or unable to stat when run django on apache 【发布时间】:2012-03-18 00:49:48 【问题描述】:

在 apache 上运行 django 时遇到问题:

htdocs/blog/apps/homepage/urls.py:

url(r'^$', 'index', name="h_index"),
url(r'^about/$', 'about', name="h_about"),
url(r'^contact/$', 'contact', name="h_contact"),
url(r'^archive/$', 'archive', name="h_archive"),

htdocs/blog/urls.py

(r'^', include('apps.homepage.urls')),

django.wsgi:

import os
import os.path
import sys

sys.path.append('D:/Coding/xampp/htdocs')
sys.path.append('D:/Coding/xampp/htdocs/blog')

os.environ['DJANGO_SETTINGS_MODULE'] = 'blog.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

httpd.conf:

Alias /static/ "D:/Coding/xampp/htdocs/blog/static/"
WSGIScriptAlias /blog/ "D:/Coding/xampp/htdocs/blog/django.wsgi"

当我运行“localhost/blog”时,它正在工作。但是运行“localhost/blog/about/”之类的,就报错了:

[error] [client ::1] Target WSGI script not found or unable to stat:   .../htdocs/blog/django.wsgiabout, referer: http://localhost/blog/

【问题讨论】:

【参考方案1】:

请注意您的 apache 配置与 mod_wsgi 的 WSGIScriptAlias 记录的语法不匹配。

WSGIScriptAlias /blog/ "D:/Coding/xampp/htdocs/blog/django.wsgi"

应该是:

WSGIScriptAlias /blog "D:/Coding/xampp/htdocs/blog/django.wsgi"

(注意第二个标记“/blog”后面没有斜杠)

我刚刚解决了同样的问题,并在谷歌上找到了这个帖子。希望这对您和未来的用户有所帮助。

更多信息:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

【讨论】:

【参考方案2】:

我怀疑你没有加载 wsgi 模块。如果您仔细查看错误消息,Apache 会将其视为文件并将 about 添加到它要查找的 wsgi 脚本文件的名称中 - 因此它找不到它。

【讨论】:

wsgi 模块? LoadModule wsgi_module modules/mod_wsgi.so

以上是关于错误:在 apache 上运行 django 时找不到目标 WSGI 脚本或无法统计的主要内容,如果未能解决你的问题,请参考以下文章

当我在 pydriod 3 应用程序上运行 python manage.py runserver 时找不到模板

mod_wsgi 错误:ModuleNotFoundError:没有名为“django”的模块

错误:在 windows7 中安装 PIL 时找不到 vcvarsall.bat [重复]

在摩托罗拉手机上运行 ndk-gdb 时找不到包错误

在 Elastic Beanstalk 上部署时找不到模块 Django

使用 Django / virtualenv 运行 celery 时找不到“__main__”模块