CGI 通用网关接口
为了实现动态网站,需要使用一些动态网站技术使静态网站可以传送一些动态变化的内容(数据库)。常用的包括CGI、PHP、JSP(更适用于IIS)等。
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如评论之类的东西。接着用户按一下“发布或提交”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的CGI程序中,于是CGI程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后CGI程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。
安装
rpm -qa perl //查看是否安装perl,默认已经安装
yum install perl //安装
配置
第一步:
在主配置文httpd.conf中,查找
#
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks ExecCGI
第二步:
在主配置文件的798行左右(:set number 显示行号)
将#AddHandler cgi-script .cgi去掉#(去掉注释)。
793 # To use CGI scripts outside of ScriptAliased directories:
794 # (You will also need to add "ExecCGI" to the "Options" directive.)
795 #
796 AddHandler cgi-script .cgi
第三步
在默认网站目录中创建cgi测试文件。
[root@conling conf]# cd /var/www/html/
[root@conling html]# ls
1.html test.html
[root@conling html]# cat test.html
This is my first web page in the Linux
[root@conling html]# cat >>test.cgi<<eof //创建test.cgi,并向内写入内容直到出现设定的终止符。
> !#/user/bin/perl
> print "Content-type:text/html/n/n"
> print "hello world!"
> eof
[root@conling html]# cat test.cgi //检查文件内容,注意 usr不是user \n不是/n
!#/usr/bin/perl
print "Content-type:text/html\n\n"
print "hello world!"
检验结果
在默认网站可以访问的基础上进行测试cgi页是否可用。
如果显示的内容和文件中写入的内容相同,则代表配置文件没有生效(没有动态执行),需要去检查配置文件是否修改正确,或者有没有重启服务。
PHP
安装
yum install php
配置
vi /etc/httpd/conf.d/php.conf
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
AddType application/x-httpd-php-source .phps .php .php3
//去掉最后一行的注释,并在末尾添加 .php .php3 注意空格。
//也可以不作任何修改
检测
创建一个.php文件,测试能否通过http协议进行正常访问。
cd /var/www/html
cat >>test.php<<eof
<?php
phpinfo();
?>
eof
在浏览器中访问指定的文件,查看结果。