如何使用 Anaconda Python 作为 CGI 处理程序

如何使用 Anaconda Python 作为 CGI 处理程序

我正在设置一个包含 Python CGI 脚本的简单网站。只要我将 selinux 设置为宽容模式,一切都会正常工作。问题是我使用的是 Anaconda,而 SELinux 上下文完全错误。真正令人恼火的是,我没有收到消息

/var/log/messages
/var/log/audit/audit.log

我已确定我需要在安装 Anaconda 时修复 SELinux 上下文,但我找不到任何指南,并且 Apache 日志中的错误只能帮助我到目前为止。

如何配置 Anaconda 以便 Apache 可以使用 Python 二进制文件作为 CGI 脚本的一部分?

编辑:

为了说明清楚,我认为这是一个 SELinux 问题,因为当我将 SELinux 设置为允许或禁用时,Web 应用程序可以运行,但当它强制执行时,浏览器会出现 500 错误。在指定位置没有记录任何有关 SELinux 阻止任何内容的信息,因此很麻烦。我确实收到一条关于 cgi 脚本无法在 apache 日志中执行的消息。当我修改 anaconda 安装中的 python 二进制文件的上下文(由 apache:apache 拥有)以匹配 yum 安装的默认 python 二进制文件时,错误变为无法加载共享库。

答案1

SELinux 默认阻止执行 CGI 脚本,但您可以使用布尔标志来允许该行为。

如果您想允许 httpd cgi 支持,您必须打开 httpd_enable_cgi 布尔值。

setsebool -P httpd_enable_cgi 1

打开 httpd_selinux 手册页或访问以获取更多信息https://linux.die.net/man/8/httpd_selinux

相关内容