当前位置: 首页>>技术教程>>正文


Ubuntu Linux上的简单CGI和Apache示例

, ,

介绍

CGI(通用网关接口)是Web客户端和运行您的CGI脚本/程序的Web服务器之间的接口。 CGI已有很长的历史,并在很大程度上被各种编程语言(例如PHP等)所取代。但是,它仍然可以作为通过Web浏览器进行系统监视和管理的快速工具,在Linux系统管理员的手中找到其位置。本文以step-by-step方式介绍了如何在Ubuntu Linux上使用Apache Web服务器以各种编程语言和脚本运行基本CGI脚本。

安装Apache

首先,我们需要安装apache Web服务器。这是一个相当简单的任务,可以通过apt-get命令:

$ sudo apt-get install apache2

上面的命令将使用默认站点安装Apache 2 Web服务器:/etc /apache2 /sites-available /默认。当您打开此默认配置站点时,您将看到它已配置为从以下位置运行CGI脚本/usr /lib /cgi-bin具有URL别名/的目录cgi-bin /

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">

(可选)您可以更改DNS设置以指向新的Web服务器的IP地址,或直接编辑本地/etc /hosts文件。例如:

10.1.1.61       cgi-example.local

其中10.1.1.61是运行apache的Web服务器的IP,而cgi-example.local是任意域名。

创建CGI脚本

CGI可使用多种语言,但现在我们从打击壳。稍后我们将显示其他语言的示例。这是CGI bash示例的简单版本:

#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash Example'

复制上面的代码并将其粘贴到/usr /lib /cgi-bin /中的新文件,名为example-bash.sh。完成后,使用chmod命令:

$ sudo chmod 755 /usr/lib/cgi-bin/example-bash.sh



查看CGI脚本

剩下的就是用浏览器导航到host-name或Web服务器的IP地址。在我们的情况下,URL为:http://cgi-example.local/cgi-bin/example-bash.sh

CGI bash example

您可以编辑此示例以显示服务器的根分区”/”的磁盘使用情况。您仅受您的想象力限制:

#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash example<br>'
echo `df -h / | grep -v Filesystem`

上面的代码将检查根分区的可用磁盘空间,并产生以下页面:

CGI bash example 2

更多CGI示例

如所承诺的,这里有更多的CGI示例,提供了更多的编程语言来帮助您入门。

佩尔

创建以下/usr/lib/cgi-bin/example-perl.pl并使其具有可执行文件:

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print <<htmlcode;
<html>
<head>
<title>CGI Perl Example</title>
</head>
<body>
<h1>CGI Perl Example</h1>
<p>CGI Perl Example</p>
</body>
htmlcode

蟒蛇

创建以下/usr/lib/cgi-bin/example-python.py并将其内容设置为可执行文件:

<html>
<head>
<title>CGI Python Example</title>
</head>
<body>
<h1>CGI Python Example</h1>
<p>CGI Python Example</p>
</body></html>
"""


C

为了使C和C++正常工作,我们需要安装编译器。首先,使用以下命令安装编译器:

$ sudo apt-get install build-essential

安装完成后,使用以下代码创建文件example-c.c:

#include <stdio.h>
int main(void)
{
printf("Content-Type: text/plain \n\n");
printf("CGI C Example \n");
}

保存example-c.c文件的内容,并使用以下代码进行编译linux命令

$ sudo gcc -o /usr/lib/cgi-bin/example-c example-c.c

现在您应该可以使用以下代码访问C编译的CGI脚本:http://cgi-example.local/cgi-bin/example-c

C++

为了使C和C++正常工作,我们需要安装编译器。首先,使用以下命令安装编译器:

$ sudo apt-get install build-essential

安装后,使用以下代码创建文件example-cpp.c:

#include <iostream>
using namespace std;

int main()
{
cout << "content-type: text/html" << endl << endl;
cout << "<h1>CGI C++ example</h1>" << endl;
return 0;
}

保存example-cpp.c文件的内容,并使用以下代码进行编译linux命令

$ sudo g++ -o /usr/lib/cgi-bin/example-cpp example-cpp.c

现在您应该可以使用以下代码访问C编译的CGI脚本:http://cgi-example.local/cgi-bin/example-cpp

结论

如前所述,CGI已经很老了,在很大程度上已被不同的编程语言(例如PHP等)所取代。但是,正如您所看到的,它仍然是一种相对简单的工具,可用于自动化Linux管理任务,例如远程自定义监视。 Web浏览器访问Linux服务器。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8065.html,未经允许,请勿转载。