메일서버 프로그램인 Nmail(http://passkorea.net)은 PHP의 확장모듈을 몇가지 사용하는데 이중

세가지가 없으면 설치도 되지 않고 만일 PHP버전을 업그레이드 한후에 이 확장모듈들도 버전이

맞지 않으면 사용이 불가능 하게 되는 경우가 있다. 다행히 PHP 확장모듈은 찾아보면 리눅스용은

말할것도 없고 Win32용도 간편하게 구할수 있는데 문제 해결방법을 간단히 소개하겠다.

일단 여기서 나는 PHP 5.1.x 버전을 최근버전(07.06.20기준)인 5.2.x 버전으로 업그레이드 했다.

PHP 업그레이드 후에 아파치 서버 에러로그를 보면 다음과 같은 메시지를 발견할수 있다.

Warning : PHP Startup: mailparse: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=1
PHP    compiled with module API=20060613, debug=0, thread-safety=1
These options need to match


이는 기존에 컴파일된 PHP 확장모듈이 업그레이드된 PHP버전에서 읽어들이지 못해서 생기는

오류이다.

이제 아래 링크에서 Nmail 오류해결을 할수있는 PHP확장모듈을 다운로드 받도록 한다.

PHP 5.2.x 버전 확장모듈 다운로드
(다른이름으로 대상저장)

압축을 풀면 다음과 같은 파일들이 있다.

ioncube_loader_win_5.2.dll(Nmail 설치시 필수PHP확장모듈 PHP 5.2.x 용)
php_mbstring.dll(PHP 5.2.x 버전 확장모듈)
php_mailparse.dll(PHP 5.2.x 버전 확장모듈)


일단 이 파일들을 PHP가 설치된 곳의 ext 디렉토리에 모두 복사한다. 그리고 이제 PHP.ini를 수정

한다. Nmail이 설치된 상태라면 가장 아랫부분에 다음과 같은 부분이 추가되어있는데 수정한다.

(PHP.ini는 설치상태에 따라 Windows 디렉토리나 Windows\system32 혹은 PHP를 설치한

디렉토리에 있다.)

;---------------------------------
;Nmail Auto Config - Begin
extension_dir="PHP가 설치된 디렉토리/ext"
extension=php_mailparse.dll
zend_extension_ts="PHP가 설치된 디렉토리/ext\ioncube_loader_win_5.2.dll"
....(중간생략)
;Nmail Auto Config - End
;---------------------------------


이렇게 수정해준뒤 아파치 서버를 재시작 하고 PHP확장모듈이 제대로 적용됐는지 PHPinfo로 일단

확인해본다.

사용자 삽입 이미지


Mailparse와 mbstring 확장모듈이 정상적으로 로딩됐다.

사용자 삽입 이미지

아랫부분에서 ioncube_loader 모듈이 정상적으로 로딩된것을 확인했다.

이제 Nmail 관리자 화면에 접속하면 에러가 뜨지 않고 잘 작동할 것이다. 그외에 Nmail관련 사항은

http://passkorea.net 에서 찾아볼수 있다.

서버에서 PHP파일 로딩을 가속화 시켜주는 일종의 PHP모듈인 Zend Optimizer를 업그레이드

하는 방법을 소개하겠다. 현재(07.06.19기준) 3.2.8 버전이 최신 버전이다. Zend Optimizer는

PHP의 버전과 대강 맞아야 오류없이 잘돌아간다. 이번에 PHP와 Zend Optimizer를 업그레이드

하고나니 이전에 자꾸 에러로그에 생기던 Failed to start up concurrent users module! 메시지가

며칠씩 서버가 돌아가도 생기지 않는다 동시접속자 관련 모듈을 못읽어 들이는듯 하는데 이때문에

Child Process가 죽고 새로 생성되는 서버에는 약간이라도 부담이 갈수있는 에러였는데 해결됐다.

어쨋든 일단 ZendOptimizer 3.2.8버전을 아래링크에서 다운로드 받는다. 한가지 주의할점은

PHP 4,x 버전대와 궁합이 잘맞는지는 모르겠다는 것이다. 참고로 나는 PHP 5.2.3과 함께 업그레이드
했다.

Zend Optimizer 3.2.8 for Win32 다운로드
(다른이름으로 대상저장)

설치방법은 매우 간단하다. 받은 파일의 압축을 풀면 ZendOptimizer3.2.8이라는 디렉토리가

생긴다. 이를 적당한 위치에 전부 복사해준다. 물론 저 디렉토리 이름은 맘에 들게 바꿀수있다.

가능하면 APM패키지가 설치되있는곳에 복사해주는것이 깔끔하다고 생각한다.

전부 복사 했으면 이제 PHP.ini 파일을 수정해줘야 한다. PHP.ini 파일은 WIndows 디렉토리에

있거나 PHP가 설치된 디렉토리에 있다. Windows 디렉토리에 있다면 PHP.ini를 읽어들이는곳이

그곳일수 있으므로 Windows디렉토리 내에 있는 PHP.ini파일을 아래와 같이 수정한다.

(만약 이전에 사용하던 ZendOptimizer가 있다면 PHP.ini파일의 가장 아랫부분을 보면 기존내용이

있을것이다. 이를 수정한다. 없으면 아랫 내용을 추가하면 된다.)

[Zend]
zend_extension_manager.optimizer_ts="zendoptimizer를 복사할 대상디렉토리\ZendOptimizer3.2.8\lib\Optimizer-3.2.8"
zend_extension_ts="zendoptimizer를 복사할 대상 디렉토리\ZendOptimizer3.2.8\lib\ZendExtensionManager.dll"

이렇게 적용후 아파치 서버를 다시 시작한후에 phpinfo 화면을 띄워서 확인해 본다. 아랫부분을

텍스트 편집기등으로 확장자를 php파일로 저장해서 브라우저에서 확인할수 있다.

<?
 phpinfo();
?>

아래와 같이 아랫부분에 Zend Optimizer 항목이 나오면 성공적으로 적용된 것이다. 맨위의 Zend

Engine은 Optimizer와 무관하다. Zend Optimizer항목이 뜨지 않는다면 제대로 설치되지 않은것이다

사용자 삽입 이미지

  • BlogIcon nemo 2007.06.20 22:04

    버전이 높은데요..

    • BlogIcon 박디 2007.06.20 22:35

      네 자꾸 다중접속관련 모듈을 제대로 못읽는듯 해서 혹시나 해서 이번에 PHP랑 ZendOptimizer를 전부 업그레이드 해버렸죠..ㅋ