如何从Web服务器调用本地shell脚本?

时间:2011-12-04 20:06:42

标签: apache shell ubuntu nginx webserver

我正在运行Ubuntu 11,我想设置一个简单的Web服务器,通过使用GET或POST参数调用本地脚本来响应http请求。这个脚本(已经编写)做了一些事情并创建了一个文件。该文件应该在URL上可用,然后Web服务器应该向另一个服务器发出http请求,告诉它下载创建的文件。

我该如何设置?我不是Linux的初学者,但我不会说我也很清楚。

我应该使用哪种网络服务器?如何授予脚本访问本地资源以创建相关文件的权限?我不太关心安全性或任何东西,这是个人实验(我控制所涉及的所有计算机)。我之前使用过apache,但我从未设置过它。

任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:15)

This tutorial looks good,但有点简短。

我安装了apache。如果您不这样做:sudo apt-get install apache2

cd /usr/lib/cgi-bin

# Make a file and let everyone execute it
sudo touch test.sh && chmod a+x test.sh 

然后将一些代码放入文件中。例如:

#!/bin/bash
# get today's date
OUTPUT="$(date)"
# You must add following two lines before
# outputting data to the web browser from shell
# script
 echo "Content-type: text/html"
 echo ""
 echo "<html><head><title>Demo</title></head><body>"
 echo "Today is $OUTPUT <br>"
 echo "Current directory is $(pwd) <br>"
 echo "Shell Script name is $0"
 echo "</body></html>"

最后打开浏览器并输入http://localhost/cgi-bin/test.sh

如果一切顺利(就像它对我而言)你应该看到......

  

今天是太阳12月4日......   当前目录是/ usr / lib / cgi-bin Shell
  Shell脚本名称为/usr/lib/cgi-bin/test.sh