我正在尝试让 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/