2016-12-01 2 views
0

Apache2 서버에서 Perl 웹 응용 프로그램을 올바르게 설정하는 데 어려움이 있습니다. 웹 브라우저에서 사이트에 액세스하려고하면 500 Internal Server Error이 표시됩니다.Apache Perl cgi-bin 설정 : 내부 서버 오류

오류 로그의 오류 메시지는 다음과 같습니다

[Wed Nov 30 23:55:46.848517 2016] [cgid:error] [pid 6899] (2)No such file or directory: AH01241: exec of '/var/cgi-bin/choose.pl' failed 

[Wed Nov 30 23:55:46.849213 2016] [cgid:error] [pid 2090] [client 127.0.0.1] End of script output before headers: choose.pl, referer: http://localhost/test/ 

을하지만 오류없이, 터미널 (perl choose.pl) 예상 등의 실행에서 스크립트를 실행하려고하면. 파일에는 755 개의 권리가 있으며 적절한 판매가 시작됩니다.

스크립트는 다음과 같은 html 파일로로드됩니다. <frame src=/cgi-bin/choose.pl name=choose scrolling=auto> 직접 액세스하려고 시도하면 오류가 발생합니다. 다음과 같이

/etc/apache2/sites-available/000-default.conf은 다음과 같습니다 어떤 도움

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot /var/www/html 

ScriptAlias "/cgi-bin/" "/var/cgi-bin/" 
<Directory "/var/cgi-bin/"> 
    AllowOverride None 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Require all granted 
</Directory> 

ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 

감사합니다! 대단히 감사합니다!

+1

OS가'/ var/cgi-bin/choose.pl'이 존재하지 않는다고보고하고 있습니다. 그렇지 않다고 생각하니? – ikegami

+0

서비스는 chroot jails와 SElinux와 같은 것이므로,/var로 보는 것은/var로 보는 것과 다를 수 있습니다. – ikegami

+0

@ikegami 예, 파일이 존재합니다. 'perl/var/cgi-bin/choose.pl'을 실행하면 예상대로 실행됩니다. – JMac

답변

0

일반적인 문제 중 일부는 (일부는 이미 댓글에서 언급 된)하는

1 : 파일이 존재하지 않습니다.

2 : AH01241은 일반적으로 속어가없는 경우에 나타납니다. 펄 파일의 첫 번째 행으로이 추가 보십시오 :

#!/usr/bin/perl 

이미 행이 #로 시작하는 경우! 우리에게 그 라인을 알려주고 알려주십시오.

3 : 잘못된 권한. 제안 위이 실행하려고 작동하지 않는 경우 :이 아무것도에 온 경우

chmod 755 /var/cgi-bin/choose.pl 

는 실행 작동합니다

ls -la /var/cgi-bin/choose.pl 

을 그리고 우리의 출력을 보여줍니다.