2013-11-15 5 views
0

OSX에 MAMP를 설치했고 PHP 파일에서 쉘 명령을 실행하려고했지만 터미널에 액세스 할 수 없거나 명령이 터미널로 전송되지 않는 것으로 보입니다.PHP에서 MAMP에서 쉘 명령을 실행하십시오.

$cmd = "some shell command" 
$output = shell_exec($cmd); 
if($output == null) 
    echo "returned null"; 
else echo $output; 

항상 "반환 된 null"이 발생하고 거기에 셸 명령이 실행되지 않습니다. "일부 쉘 명령"을 복사하여 터미널에 붙여 넣으면 명령이 실행됩니다. Windows에서 동일한 파일을 테스트했으며 명령 행은 PHP에서 실행됩니다.이 문제는 Mac에서만 나타납니다. 그렇다면 어떻게하면 Mac에서 터미널에 액세스 할 수 있습니까?

PS :

  • OSX 10.6.8
  • MAMP 2.0.5
  • PHP 5.3.6
+0

로 변경 것인가? 'shell_exec()'는 에러 나 출력 모두에서 null을 리턴한다. –

+0

결과를 테스트하기 위해 출력을 넣었습니다. 단지 명령을 실행하고 싶습니다. – fareed

답변

2

작업 윈도우/맥/리눅스 OS의 차이의 많은이 있습니다. Windows에서 shell_exe 명령이 액세스 권한을 제공합니다. 사용자가 Windows에서 제한된 리소스를 가지고 있더라도 shell_exe 명령을 실행할 수 있습니다.

Mac/Linux OS의 경우 shell_exe 명령을 실행하는 데 많은 제한이 있습니다. 또한 PHP에서 shell_exe 명령을 사용하지 않는 것이 좋습니다. 호스트 컴퓨터가 쉽게 대상이됩니다. 사용자에게 shell_exe 액세스를 제공하기 위해 PHP.INI를 편집해야합니다.

Mac/Linux의 호스트 시스템 관리자가 아닌 경우 머신 관리자에게 요청하십시오. 관리자가 액세스 권한을 제공하면 다른 방법으로 시도해야하며 프로젝트 요구 사항에 따라 다릅니다. 편집을 위해 올바른 php.ini 파일입니다

편집 php.ini의

는 기계가 사용하는 OS에 따라 달라집니다. 위치는 일반적으로 필요한 것에 따라 변경됩니다.

WHM CPanel을 사용하는 경우 거의 쉽지 않습니다. 당신이 다른 제 3 자 프로그램의 위치를 ​​사용하는 경우의 php.ini 파일의 일반적인 위치는

/usr/local/lib 

일반적으로 당신이 당신의 명령을 반환 기대합니까 무엇

/usr/local/cpanel/3rdparty/etc/php.ini 
+0

Mac에서 쉘 명령을 실행하는 것이 안전한 방법은 무엇입니까? 셸 명령을 사용하려면 내 웹 페이지에서 필요한 부분입니다. – fareed

+0

php.ini에서 shell_exec을 찾을 수 없습니다. 또한 php.ini에서 매개 변수없이 비활성화 된 함수를 가지고 있습니다. – fareed

+0

@fareed는 질문에 대답했습니다 – Vineet1982

관련 문제