CGI 文件仅在本地机器上执行,不在线执行

CGI 文件仅在本地机器上执行,不在线执行

我有一个用 python 编写的 CGI 脚本(以 #!/usr/bin/env python 开头),可以在服务器上正常运行。我输入 /home/company/server/root/adam/code.cgi,它会输出正确的输出。我访问 www.myserver.com/adam/code.cgi,我看到的只是纯文本形式的 cgi 脚本输出的源代码。

肯定存在某种权限问题,但我对 Linux 还是新手。我对 /home/company/server/root 和所有子文件夹执行了 chmod a+rx *,但我无法使 /home、/home/company 或 /home/company/server 全局可读/可执行,因为我是实习生,没有足够高的权限,而且我不确定 IT 人员是否想让它们公开可见。

我该怎么办?我需要 CGI 脚本能够通过浏览器访问。同一目录中的其他网页可以通过浏览器查看,并以完美呈现的 HTML 形式显示。

答案1

CGI 脚本不会因为被标记为可执行而被 Web 服务器自动执行。这是因为它们可能会带来安全漏洞 — 恶意 CGI 脚本与操作系统错误相结合可能会被用于系统入侵。或者即使没有这些,它也可能允许写入任何用户apachewww写入的位置。

您应该做的是询问您的“IT 人员”是否允许您运行 CGI 脚本,以及应该将它们放在哪里以便它们可以运行。它们可能需要从特殊cgi-bin目录运行。或者它们可能需要从您的 运行~/public_html/,其中可能将它们设置为在您的帐户下运行,而不是在服务器帐户下运行(例如apache)。或者您根本就不被允许。或者,也许您只需询问,他们就会为您配置一个 CGI 执行目录。

相关内容