如何让 apache 在 RHEL6 中使用 MOD_WSGI 或 MOD_PYTHON 运行 python 脚本?

如何让 apache 在 RHEL6 中使用 MOD_WSGI 或 MOD_PYTHON 运行 python 脚本?

我正在尝试让 apache 运行 python 脚本。我在 RHEL6 上安装了 MOD_WSGI 、 Apache 、 Python。我甚至编辑了 httpd.conf 文件以包含这些行。

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews ExecCGI

  AddHandler cgi-script .cgi
  AddHandler wsgi-script .wsgi

  AllowOverride None
  Order allow,deny
  allow from all
</Directory>

我也重启了 Apache 服务器。但是当我尝试执行 Python 脚本时,它只是在浏览器中以纯文本形式打印出来。它根本没有被执行。请有人帮忙。

答案1

apache2ctl -t -D DUMP_MODULES通过发出或来查看模块是否已正确加载apachectl -t -D DUMP_MODULES。如果没有,请编辑httpd.conf或包含的文件以包含以下内容(如果需要,请替换lib为):lib64

LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so

请注意,您不能使用 WSGI 执行任何 Python 脚本 - 如果我没记错的话,它必须支持与 WSGI 处理程序的接口。如果您想执行任何 Python 脚本,也许您应该使用普通的 CGI,它很慢(如果您的用户比您自己多,请不要在生产中使用它)但很容易。如果您的脚本已安装cgi-bin并且它们具有正确的舍邦在顶部它们应该已经可以工作了。

如果您想使用 mod_python 让 Apache 执行常规 python 脚本,请首先确保您正在加载该模块:

  LoadModule python_module modules/mod_python.so

然后将其添加到您的配置中,例如在目录块内,首先删除其他更改:

  AddHandler mod_python .py
  PythonHandler mod_python.publisher

答案2

mod_python 和 mod_wsgi 都需要特殊代码才能与相应的处理程序配合使用。如果您的目标只是执行普通的 python 脚本,请使用 cgi。在 Redhat 中,默认位置是,并且已经映射到apache 中的/var/www/cgi-bin/路径。/cgi-bin/

相关内容