语境
- Python 2.7 64 位
- 姜戈 1.3
- WAMP 2.2 (Apache 2.2.22) 64 位
- mod_wsgi 3.4 64位
- 视窗 7 64 位
详情 | Apache httpd.conf
...
Listen 192.168.20.11:8080
...
LoadModule wsgi_module modules/mod_wsgi.so
...
ServerName 192.168.20.11:8080
...
DocumentRoot "c:/wamp/www/"
...
<VirtualHost *:8080>
ServerName 192.168.20.11
ServerAdmin me@mine.com
DocumentRoot "C:/wamp/www/myapp"
<Directory "C:/wamp/www/mapp">
Order allow,deny
Allow from all
</Directory>
Alias /myapp/static "C:/wamp/www/myapp/static"
WSGIScriptAlias /test "C:/wamp/www/myapp/wsgi.py"
</VirtualHost>
详情 | wsgi.py
由 Django 的 startproject 生成。位于默认 /myapp/myapp/wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
问题
鉴于上述上下文,无法在 WAMP 上部署 Django 应用程序。
“Hello World”测试 wsgi 应用程序工作正常,所以我确认 mod_wsgi 处于活动状态。
我得到错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请联系服务器管理员 me@mine.com 并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。
服务器错误日志中可能提供有关此错误的更多信息。
当指向:
http://192.168.20.11:8080/myapp
静态文件夹工作正常,我可以通过指向来访问目录中的所有静态文件:
http://192.168.20.11:8080/myapp/static
详情 | 服务器错误日志
注意:为了便于阅读,我删除了时间戳。
mod_wsgi (pid=5728, process='', application='192.168.20.11:8080|/myapp'): 加载 WSGI 脚本'C:/wamp/www/myapp/myapp/wsgi.py'。
mod_wsgi (pid=5728): 处理 WSGI 脚本时发生异常
'C:/wamp/www/myapp/myapp/wsgi.py'。
回溯(最近一次通话最后):
文件“C:\Python27\lib\site-packages\django\core\handlers\wsgi.py”,第 236 行,调用中
self.load_middleware()
对于 settings.MIDDLEWARE_CLASSES 中的中间件路径:
文件“C:\Python27\lib\site-packages\django\conf\_ init _.py”,第 52 行,在getattr
self._setup(名称)
_setup 中的文件“C:\Python27\lib\site-packages\django\conf\_ init _.py”,第 47 行
self._wrapped = 设置(settings_module)
文件“C:\Python27\lib\site-packages\django\conf\_ init _.py”,第 132 行,在init
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" %(self.SETTINGS_MODULE, e))
ImportError:无法导入设置“myapp.settings”(它在 sys.path 上吗?):没有名为 myapp.settings 的模块
文件不存在:C:/wamp/www/myapp/favicon.ico
在这种情况下,我不了解中间件的功能,并认为没有必要使用中间件。
关于系统路径,当我添加时:
WSGIPythonPath "c:/wamp/www/myapp"
到我的 httpd.conf 文件中的 VirtualHost,服务器拒绝启动。
客观的
在不使用 IIS 的情况下将工作的 Django 应用程序(已使用 Django 开发服务器在本地开发和测试)部署到 Microsoft SBS 网络。我尝试在 IIS 上进行部署,但很早就遇到了困难,因此切换到了 WAMP。
我是 Python 和 Django 的新手,从未在任何生产服务器上部署过 Web 应用程序(我是一名 R 程序员,通常使用数学和统计编程)。
任何有助于实现这一目标的建议,无论采用何种方法,都将不胜感激!