首页 文章

如何在localhost中运行perl脚本?

提问于
浏览
3

我已经安装了Apache . 我在localhost中使用PHP编写脚本 . 需要知道如何运行perl脚本 . 我已经安装了sudo aptitude install libapache2-mod-perl2我在我的/ var / www / cgi-bin中创建了一个目录名cgi-bin,在这个文件夹里面我保存了我的perl脚本perl_1.pl给出了目录权限 . 我还需要做什么来运行脚本????我只需输入http://localhost/cgi-bin/并收到错误403您无权访问此服务器上的/ cgi-bin / . 请帮忙!!

谢谢

3 回答

  • 0

    你无法阅读cgi-bin的内容 . 您必须直接引用其中的一个脚本,在这种情况下:http://localhost/cgi-bin/perl_1.pl

    除此之外,请确保在httpd.conf中实际处理您的cgi-bin /目录 .

    哦,以防万一你偶然发现500:确保你的perl脚本打印出一个有效的HTTP头 . 这可以通过以下方式轻松实现:

    use CGI qw(:standard);
    print header();
    

    正如Pwex所指出的那样:确保你的脚本设置了可执行位 .

    chmod 755 perl_1.pl
    

    ...应该在大多数情况下都有效

    另外,为了将来参考,值得一提的是mod_perl,因为在获得cgi perl apache的基础知识后,这是一个自然的下一步 . 详细介绍它将超出这个答案的范围,但我想我会提到它,以便你知道下一步,当你已经确定基础知识以及看到cgi的局限性 .

  • 5

    您的Apache配置如何?您是否确定要告诉Apache在cgi-bin目录中执行CGI脚本?

    就像是:

    ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/"
    <Directory "/var/www/website/cgi-bin/">
                    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    
                    ...
    </Directory>
    
  • 3

    如果您没有绑定到apache或者可以在不同的端口上运行这些脚本,那么您可以使用具有解决方案的Plack / PSGI工具链来运行旧的CGI脚本作为PSGI应用程序 . 有几种方法,请参见Running CGI scripts on Plack .

相关问题