您的位置主页 > 技术文章 > 网络、服务器知识 > ubuntu apache2 cgi 配置

ubuntu apache2 cgi 配置

2010-07-09    文章来源:    浏览次数:119

Howto:Ubuntu下配置apache2和perl cgi

06月 15th, 2007 | by fire3 |

Table of Contents

  • 1 修改apache2配置文件
  • 2 安装mod_perl默认包
  • 3 相关配置
  • 4 测试配置成功与否

本文主要指导简单配置apache2和perl的cgi程序运行环境。

1 修改apache2配置文件

将/etc/apache2/apache2.conf 文件打开,找到如下内容:

修改成:

如果你打算偷懒,那么直接复制下面的代码好了。

cd /etc/apache2
sudo sed 's/#AddHandler cgi-script .cgi/AddHandler cgi-script .cgi .pl/g' apache2.conf > ~/temp
sudo mv ~/temp apache2.conf

2 安装mod_perl默认包

3 相关配置

默认安装好后,cgi-bin的目录默认指向 /usb/lib/cgi-bin/目录。而安装apache2的时候这个目录一般是不会自动创建的。之所以选择这个目录,原因在下面这个文件:

该文件是个链接,指向

打开看看,里面有这样的一段,把cgi-bin目录指向了实际的/usr/lib /cgi-bin/目录。

\ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
\AllowOverride None
Options ExecCGI -\MultiViews +\SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

这就是问题根源所在。我们可以修改这个目录,指向自己创建的一个目录,也可以留着它, 自行添加一个目录。
可以不必如它那么复杂,用这样的格式:

\ScriptAlias /cgi/ /home/*/src/perl/cgi-bin/
<Directory /home/*/src/perl/cgi-bin>
Options ExecCGI
\SetHandler cgi-script
</Directory>

这个格式的意思是定义一个 http://localhost/bin
的虚拟目录,指向/home/*/src/perl/cgi-bin/ 这个实际的目录,并且目录下所有的东西都认为是cgi程序。

不想把所有的东西都当成cgi程序?那就改成这样:

\ScriptAlias /cgi/ /home/*/src/perl/cgi-bin/
<Directory /home/*/src/perl/cgi-bin>
Options +ExecCGI
\AddHandler cgi-script .cgi .pl
</Directory>

只把后缀是cgi和pl的文件当做cgi程序。

4 测试配置成功与否

保存一个如下内容的文件,比如命名为 helloworld.pl 文件到定义的cgi文件夹中。

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

然后赋予可执行权限

最后重启一下apache2

在浏览器地址栏里输入:http://localhost/cgi-bin /helloworld.pl
,看到了Hello,World. 至此我们大功告成。

 

 

c++ cgi hello world.

 

Cpp代码 <embed height="15" width="14" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" quality="high" flashvars="clipboard=<a name="idx001" id="idx001">#include #include int main( void ) { printf("Content-type:text/html\n\n"); printf("<html><title>get</title>\n"); printf("<body><h1>HELLO WORLD!

</body>"); printf("</html>\n" ); return 0; };" src="http://lzquan.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf"></embed></div>

  1. <a name="idx001" id="idx001">#include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main( void )  
  5. {  
  6.         printf("Content-type:text/html\n\n");  
  7.         printf("<html><title>get</title>\n");  
  8.     printf("<body><h1>HELLO WORLD!<h1></body>");  
  9.         printf("</html>\n" );  
  10.         return 0;  
  11. };</a>  

文章评论(查看全部)

验证码: