0

在 Windows Server 2008 R2 Wamp 机器上安装了 Python 和 Django。一切都很好,除了以前在 LAMP 机器上的 django/python 网站的移植版本。

通过 Web 浏览器访问虚拟主机时出现 500 内部服务器错误

我从 apache 得到这个错误日志:

[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] mod_wsgi (pid=1788): Exception occurred processing WSGI script 'C:/Wamp/www/mysite_com/mysite_com.wsgi'.
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] Traceback (most recent call last):
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 255, in __call__
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     response = self.get_response(request)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 178, in get_response
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 220, in handle_uncaught_exception
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     if resolver.urlconf_module is None:
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\core\\urlresolvers.py", line 342, in urlconf_module
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     self._urlconf_module = import_module(self.urlconf_name)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]   File "C:\\Python27\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1]     __import__(name)
[Tue Aug 06 12:29:27 2013] [error] [client 127.0.0.1] ImportError: No module named urls

这是我的 .wsgi 应用程序:

import os, sys

sys.path.append('c:/Wamp/www/')
os.environ ['DJANGO_SETTINGS_MODULE'] = 'mysite_com.settings'

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

还有我的 apache 虚拟主机

<VirtualHost *:80>
        ServerName mysite.com
        ServerAlias www.mysite.com
        DocumentRoot "C:/Wamp/www/mysite_com/"
        WSGIScriptAlias / "C:/Wamp/www/mysite_com/mysite_com.wsgi"
</VirtualHost>

文件夹结构

   \www
       \mysite_com
                  \__init__.py
                  \settings.py
                  \urls.py
                  \manage.py
                  \mysite_com.wsgi

有什么建议吗?谢谢

4

1 回答 1

0

您将站点路径添加到系统路径错误。请参阅在 Linux 中您将使用正斜杠“/”,而在 Windows(您似乎正在使用)中使用反斜杠“\”。当然,您需要将它们加倍,这样它就不会被呈现为转义字符串:

sys.path.append('C:\\wamp\\www')

当然,这样会容易得多:

sys.path.append(r'C:\wamp\www')

看看 - 你的服务器可以找到 wsgi 应用程序,因为你告诉 apache 在哪里可以找到它,所以它会抱怨它找不到的下一个模块(恰好是 urls.py)。我已经在评论中回答了,但我想解释一下为什么你会以特定的方式看到错误会有所帮助。

ps 如果这仍然不起作用,您可能需要将路径附加到您的实际应用程序:

sys.path.append(r'C:\Wamp\www\mysite_com')
于 2013-08-06T11:45:11.957 回答