带有mod_wsgi的Apache 2.2 / Redhat 2.6

时间:2018-02-28 15:06:09

标签: mod-wsgi redhat python-3.6 apache2.2

我在使用当前设置配置mod_wsgi时遇到了问题。

Redhat 2.6.32

安装设置为非root用户:

  • Apache 2.2(试图获得2.4,但无法访问yum 依赖性太多了)
  • Python 3.6

我似乎已成功将mod_wsgi安装到/ apache / modules。

问题:

  • apache目录结构不是大多数教程所指出的,其中 DocumentRoot位于/ apache / htdocs中,而不是/ var / www /或/ sites-enabled /或/ sites / available /
  • 我尝试在httpd.conf中输入:LoadModule wsgi_module modules/mod_wsgi.so但是我返回了: $HOME/apache/modules/mod_wsgi.so into server: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

任何人都可以解释我如何在当前的设置中使用mod_wsgi吗?

2 个答案:

答案 0 :(得分:0)

问题可能是因为您自编译了mod_wsgi,并且您使用的Python安装位于非标准位置。在这种情况下,您需要在为mod_wsgi运行LD_RUN_PATH时设置make环境变量,并将其设置为Python库所在的目录。这样就可以了解Python库的位置,并将其嵌入到mod_wsgi中。 mod_wsgi文档中描述了此问题:

如果由于某种原因无法重建mod_wsgi,您还可以使用以下方法强制将Python共享库加载到Apache中:

LoadFile /some/path/lib/libpython3.6m.so.1.0

这应该位于mod_wsgi的LoadModule行之前。

答案 1 :(得分:0)

您的libpython3.6m.so.1.0不在任何apache的库路径中。

您可以将其符号链接到apache的库路径中的一个lib目录,或者您可以将libpython3.6m.so.1.0所在的目录添加到apache的库路径中。

请查看此问题以获取有关apache路径的帮助:https://serverfault.com/questions/151328/setting-apache2-path-environment-variable