如何在 cgi-bin 中执行 shell 脚本?

Posted

技术标签:

【中文标题】如何在 cgi-bin 中执行 shell 脚本?【英文标题】:How to execute a shell script in cgi-bin? 【发布时间】:2010-09-03 14:38:16 【问题描述】:

好的,首先,我是一名 php 程序员,但我从未对 CGI 做过任何事情,也不知道它是什么。我知道它代表通用网关接口,但我不知道它的作用或用途。

刚刚有人告诉我,我可以将一个 shell 脚本上传到我的 cgi-bin 文件夹并执行它。

我制作了一个 shell 脚本 myscript.sh 并将其上传到我的 cgi-bin 文件夹。我注意到的第一件事是我的 cgi-bin 文件夹是我的根目录的兄弟而不是子目录。所以我不知道如何访问它?

所以我在我的根目录下创建了一个名为cgi-bin2 的目录并将我的脚本放在那里(并将它们更改为 755)。然后我从浏览器访问它,它所做的只是下载文件。

我错过了什么吗?

【问题讨论】:

【参考方案1】:

CGI 应该发送一个 Content-Type 标头:

#!/bin/sh
printf "Content-Type: text/plain\n\n"
your_commands_here

在您的 cgi-bin 文件夹和 chmod 755 中另存为 anything.sh(扩展名无关紧要)。 cgi-bin 不必是公共 html 文件夹的子文件夹,它可以是 alias。

【讨论】:

好的,所以我要求我的主机添加一个别名,他们做到了。我去了mydomain.com/cgi-bin/myscript.sh 它加载,但只是一个空白页。我看不出我的期望。我想我至少会看到 myscript.sh 的内容,但它是空白的,即使我查看源代码也是如此。有点困惑。 如果您收到带有内部服务器错误响应的空白页面,则说明发生了错误。查看您的错误日志。

以上是关于如何在 cgi-bin 中执行 shell 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中执行shell脚本

如何在java中执行shell脚本

如何在shell脚本中执行cd命令

如何在shell中执行简单的javascript脚本

如何在shell脚本中,判断一个基本命令执行是不是成功

如何在shell脚本中,判断一个基本命令执行是不是成功