중요한 문제가있어 해결책을 찾을 수 없습니다. 현재 웹 훅 (HTTP POST)을 트리거로 허용하는 PHP 스크립트가 있습니다. POST에 포함 된 변수에 따라 exec ('python 스크립트')가 실행되어 일부 변수가 반환됩니다. 그것은 잘 작동하는 명령 줄에서 실행할 때 잘 작동하지만 어떤 종류의 HTTP 요청에서 스크립트를 트리거 할 때 exec() 함수가 실행되지 않습니다. 그것은는 HTTP POST에 의해 triggerd하는 PHP 스크립트() 함수 exec를가 할 수없는 경우PHP webhook에서 shell_exec()를 호출하려면 어떻게해야합니까?
$command = shell_exec('python C:\\xampp\\cgi-bin\\SECpull.py');
$company_dump = print_r($command, TRUE);
$fp = fopen('retvals.txt', 'w');
fwrite($fp, $company_dump);
fclose($fp);
, 그럼 내가 어떻게 이것에 대해 가야한다 : 여기에 영향을받는 코드의 부분은 무엇입니까?
그것은 전적으로 가능하고, 코드 아무 문제가 없습니다 (즉, 별표를 가정하는 것은 오타입니다). 웹 서버를 실행하는 사용자에게 명령을 실행할 수있는 권한이없는 것 같습니다. 명령 줄에서 기본값 대신 해당 사용자로 스크립트를 실행하여 테스트 할 수 있습니다. 나는 창문에서 그것을하는 법을 모르지만 유닉스 시스템에서는'sudo -u apache php myscript.php' ('apache'가 웹 서버를 운영하는 경우) –
별표는 그 줄을 내 스크립트에서 집중할 줄로 강조하십시오. 혼란을 없애기 위해 그 문제를 해결할 것입니다. – Samson
이렇게 많은 것들이 잘못 될 수 있습니다. 오류가 무엇인지 알릴 수 있다면 더 유용 할 것입니다. shell_exec은 일을하는 안전한 방법이 아닙니다. 순수 PHP 솔루션이나 순수한 파이썬 솔루션을 왜 믹싱하지 않을까요? – middlestump