从根本上说,CGI 就是HTML表单与服务端脚本之间的接口。
自己可以百度了一些cgi知识:给出链接报错。那就自己Google哈
也因为工作需要,所以来学习了下。
一、安装及配置apache服务器
安装apache2服务器
#sudo apt-get install apache2
#sudo apt-get install apache2
配置apache2服务器
配置文件位于 /etc/apache2/sites-enabled/000-default
用vi打开配置文件:
#sudo vi /etc/apache2/sites-enabled/000-default
修改其中两句为:
DocumentRoot /var/www/html
ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
注意其中空格的问题。
配置文件位于 /etc/apache2/sites-enabled/000-default
用vi打开配置文件:
#sudo vi /etc/apache2/sites-enabled/000-default
修改其中两句为:
DocumentRoot /var/www/html
ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
注意其中空格的问题。
这两个目录你可以自己设定,并且设定的目录要真实存在,如果不存在就
mkdir 出一个。
DocumentRoot后面是放HTML文件的目录。
ScriptAlias后面是指定/cgi-bin/连接到/var/www/html/cgi-bin/ ,也就是在这个目录中的文件均被认作是cgi程序。
例如如果浏览器中访问 http://127.0.0.1/cgi-bin/hello.cgi 就可以执行cgi-bin下的hello.cgi
配置完保存。
DocumentRoot后面是放HTML文件的目录。
ScriptAlias后面是指定/cgi-bin/连接到/var/www/html/cgi-bin/ ,也就是在这个目录中的文件均被认作是cgi程序。
例如如果浏览器中访问 http://127.0.0.1/cgi-bin/hello.cgi 就可以执行cgi-bin下的hello.cgi
配置完保存。
个人觉得也可以不配置,给出上面的原因,只是更好理解。
重启apache2:
#sudo /etc/init.d/apache2 restart
#sudo /etc/init.d/apache2 restart
二 编写helloworld
进入目录:aries@ubuntu:~$
cd /usr/lib/cgi-bin/
编写:aries@ubuntu:/usr/lib/cgi-bin$
sudo hello.c
aries@ubuntu:/usr/lib/cgi-bin$
sudo gcc -o hello.cgi hello.c
ok
在自己电脑上,运行:
aries@ubuntu:/usr/lib/cgi-bin$ ./hello.cgi
Content-Type: text/html
Hello, world
aries@ubuntu:/usr/lib/cgi-bin$ ./hello.cgi
Content-Type: text/html
Hello, world
出现了
helloworld 表示 ok。
2 浏览器 输入:http://localhost/cgi-bin/hello.cgi
ok
结束/