2011-11-02 2 views
1
exec("fun.exe input/input.txt "); 

와 내가 PHP에서 CUDA 프로그램을 실행하려면, 작업은 다음과 같습니다 input.txt을에서PHP 간부() CUDA

  1. 데이터를로드. (인수)
  2. 계산.
  3. output.txt를 작성하십시오.

그리고 PHP는 다음 작업을 수행하기 위해 ouput.txt를 읽습니다.

server1 (Apache, Windows XP)에서는 을 완벽하게 실행할 수 있지만 server2,3 (Apache, Windows 7)에서는 출력이 잘못되었습니다. 프로그램이 중단되지 않고 페이지에 오류 메시지가 나타나지 않습니다. 실행 중에 문제가있는 것으로 보입니다. 다음으로 exec (모든 CPU 측 버전) (동일한 계산)를 시도하면 server2,3이 올바르게 실행될 수 있습니다. server2.3에서 fun.exe (CUDA 버전)를 직접 실행 (두 번 클릭하거나 명령 줄에서 실행)하면 프로그램도 완벽하게 실행됩니다.

왜 server2,3에서 프로그램을 실행할 수 없습니까? 감사.

+0

동일한 문제가있었습니다. 필자의 경우, 이는 Apache (XAMPP와 함께 설치됨)가 서비스로 시작 되었기 때문에 발생합니다. 아파치를 직접 서비스한다면, CUDA가 작동합니다. 이 문제 (Apache는 서비스 및 CUDA)에 대한 해결책이 있습니까? –

답변

1

먼저 실행 파일의 전체 경로를 사용해보십시오. 입력 파일에 대한 전체 경로. 그래도 문제가 해결되지 않으면 파일 사용 권한을 수정 해보십시오 (전체 777 권한으로 시도한 후 작동하면 문제가있는 곳을 알 수 있음).

+0

답장을 보내 주셔서 감사합니다. 전체 경로가 작동하지 않습니다. Windows7에서 권한을 변경하는 방법은 무엇입니까? 오른쪽 웹 응용 프로그램 폴더 (시도)를 클릭하고 읽기 전용 옵션을 취소하십시오. exec ("C : \\ AppServ \\ www \\ try \\ fun.exe C : \\ AppServ \\ www \\ try \\ testD \\ input.txt"); – inecmc

1

전체 경로 (백 슬래시를 사용하여 Windows 버전)를 사용해보십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 전체 경로를 사용하고 같은 결과를 얻는다. exec ("C : \\ AppServ \\ www \\ try \\ fun.exe C : \\ AppServ \\ www \\ try \\ testD \\ input.txt"); – inecmc