나는 crunch라고 불리는 exe 파일로 컴파일 된 C 프로그램을 가지고있다.PHP에서 C 프로그램 실행
문자열을 취하여 해시 문자열을 반환합니다. 그것은 오랜 시간 동안 일해 왔지만 그저 작은 변화를 가져올 필요가있었습니다. 다음과 같이 터미널에서 완벽하게 작동합니다.
./crunch url-string/with-file.jpg
멋진 해시 문자열을 출력합니다. 내 PHP에서는 같은 실행 :
$crunch = '~/domains/somewhere.net/html/api/crunch';
$code = `$crunch $code`;
$code = mysql_real_escape_string(trim($code));
$ 코드는 처음에는 URL 문자열입니다. 해시를 반환했지만 더 이상은 반환하지 않습니다.
나는 C를 몇 번 다시 컴파일했다. 그냥 그것을 얻지 마세요, 나는 PHP를 exec(), passthru() 노력 해왔다.
는 고정 :
문제는 내 맥 유닉스 배포판과 리눅스 서버의 차이였다. 수정 프로그램은 내 서버에 로그인하여 .c 파일을 컴파일하는 것입니다.
당신의 삼촌 Bobs가 다시 작동합니다.
감사합니다. 나는 모든 사람의 조언을 확인했습니다. 때로는 가능한 휴식을 배제하는 것이이 문제에 집중하는 데 도움이됩니다. 가상 맥주 (또는 탄산수)가 주위에!
귀하의 EXE 실행 function.popen.php에서
? 거의 항상 권한 문제입니다. – Brad
실제 오류 무엇입니까? 아파치 사용자가 그것을 실행할 수 있는지 확인 했습니까? – Brian
커맨드 라인이'../ crunch'가 아닌'../ crunch.exe'가 아니겠습니까? –