![如何使用 Anaconda Python 作为 CGI 处理程序](https://linux22.com/image/694236/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Anaconda%20Python%20%E4%BD%9C%E4%B8%BA%20CGI%20%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F.png)
我正在设置一个包含 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