그래서 웹 서버에서 PHP의 bash 명령을 실행하고 싶습니다. shell_exec
을 사용하여이 작업을 수행 할 수 있습니다. 그러나 실행하려는 명령 중 하나는 curl
입니다. 나는 .wav
파일을 다른 서버에 보내고 그 응답을 기록합니다. 하지만 PHP에서 호출하면 curl
이 작동하지 않습니다.PHP에서 호출했을 때 컬이 제대로 실행되지 않음
나는 아래의 작은 예제로 오류를 줄였습니다. 나는 포함 php_script.php
라는 이름의 스크립트가 :
<?php
$ver=shell_exec("curl -F [email protected]/2013-7-24-17-31-43-29097-flash.wav http://otherserver");
echo $ver
호기심 것은 내가 php php_script.php
사용하여 명령 행에서이 PHP 스크립트를 실행할 때 내가 실행하는 경우, 내가 얻을 결과는, 그러나
Status: 500 Internal Server Error
Content-type: text/html
때문이다 curl -F [email protected]/2013-7-24-17-31-43-29097-flash.wav http://otherserver
직접, 나는 내가 기대 한 응답을 얻을 :
verdict = authentic
(편집 : 나는 아마 내가 어떤 bash에 코드를 넣으면 언급해야 curl
을 포함하지 않는 shell_exec
인수 내에서 bash 명령은 정상적으로 실행됩니다. 예를 들어, 행을 $ver = shell_exec("echo hello > world");
으로 변경하면 "hello"라는 단어가 "world"파일에 있습니다 (존재하고 쓸 수있는 경우). (편집 끝내기)
PHP에서 호출 할 때 무엇인가가 컬의 실행을 막는 중입니다. PHP가 안전 모드로 실행되고 있을지도 모른다고 생각했지만 php.ini에서이 사실을 알 수 없습니다. (이것을 테스트하여 100 % 확신 할 수있는 방법이 있습니까?) 무엇이 컬을 막는가, 더 중요하게이 블록을 무시하거나 차단할 수 있습니까?
(그리고 그래, 나는 PHP는 컬 라이브러리. 그러나, 나는 디버깅 목적으로 나뿐만 아니라 명령 줄에서 실행할 수있는 명령을 사용하는 것을 선호가 알고 있습니다.)
환호, 앨런
curl 명령에'-v'를 추가하면 어떻게 될까요? – Craig
curl 명령에'-v'를 추가하면 PHP 호출의 결과가 변경되지 않습니다. direct cli invokation의 결과는보다 장황하다. 연결 데이터 및 헤더가 표시됩니다. 그러나 나는 직접적인 cli invokation이 정확한 결과물을 만들어내는 것만 큼 흥미로운 것은 아닌지 잘 모르겠다.) –
컬링을 시도 했습니까?/usr/bin/curl 또는 플랫폼에 맞는 것이 무엇이든간에. – Craig