2013-03-20 7 views
1

에 나는이 간단한 쉘 스크립트를 작성했습니다과 다른 행동을 가지고있다. 하지만 PHP에서 무한히 멈추었습니다. 디버깅 할 때 Perl 실행 중에 멈추는 것을 발견했습니다. 쉘에서 호출 된 경우 계속 진행되기 때문에 아무런 의미가 없습니다.호출 쉘 명령은 쉘

내가 shebang과 어떤 실수를 했습니까? 나는 #!/bin/bash도 시도했다.

내가 뭔가를 놓친 건가 .. exec, system, shell_exec, callthru을하지만 아무것도 작동하지 않습니다 :

나는 PHP의 모든 변화와 시도?

+1

아파치에 perl 스크립트를 실행할 권한이 있습니까? –

+0

권한을 확인하는 것 외에도 perl 바이너리에 대한 절대 경로와 perl 스크립트에서 호출 할 수있는 다른 경로를 사용해보십시오. '$ PATH' 환경 변수는 로그인 계정과 서비스 계정간에 자주 다릅니다. – Sammitch

+0

# *에 * -x *를 추가하여 스크립트가 수행하는 작업을 볼 수 있습니다! ** #!/bin/sh -x ** –

답변

0

글쎄, 쉘에서 어떻게 작동하는지 알 수 없습니다.

/{SOME_PATH}/perl-script.pl을 호출 중이지만, 변수 SOME_PATH은 정의되어 있지 않습니다. STORAGE_PATH을 찾으셨습니까? 또한 $을 (를) 분실하여 { 앞에 넣으 셨습니다.

웹 서버를 실행하는 사용자에게 두 스크립트를 실행할 권한이 있는지 확인하십시오.

+0

미안하지만, {SOME_PATH}가 게시물을 단순하고 명확하게 작성하지 않은 정적 경로라고 명시 적으로 말해야 할 수도 있습니다. – abounnour

+0

나는 또한 웹 서버의 사용자 인 www-data에 두 스크립트를 실행할 수있는 권한이 있으며 심지어 (sudo su www-data)로 시도해 보았고 perl 스크립트의 실행이 정상적으로 작동했는지 확인했다. PHP의 전화 뭔가 잘못 됐어. :/ – abounnour

+0

PHP에서 디버그 출력을 켜십시오 - 파일을 기록하거나 출력을 에코하고 그 내용을 알려주십시오. – fredrik