我正在尝试在运行我的 Django 应用程序的 Apache 上运行 ssl 模块。为了在 Apache2 上运行 Django,我使用 wsgi(mod_wsgi.so 模块)。当 httpd.conf 中的以下行被注释时,一切都很好:
LoadModule ssl_module 模块/mod_ssl.so
我可以访问两个网址:http://mydomain:8080和http://mydomain:8080/mysite 但是如果我取消注释加载 ssl 模块的行我无法访问 url http://mydomain:8080/mysite 有一个错误:
内部服务器错误。
服务器遇到内部错误或配置错误,无法完成您的请求。
error.log 中有一条消息:
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] mod_wsgi (pid=932): Exception occurred processing WSGI script 'D:/Workspace/Python/wsgi_scripts/rfx.wsgi'.
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 250, in __call__
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] self.load_middleware()
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 39, in load_middleware
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] for middleware_path in settings.MIDDLEWARE_CLASSES:
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\functional.py", line 276, in __getattr__
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] self._setup()
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py", line 42, in _setup
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] self._wrapped = Settings(settings_module)
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py", line 89, in __init__
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Fri Mar 23 20:00:54 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'settings' (Is it on sys.path?): DLL load failed: The specified procedure could not be found.
我之前也遇到过这个错误,但我不知道为什么 mod_ssl.so 会影响这个。但我仍然可以访问http://mydomain:8080和https://mydomain。