2013-06-14 9 views
1

CGI perl 스크립트가 있습니다. 먼저 chdir을 지정한 위치로 이동 한 다음 명령을 실행합니다 (이 명령은 입력 파일 build.xml을 사용하므로이 지정된 디렉토리에서만 실행됩니다. 이 디렉토리에있는이 명령을 다른 위치에서 실행하려고하면 "Build failed Buildfile: build.xml does not exist!"오류가 발생합니다. cmd에서이 perl 스크립트를 실행하면 스크립트가 제대로 작동합니다. 하지만 브라우저에서 작동하지 않습니다, 그것은 동일한 오류를 throw합니다 "Build failed Buildfile: build.xml does not exist!"어떻게 이런 일이 일어날 수 있습니까? 누군가가이 문제를 해결하는 방법을 도울 수 있습니까? 다음은 어떻게 그렇게한다는 것입니다 내 디렉토리 chdir('G:\\Documents and Settings/Administrator/eworkspace/Sample');으로 변경 점점되지 발견 CWD를 사용하여 코드Perl CGI 스크립트는 cmd에서 작동하지만 브라우저에서는 작동하지 않습니다.

#!/usr/local/bin/perl - w 
use strict; 
use CGI ':standard'; 

print header; 
print start_html("welcome"); 
print "<h1>welcome</h1>\n"; 
print_prompt(); 
print end_html; 

sub print_prompt { 
print start_form; 
print "<em>welcome</em><br>"; 
chdir('G:\\Documents and Settings/Administrator/eworkspace/Sample'); 
print `ant`; 

} 

입니까?

+2

[Cwd] (http://perldoc.perl.org/Cwd.html)를 사용하여 디렉토리 변경이 작동하는지 확인하십시오. 또한 '엄격한 사용'. – simbabque

+0

감사합니다. cwd를 사용하면 chdir ('G : \ Documents and Settings/Administrator/eworkspace/Sample')로 디렉토리가 변경되지 않는다는 것을 알았습니다. – mac

+1

명령 줄에서는 작동하지만 브라우저에서는 작동하지 않고 스크립트가 디렉토리를 변경하지 않는 경우 폴더 사용 권한을 확인하여 웹 서버가 액세스 할 수 있는지 확인할 수 있습니다. 웹 서버가 해당 디렉토리에 액세스 할 수없는 것 같습니다. – Analog

답변

1
chdir('G:/Documents and Settings/Administrator/eworkspace/Sample') 
    or die $!; 

은 chdir이 성공했는지 알려줍니다. 그렇지 않은 경우 웹 서버 사용자가 지정된 폴더에 액세스 할 수 없습니다.

+0

예. 웹 서버에 액세스 권한이 없으며 사용 권한이 변경되어 작동했습니다. 감사. – mac

+0

그것이 효과가 있으면 좋을 것 같습니다. –

관련 문제