2012-07-14 1 views
0

오랜 시간이 지난 후에 새로 등록한 사용자!PHP를 사용하는 아파치 파일 실행 모델 exec()

PHP 5가 설치된 상태에서 로컬로 (현재는) 서비스로 실행중인 Apache 2.2 웹 서버가 있습니다. 데이터베이스에 사용자를 인증하고 사용자 대신 사전 정의 된 SQL 쿼리를 작성하는 서버에서 호스팅되는 명령 행 클라이언트 (.exe)를 실행하기 위해 PHP의 exec()를 사용하고 있습니다.

내 질문은 : 아파치가 (동일한) PHP exec() 명령을 통해 여러 사용자가 요청한 프로그램을 어떻게 실행합니까? 이 경우, Apache는 액세스 할 모든 사용자에 대해 동일한 클라이언트 인스턴스를 사용합니까, 아니면 Apache가 각 사용자에 대해 클라이언트의 새 인스턴스를 작성합니까?

클라이언트가 단일 사용자가 사용하도록 설계 되었기 때문에 Apache가 클라이언트의 동일한 인스턴스를 재사용하면 많은 동시성 문제가 발생합니다.

감사의 말을 전합니다.

답변

2

PHP는 PHP가 exec()을 호출 할 때마다 프로세스를 시작하고, 처리가 끝나는 한 계속 실행합니다. 따라서 여러 사용자가 동시에 웹 사이트에서 스크립트를 액세스하는 경우 한 번에 여러 프로세스 사본을 실행하게됩니다.

정말 이상한 데이터베이스를 사용하지 않는 한 명령 줄 도구를 실행하는 것보다 쿼리하는 것이 더 좋은 방법 일 것입니다. 데이터베이스에 사용할 수있는 ODBC 드라이버가있는 경우 PHP ODBC 확장을 통해 직접 사용할 수 있습니다.

+0

실제로 DB에 투명하게 액세스 할 수 없으며 DB에 연결할 수있는 유일한 방법은이 클라이언트를 사용하는 것입니다. 그러나 ODBC 팁에 감사드립니다! 나중에 참조 할 수 있도록이를 명심하겠습니다. – Derek

관련 문제