如何在 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 脚本?的主要内容,如果未能解决你的问题,请参考以下文章