2012-02-19 2 views
0

PHP에서 AJAX 호출로 PHP CLI를 실행하려고합니다. WAMP에서 Windows에서 잘 작동하지만 OSX에서 똑같은 코드를 실행하려고하면 exec() 명령이 중단됩니다. 명령 행에서 실행하려고하는 실제 문자열은 터미널에서 완벽하게 작동합니다. exec()를 통해 다른 명령을 실행할 수도 있으며 정상적으로 작동합니다. 그래서, 나는 누군가가 OSX에서이 문제를 겪고있을 때 어떤 생각이 있는지 궁금 할뿐입니다. OSX에서 exec (php -l *)을 실행

정확한 코드

https://gist.github.com/1861487

에서 찾을 수 있습니다 귀하의 의견에 미리 감사드립니다.

+0

스왑'간부()'경유'에 대한()'. 그러면 명령 출력과 오류 메시지가 표시됩니다. –

+0

나는 그것을 일찍 시도했다. 또한 AJAX 호출에서 응답하지 않으며 중단됩니다. 나는 정확한 라인까지 디버깅했다. 내가 ls를 통해 더 간단한 명령을 실행할 수 있기 때문에 이상합니다. dir 등 – Ryan

+1

추가 검토 후 알려진 문제입니다. http://stackoverflow.com/questions/2414647/calling-php-from-php-through-exec-gives-no-result –

답변

0

OSX에 PHP cli가 설치되어 있거나 정말로 아파치 모듈입니까? 이

php -v 

PHP 5.3.8 with Suhosin-Patch (cli) (built: Nov 15 2011 15:33:15) 
Copyright (c) 1997-2011 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies 

같은 터미널

내 보이는에서의 PHP -v에이 옵션을 선택 또한 당신은 $ temp_filename이 경로를 지정 해달라고하면 제대로 걸어을 일으킬 수 php -l를 사용하여 설정 확인할 수 있습니다.

+0

그래, 나는 그것을 확인했다. 나는 멀리 달려 가서 그 명령을 달려서 달려 가려고했다. 괜찮 았어. – Ryan

+0

내 결과물은 귀하의 것과 동일합니다. – Ryan

+0

$ temp_filename이 올바르게 설정되었는지 확인할 수 있습니까? php -l을 사용하면 경로를 지정하지 않으면 멈출 수 있습니다. –

0

나는 마침내이 작업을했습니다. 문제는 몇 배였습니다.

먼저 사용되는 PHP는 MAMP 버전 대신/etc/bin에 있습니다. 나는 이것을 바꿀 수 있었고 대신 MAMP 버전을 사용할 수 있었다.

둘째, CLI를 통해 PHP를 사용하려면 php까지만의 전체 경로를 사용하고 그 자체는 php이 아니어야합니다. 나는. exec() 호출에서 /MAMP/bin/php/php5.3.x/php을 사용하십시오. 이것은 지금 나를 위해 일하고있다.

나는 그것을 내 GIST 업로드 : https://gist.github.com/1861487