在 Apache 中为 Gentoo 上的 Django 应用启用 mod_wsgi

在 Apache 中为 Gentoo 上的 Django 应用启用 mod_wsgi

emerge我使用 Gentoo (在 Amazon EC2 上)安装了 Apache、Django 和 mod_wsgi 。

我知道 mod_wsgi 的配置如下/etc/apache2/modules.d/70_mod_wsgi.conf

<IfDefine WSGI>
LoadModule wsgi_module modules/mod_wsgi.so
</IfDefine>

# vim: ts=4 filetype=apache

因此/etc/conf.d/apache我添加了WSGI模块:

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D WSGI"

但是当我尝试列出已加载的模块时,mod_wsgi 没有列出。

root ~ # apache2 -M | grep wsgi
Syntax OK

我还知道 mod_wsgi 无法正确加载,因为 Apache 配置文件无法识别WSGIScriptAlias

顺便说一下,为了让 Django 正常工作,我需要包含一个自定义 Apache 配置文件。我应该在哪里插入下面的行?

Include "/var/www/localhost/htdocs/mysite/apache/apache_django_wsgi.conf"

我目前在httpd.conf文件中有这个文件,但我觉得每当我升级 Gentoo 或相关包时该文件就会被重置。

编辑:看来 mod_wsgi 文件位于/usr/lib64/apache2/modules/mod_wsgi.so

以下是我的详细 Apache 设置:

root@ip-99-99-99-99 /usr/portage/eclass # apache2 -V
Server version: Apache/2.2.21 (Unix)
Server built:   Mar  7 2012 06:52:30
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

答案1

Include "/var/www/localhost/htdocs/mysite/apache/apache_django_wsgi.conf"如果您在配置文件中包含该行,vhost并且它不是您的默认 vhost 配置文件,它将不会被 apache 更新覆盖。

或者,如果您想将其放入,httpd.conf您应该记住在 apache 更新之后。因为如果httpd.confgentoo 包中的 发生了更改,您必须使用或将您的httpd.conf与新的合并。并且在执行此操作时,您必须说您想保留该行,就这样。httpd.confetc-updatedispatch-conf

相关内容