Django+Apache+Windows WSGIDaemonProcess alternatii

2024-10-01 13:33:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在设置了一个django站点并在dev服务器上运行之后,我终于找到了在生产环境中使用推荐的mod_wsgi/apache22来部署它的方法。我目前只能在Windows XP计算机上部署此程序。在

我的问题是,我编写的几个django视图使用pythonsubprocess模块在文件系统上运行程序。我在运行subprocess.Popen时经常出错,我已经看到了几个关于这个问题的SO问题,而公认的答案是使用WSGIDaemonProcess来处理这个问题(我相信是由于apache用户的权限)。在

唯一的问题是WSGIDaemonProcess不能用于Windows上的mod\wsgi。有没有什么方法可以一起使用mod\wsgi/apache/windows/subprocess?在


Tags: django方法dev程序服务器modwsgi环境
2条回答

在这个配置下尝试使用子流程时,我遇到了几个问题。因为我不知道你到底有什么困难,我可以分享一些我不容易解决但事后看来似乎很微不足道的事情。在

  1. 我在尝试执行应用程序时收到与权限相关的错误。我搜索了很多,但是很难找到Windows特有的答案。这一点很明显:我将运行Apache的用户更改为具有更高权限的用户。(请注意,这有安全隐患,因此您需要确保您了解您要进入的内容)。在
  2. Django(取决于您的配置)可以将字符串存储为Unicode。我有一个命令行应用程序,我试图用我的视图中的一些参数运行,尽管传入了正确的参数,但它还是崩溃了。经过几个小时的挫折,我做了一个类型(args),它返回了<type 'unicode'>而不是我期望的字符串。快速转换解决了这个问题。在

无论如何,从mod wsgi中打开子流程不是一个好主意。在

另一种方法(也是一种常见的方法)是在apache端使用mod_proxy,并将来自apache的请求转发到运行Django的WSGI服务器。这样做的好处是将python线程移出apache的内存空间wsgi servers有许多选项,wsgi servers是两个流行的选择,gunicorn将*与Django集成。在

*我的意思是它提供了一个管理.py命令,如果将其添加到已安装的应用程序。在

相关问题 更多 >