【问题标题】:How to make sure, when mod_wsgi is loaded, Apache is running the module如何确保在加载 mod_wsgi 时,Apache 正在运行该模块
【发布时间】:2016-10-23 15:03:04
【问题描述】:

在 OS X 服务器上,我按照 mod_wsgi 安装说明进行操作,当我运行 apachectl -M 时,输出显示 mod_wsgi 已加载。另一方面,在重启服务后打开 Apache 日志时,没有任何迹象表明 mod_wsgi 已加载。我曾尝试使用 mod_wsgi-express 并重新编译和重新安装 mod_wsgi,但无济于事。我如何确保 mod_wsgi 实际上是由 Apache 加载的?

【问题讨论】:

  • mod_wsgi-express 与您的主 Apache 不同,如果您想自己从源代码安装 mod_wsgi 并手动配置 Apache,它不会出现。您需要指出您添加到 Apache 配置文件中的配置并显示实际错误是什么。

标签: python macos apache mod-wsgi


【解决方案1】:

将此部分添加到您的 Apache 配置中(可能在 /etc/httpd/conf.d 中)并查看是否出错?

WSGISocketPrefix /var/run/wsgi

<VirtualHost *:80>

  ServerName yoursite.com

  WSGIDaemonProcess yoursite-http python-home=/home/vagrant/.virtualenvs/yoursite
  WSGIScriptAlias / /var/www/html/yoursite/yoursite/wsgi.py process-group=yoursite-http application-group=%{GLOBAL}
  <Directory /var/www/html/yoursite/yoursite>
    Require all granted
  </Directory>
  WSGIProcessGroup yoursite-http
</Virtualhost>

【讨论】:

  • 推荐的做法是,当为单个应用程序使用守护进程组时,您将 application-group 设置为 %{GLOBAL} 而不是某些命名的子解释器。该特殊值可确保使用主解释器上下文,从而避免某些第三方 C 扩展未为子解释器正确实现的问题。
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 2012-11-18
  • 2011-01-18
  • 2017-03-16
  • 2011-02-20
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
相关资源
最近更新 更多