Apache2/Redhat5.5에서 Perl 스크립트 실행

Apache2/Redhat5.5에서 Perl 스크립트 실행

저는 Apache2/Redhat5.5 구성으로 작업하고 있습니다. 나는 나에게 새로운 Perl 스크립트를 실행하는 방법을 구성하고 배우려고 노력하고 있습니다.

내 httpd.conf 파일에서 다음과 같이 변경하거나 다음 설정을 확인했습니다.

DirectoryIndex index.html index.html.var index.cgi index.pl
...
AddHandler cgi-script .cgi .pl
...
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
...
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

나는 이 스크립트를 배치했습니다:http://www.seaglass.com/downloads/file_upload.pl/var/www/cgi-bin/ 디렉토리에 넣습니다.

그런 다음 브라우저에서 myIpAddress/cgi-bin/file_upload.pl을 가리키면 "내부 서버 오류... 서버에 내부 오류 또는 구성 오류가 발생하여 다음을 수행할 수 없습니다..."라는 메시지가 나타납니다.

그런 다음 오류 로그를 확인하여 다음을 찾습니다.

[Sun Nov 27 19:59:02 2011] [error] [client ***] (2)No such file or directory: exec of '/var/www/cgi-bin/file_upload.pl' failed
[Sun Nov 27 19:59:02 2011] [error] [client ***] Premature end of script headers: file_upload.pl
[Sun Nov 27 19:59:02 2011] [error] [client ***] File does not exist: /var/www/html/favicon.ico

답변1

SELinux가 활성화되어 있다고 가정하고 다음을 사용하여 CGI를 활성화합니다.

setsebool -P httpd_enable_cgi on

이는 스크립트가 올바르게 업로드되었다고 가정합니다. Perl 스크립트는 DOS 형식으로 저장되거나 ftp를 통해 바이너리 모드로 업로드되면 제대로 실행되지 않습니다. ftp를 통해 파일을 복사하지 않고(scp 또는 sftp 대신) 다음을 사용하여 파일을 변환합니다.

dos2unix file_upload.pl

답변2

나에게 이것은 귀하 perl의 컴퓨터에 설치 되지 않았거나 /usr/bin/perl. /usr/bin/perl -vPerl이 실제로 설치되었는지 확인하려면 명령줄에 입력해 보세요 .

에 대한 실행 권한이 없을 수도 있습니다 /var/www/cgi-bin/file_upload.pl.

관련 정보