2012-05-31 1 views
2

나는 최근에 slackpkg를 사용하여 나의 Slackware13.37을 업데이트하고 firefox는 실행 대신에 나의 perl.cgi 스크립트의 내용을 보여줍니다. 내가 사용하고 :내 브라우저가 실행 대신 내 perl.cgi 스크립트의 내용을 표시합니까?

bash-4.2# httpd -v 
Server version: Apache/2.4.2 (Unix) Server built: May 24 2012 14:55:44 
bash-4.2# firefox -v 
Mozilla Firefox 12.0 
bash-4.2# perl -v 
This is perl 5, version 16, subversion 0 (v5.16.0) built for i486-linux-thread-multi 

스크립트를 업데이트하기 전에 작동

#!/usr/bin/perl -w 

use strict; 
use warnings; 
use CGI; 
use DBI; 
use PDF::API2::Simple; 
use PDF::Table; 
use Data::Types qw(:all); 

my @param=(); 
############################### 
###   main   #### 
############################### 
my $q = new CGI; 
if(!defined $q->param('login')){ 
    if(!defined $q->param('query')){main::login_relogin('Welcome'); 
    }else{ 
    my ($fname,$lname,$sec,$w,$h) = main::read_cookie(); 
    if(defined $sec){ 
     main::home($fname,$lname,$sec,$w,$h,$q->param('query'),$q->param('param1'),$q->param('param2')); 
    }else{main::login_relogin('Your session expired !!!');} 
    } 
etc... etc... 

PLS는 기본적으로

+1

offtopic : 웹 마스터로 이동 투표를하십시오. /etc/httpd/httpd.conf의 – daxim

답변

3

Apache 2.4.2에서 이와 동일한 문제가있었습니다.

문제 해결 : mod_cgi.so는 기본적으로 내 시스템 (openSUSE 12.1)에서는 빌드되지 않습니다. 아파치 2.2를 만들었을 때, CGI는 2.4에서와 같이 동적 모듈이 아닌 코어의 일부였습니다. 따라서 configure를 실행할 때 --enable-cgi를 추가해야합니다. 또한, httpd.conf의 "LoadModule dir_module modules/mod_cgi.so"주석 처리를 해제하십시오.

또는 시스템에서 빌드 한 mod_cgid.so를 사용하십시오.

http://httpd.apache.org/docs/current/mod/mod_cgi.html 단위 "UNIX하에 멀티 스레드 MPM을 사용하는 경우,이 모듈 대신 mod_cgid 모듈을 사용해야한다. 사용자 수준에서, 두 모듈은 기본적으로 동일하다"주석 처리 "의 LoadModule 그래서

dir_module modules/mod_cgid.so "를 참조하십시오. 또한 httpd.conf (지시문에서)의 "Scriptsock logs/cgisock"주석 처리를 제거하십시오.

2

도움, 당신은 파일을 실행해야하는 스크립트입니다 아파치를 얘기해야합니다.

내가 그렇게해야만하기 때문에 오랜 시간이 걸렸지 만 일이 크게 변경되지 않았다면 cgi-bin 폴더를 cgi-bin 폴더로 표시하여 httpd.conf 파일을 업데이트하기 만하면됩니다. 업그레이드가 자동으로 그렇게하지 않은 것처럼 보입니다.

+0

이 줄을 발견했습니다 : "ScriptAlias ​​/ cgi-bin// srv/https/cgi-bin" –

+0

다른 가능성은 파일이 실행 가능으로 설정되어 있지 않습니다. 'mod_cgi'가 올바르게 설치되었다고 가정하면, ScriptAlias는 당신을 위해 일을해야합니다 (http://httpd.apache.org/docs/2.2/mod/mod_alias.html#scriptalias,하지만 폴더가 이미 접근 가능한지 웹에서). –

관련 문제