2012-04-24 3 views
1

나는 아파치 기반 애플리케이션을 몇 가지 커스텀 모듈로 개발하고 있습니다.아파치 모듈의 로딩 순서를 결정할 방법이 있나요?

한 모듈에서 일부 기능을 다른 모듈과 공유하고 싶습니다. stratup 단계에서 함께 연결해야합니다. 모듈 이름과 함께 GetModuleHandle + GetProcAddress (Windows에서만 실행 됨)를 사용하려고합니다. 그러나 모듈이 이미 Apache 서버에 의해로드 된 경우에만 성공합니다.

Apache 모듈의로드 순서를 구성하는 방법이 있습니까? 내 모듈 만 제어하면되고 다른 모듈은 관련성이 없습니다.

감사합니다.

+1

모듈은 'LoadModule' 지시어가 나타나는 순서대로로드됩니다 (권위있는 것으로 생각하지 않습니다.). 구성 파일. 'GetModuleHandle'이 실패하면 에러가 발생하고 순서가 중요하다는 사실을 문서화해야합니다. – larsks

답변

1

모듈 소스에서 Apache 후크 호출 순서를 제어하려는 경우 APR_HOOK_FIRST, APR_HOOK_MIDDLEAPR_HOOK_LAST을 사용해보십시오. 또는 다른 모듈의 이름을 지정하여 순서 제약 조건을 적용 할 수 있습니다. docs에서 :.

... "이 작업을 수행하는 두 가지 메커니즘이 있습니다 첫 번째는, 원유, 방법, 오히려 우리가 다른 모듈 대략 후크가 실행되는 상대를 지정할 수 있습니다 최종 인수 컨트롤이. ..이 세 가지 가능한 값은 다음과 같습니다 물론, APR_HOOK_FIRST을 사용하는 모든 모듈은 APR_HOOK_MIDDLE 전에 실행됩니다, 서로에 대한 상대적인 순서로 실행 될 수있는 특정 값을 사용하여

"모든 모듈은 APR_HOOK_FIRST, APR_HOOK_MIDDLE 및 APR_HOOK_LAST하지만, 어떤 APR_HOOK_LAST 이전입니다. 모듈을 실행할 때 상관하지 않는 모듈은 APR_HOOK_MIDDLE을 사용해야합니다. 이 값은 간격을두고 있으므로 APR_HOOK_FIRST-2와 같은 위치는 다른 기능보다 약간 빨리 후크 할 수 있습니다. ...

"다른 방법을 사용하면 다른 모듈보다 먼저 실행해야한다는 것을 알게되면 이름으로 지정할 수 있습니다. 두 번째 인수는 NULL입니다. 현재 모듈 이전에 (예를 들어) 실행해야하는 모듈의 이름으로 구성된 문자열의 끝 배열. 예를 들어, 우리가하기 전에 "mod_xyz.c"와 "mod_abc.c"를 실행하기를 원한다고 가정하자. 다음과 같이 ... "[예제 다음]