用Apache+Activeperl架构本地个人CGI Web服务器
施云树
2001年 7期
随着网络技术的不断发展,不少网络服务商开始提供一些性能较好且免费支持CGI权限的主页空间,为我们更好地创作个人空间提供了机会。
由于CGI程序由服务器端解释执行,我们看到的只是执行后的结果;而一个CGI程序的正确与否,直接关系到服务器的稳定与安全。所以我们在上传CGI程序时必须先在本地(自己的电脑系统上)调试好,这样不但减少了上网时间,而且可以避免自己的CGI权限被网管关闭。
如何在自己原来计算机的架构上支持CGI的Web服务器呢?方案有不少。下文将向大家推荐在Win98系统下用Apache+Activeperl来实现。
1.安装Apache 1.3.12服务器软件,文件大小3176KB,它是现在最流行的HTTP服务器软件之一。业界的评价是:快速、可靠。可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,如果需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。这正是本文选择它的原因。运行Apache的安装文件Apache_1_3_12_win32.exe,出现安装界面,按NEXT继续,按YES接受协议,再按NEXT继续,选择Apache的安装路径,推荐为c:\apache,不要装在Programe Files下,这样设定绝对路径方便很多!再选择安装方式为Typical,连续按NEXT直至系统安装完成。
2.安装Activeperl 5.22 CGI脚本解释软件,文件大小5499KB;运行Activeperl的安装文件api522e.exe,出现安装界面,按NEXT继续,按YES接受协议,注意一定要把perl安装的目录设定为c:/usr(这样就不用一个一个修改Perl脚本文件的第一行的Perl解释路径了,用默认的#/usr/bin/perl就行),再按YES继续,接下来只要用默认的安装选项一路按NEXT即可,直至安装完成,再关闭所有已打开的窗口。
3.配置本地系统DNS,打开“控制面板”,选择“网络”,选中“TCP/IP”,单击右下方“属性”,单击“DNS配置”,再单击“启用DNS”,在“主机”及“域”中任意填个E-mail地址的前后部分,其中“主机”处填入的字符即是你的本地域名,即可用http://你的域名 访问到本地的网页;再在“DNS服务器搜索顺序”三个“.”处填入128.0.0.0(这样以后调试脚本时就不用拨号上网了),按“添加”→“确定”,重新启动计算机。
4.配置Apache的参数,打开c:\apache\conf\httpd.conf(后面有已修改好参数的配置文件下载链接),修改其中的相关项目:
(1)寻找ServerAdmin your@your.addres,把your@your.addres改为自己的E-mail,这步不是必须的。
(2)寻找#ServerName new.host.name,把前面的#号去掉,把new.host.name改为http://127.0.0.1。
(3)寻找#ServerName host.some_domin.com,把前面的#号去掉,把host.some_domin.com改为http://127.0.0.1。
(4)寻找,在下面有一句Options,把后面的参数全去掉,加一个All,注意大小写。再往下有一句AllowOverride,也把后面的None去掉,加一个All。
(5)寻找,往下面第9行有一句Options,把后面的参数全去掉,加一个All,注意大小写。再往下7行有一句AllowOverride,也把后面的None去掉,加一个All。
(6)寻找,下面有一句AllowOverride,把后面的参数去掉,加一个All,注意大小写。再往下有一句Options,也把后面的None去掉,加一个All。
(7)寻找#AddHandler cgi-script .cgi,把前面的#号去掉,后面加上.pl,即AddHandler cgi-script .cgi .pl。
至此已完成Apache的配置,可保存退出;若你还想启用SSI,则还需修改两个参数,即寻找#AddType text/html .shtml及#AddHandler server-parsed .shtml,把前面的#号去掉。
最后请注意以下几点:
(1)调试脚本时,应先运行Apache。由于Apache不会在Windows启动时运行,你需单击“开始”→“程序”→“Apache web server”→“start Apache”,请不要关闭程序运行的窗口。
(2)用http://127.0.0.1访问时,实际上访问的是目录c:/apache/htdocs,所以所有htm文件应放在其中,由于Apache服务器软件不允许CGI脚本在cgi-bin目录中读取图片文件,所以所有图片文件也应放在c:/apache/htdocs中;CGI程序则放在c:/apache/cgi-bin目录中在浏览器中用http://127.0.0.1/cgi-bin/脚本.cgi调用;用双击脚本的方法运行是不正确的,因为是脚本文件,故只能由浏览器调用,这也是为何要安装服务器软件的原因。
(3)Apache服务器软件默认的首页文件为index.html。
(4)CGI脚本的绝对路径应该用“c:/apache/cgi-bin”表示,也可用相对的形式表示,如: “../cgi-bin”。
(5)普通HTML网页调用,直接在浏览器输入http://127.0.0.1/网页名.htm即可。
为方便大家设置httpd.conf文件,特为大家提供一个已设置好的httpd.conf文件供下载,地址为http://nbky.net/soft/conf.zip,下载后把它拷贝到c:\apache\conf\目录,覆盖原文件即可使用,但前提是你的Apache安装路径也在c:\apache目录;另apache_1_3_12_win32.exe的下载路径为http://nbky.net/soft/apache_1_3_12_win32.exe,api522e.exe的下载路径为http://www.cgiunion.net/perlsoft/APi522e.exe。
本文安装调试环境:中文Win98第二版/中文WinMe+Apache 1.3.12+Activeperl 5.22。测试脚本为网络上较为流行的bbs3000及ubb等,所有功能均能顺利实现。