2012-09-02 5 views
1

내 MacOSX에서 쉘 스크립트를 실행하려고하는데 작동하지 않습니다. 내 report.sh 파일은/usr/local/bin에 저장된 다른 .sh 파일 (Sweave.sh)을 호출합니다.PHP shell_exec not working

<?php 

shell_exec("./report.sh"); 
echo "Hello 123"; 

?> 

내 브라우저에는 'Hello 123'이 인쇄되지만 report.sh은 해당 작업을 수행하지 않습니다. 왜 그런가? 여기에 report.sh가 있습니다 :

# !/bin/bash 
Sweave.sh -ld test_sweave.Rnw 

전화 ./report.sh를 터미널에서 호출하면 문제가 없습니다 ... 도움을 주셔서 감사합니다!

편집 : 내가 터미널에서 ./report.php 호출하면, 그것은 말한다 :

가) 시작 :

./report.php: line 2: ?php: No such file or directory 
./report.php: line 4: syntax error near unexpected token `"./report.sh"' 
./report.php: line 4: `shell_exec("./report.sh");' 
+1

사용 절대 경로는 다음 시도합니다. –

+0

나는 이미했으나 아무 일도 일어나지 않고 안전 모드가 꺼져 있습니다. – Fernando

+1

당신은 아파치를 사용하고 있습니까? 그렇다면 아파치 사용자에게 파일을 실행할 수있는 충분한 권한이 있습니까? –

답변

2

당신이 명령 줄을 통해 스크립트를 실행하려면 당신이 중 하나에

php report.php 
:이 줄

B)와 파일로 실행

웹 서버가 귀하와 다른 사용자로 실행되기 때문에 이것이 가능하면 권한 때문일 수 있습니다.

+0

거의 다 왔어. 팁 덕분에 터미널에서 실행됩니다. 하지만 브라우저에서 내 페이지를 호출해도 여전히 작동하지 않습니다. – Fernando

+1

@Fernando 권한에 돈을 쏟아 붓 겠어 ... 당신이 실행하려고하는 스크립트 뒤에'2> & 1'을 추가하여 오류에 대한 자세한 정보를 얻을 수도 있습니다. –

+0

어디에서'2> & 1'을 넣을 수 있습니까? 감사! – Fernando

1

의견을 보내 주신 모든 분께는 허가 문제입니다. 내 서버의 'Documents'폴더에 대한 사용 권한을 변경하여 해결했습니다. (가장 안전한 방법은 아니지만, 어쨌든 테스트하고 있습니다.)

그냥 rw 액세스를 추가하고 소유자가되어 동봉 된 항목에 적용하십시오.

0

php -q report.php 뜻이 오두막없이 작동 모두를위한 (#!/path/to/php)