Server Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> Server Administration for Redhat Linux
[목차]
제4장 웹메일 서버 구축하기

    3. 웹메일(nmail) 설치하기 - passkorea.net

1. APM 설치 확인


가. MySQL 설치확인


# tar xvfz mysql-5.1.56.tar.gz


# cd mysql-5.1.56/


# ./configure —prefix=/web/mysql --with-charset=euckr

# make


# rm /etc/my.cnf                    // 이전 환경설정 파일 삭제

# rm –rf /web/mysql                // 이전 소스 설치 폴더 삭제

# make install


# /web/mysql/bin/mysql_install_db


# chown -R mysql /web/mysql/var


# /web/mysql/bin/mysqld_safe &


# ps ax | grep mysqld


# /web/mysql/bin/mysqladmin -u root password '1234'




나. PHP 설치 확인


PHP 설치시 필요한 프로그램들을 설치한다.


# yum install bison                                  // 페도라16일 경우


# yum install libmcrypt mcrypt pspell-devel


추가모듈이 설치될 폴더를 확인한다.

웹브라우저에서 http://localhost/info.php를 통해 확인한다.


■ iconv 설치 확인



■ mbstring 설치 확인





# ./configure --prefix=/web/php --with-apxs2=/web/httpd/bin/apxs --with-mysql=/web/mysql --disable-debug --enable-mbstring --enable-mbregex --with-iconv



# make

# make install

# ls php.ini*

php.ini-recommanded

# cp php.ini-파일명 /web/php/lib/php.ini





# cd /web/php/lib


# vi php.ini


... 

short_open_tag = Off <- On으로 수정한다.

...


아파치 웹서버에 PHP모듈 추가하기 위해 아래와 같이 설정을 추가한다.


# cd /web/httpd/conf/extra

# vi httpd-php5.conf

<IfModule !mod_php5.c>

LoadModule php5_module modules/libphp5.so

</IfModule>

<IfModule mod_mime.c>

AddType application/x-httpd-php .php .php3 .phtml

AddType application/x-httpd-php-source .phps

</IfModule>


# cd /web/httpd/conf

# vi httpd.conf


// 중간쯤에 아래와 같이 수정한다.

<IfModule dir_module>

    DirectoryIndex index.html index.php

</IfModule>


.... 마지막줄에 아래와 같이 추가한다.

# PHP

include conf/extra/httpd-php5.conf


PHP 설치확인을 위해 아래 파일을 홈페이지 홈디렉토리에 만든다.


info.php라는 파일로 다음을 작성하자.


# cd /web/httpd/htdocs

# vi info.php


<?

phpinfo(); 

?>


아파치 데몬을 재시작한다.


# /web/httpd/bin/apachectl stop

# /web/httpd/bin/apachectl start



다. 확장 모듈 설치


■ mailparse 설치


# export PATH=$PATH:/web/php/bin


# pecl channel-update pecl.php.net


# pecl download mailparse


# tar xvfz mailparse-2.1.6.tgz

# cd mailparse-2.1.6

# phpize

# ./configure

# make

# make install


■ PHP ioncube 모듈을 설치합니다.


모듈이 설치되는 곳은 아래와 같이 확인한다. no-debug-non-zts-00000000 뒤의 날짜는 다를 수 있다.

# ls /web/php/lib/php/extensions/

no-debug-non-zts-20060613


아래 사이트에서 직접 다운받아 PHP extension directory 로 복사후 설치를 시작해야 합니다.

http://www.ioncube.com/loaders.php


# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

# gunzip < ioncube_loaders_lin_x86.tar.gz | tar -xf -

# cp ioncube/*.so /web/php/lib/php/extensions/no-debug-non-zts-20060613/


# /web/httpd/bin/apachectl stop

# /web/httpd/bin/apachectl start


다시 PHPINFO를 확인해보자.

php.ini가 수정되지 않아 Addon modules에 올라오지는 않는다. nmail 설치단계에서 php.ini.를 수정한다.


센드메일(sendmail)을 서비스 데몬에서 빼야 한다. 부팅시 충돌로 부팅이 않될수 있다.


# chkconfig sendmail off 5

# chkconfig sendmail off 3


다음으로 nmail를 설치하자.


2. nmail 설치하기


가. 다운로드


한글 메시지가 깨질 경우 아래와 같이 하여 한글 메세지를 볼 수 있습니다.


# export LANG=ko_KR.eucKR


# ln -s /web/php/bin/php* /usr/bin/



프로그램과 설치파일을 다운받아서 FTP로 올려두거나 wget 으로 받습니다.

# mkdir nmail

# cd nmail


# wget http://passkorea.net/nmailphp/nmail-php-linux.tgz



나. 설치하기


압축을 해제합니다.


# tar zxvf nmail-php-linux.tgz


설치 스크립트를 실행한 후 ‘설치 완료’가 나올때까지 지시대로 진행하시면 됩니다.


# /web/php/bin/php nmail-php-2.5.1_install.php


제품지원 홈페이지 : http://passkorea.net

제품 구입안내 : (TEL)1544-1608 (way@passkorea.net)


위 Nmail 라이센스 규정에 동의하십니까? [y/N] : y


==============================================================================

= [1] 설치시 사용될 정보를 입력합니다.

==============================================================================

괄호로 둘러 쌓인 항목( [nmail2] )은 엔터만 입력하면 지정되는 기본값입니다.

특별한 사유가 없다면 가급적 기본값으로 설치하는 것을 권장해드립니다.


- 엔메일 기본 도메인(YourDomain.com)

  주의) 2차도메인인 mail.YourDomain.com 은 입력하시면 안됩니다.

  입력하신 도메인은 [ UserID@YourDomain.com ]형태의 메일주소로 사용됩니다.

  : ikunsan.co.kr


[ikunsan.co.kr] 도메인의 IP를 찾지 못했으며 예상되는 원인은 다음과 같습니다.

  1. DNS 서버에서 해당 도메인을 등록하지 않은 경우.

  2. /etc/resolv.conf 에 등록된 네임서버에 문제가 있어서 해당 도메인을 찾지 못하는 경우.

입력하신 도메인을 그대로 사용하시겠습니까? [y/N] : y


- 엔메일 설치 디렉토리(없을 경우 자동생성됨)

  [/home/nmail2] : [엔터]

- 엔메일 셋팅시 사용될 비밀번호(영문,숫자,특수문자)

  시스템계정, 관리자계정, 디비계정에서 사용됩니다.

  : 1234 [엔터]

- 엔메일 셋팅시 사용될 비밀번호 확인

  : 1234 [엔터]


==============================================================================

= [2] 엔메일 관리용 시스템 계정을 생성합니다.

==============================================================================

id: nmail2: No such user

[nmail2]계정을 생성하였습니다.

nmail2 사용자의 비밀 번호 변경 중

passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


==============================================================================

= [3] 엔메일 설치파일을 복사합니다.

==============================================================================

/home/nmail2 디렉토리에 압축을 풀어 복사했습니다.


==============================================================================

= [4] 엔메일 설치디렉토리를 확인합니다.

==============================================================================

이상이 없습니다.


==============================================================================

= [5] 엔메일용 디비와 계정생성 작업을 시작합니다.

==============================================================================

- MySQL 서버 주소(Host/IP)를 입력하세요.

  주의) 엔메일을 설치하려는 서버내에 MySQL 서버가 같이 있는 경우, localhost 를 픶韜쪄絿첩?됩니다.

  [localhost] : [엔터]

- MySQL root 계정의 비밀번호를 입력하세요.

  : 1234 [엔터]


입력된 정보로 MySQL 서버에 접속 테스트를 시작합니다...

...연결성공!

엔메일용 디비와 계정의 아이디는 편의를 위해 [nmail2]로 설정됩니다.

엔메일 데이터베이스를 생성하였습니다. => nmail2

엔메일 디비 계정을 생성하였습니다. => nmail2

엔메일 디비 계정 접속 테스트에 성공하였습니다.

엔메일 디비 계정 권한부여 테스트에 성공하였습니다.

엔메일 디비 설정파일을 저장하였습니다.

  /home/nmail2/nmail/include/global_db.php


==============================================================================

= [6] 메일발송시 사용할 DNS 목록을 선택합니다.

==============================================================================

다음 DNS 목록은 [메일서버관리 >> 서버 설정]에서 'DNS 직접 지정'항목에 추가되며,

    설치가 완료된 뒤에도 관리자모드에서 변경이 가능합니다.


    10.0.2.15

    164.124.101.2

    168.126.63.2

    203.248.252.2


위 DNS 목록을 사용하시겠습니까? [Y/n] :y


==============================================================================

= [7] 엔메일 메일엔진 관련파일을 복사합니다.

==============================================================================

[Nmail] auto startup script - install

  init.d path : /etc/rc.d/init.d/

[Nmail] sendmail wrapper - link

  sendmail wrapper path : /usr/sbin/sendmail (backup, create)

[Nmail] sendmail wrapper - permission change(SUID)

Complete!!!

복사했습니다.


==============================================================================

= [8] 메일엔진에서 기본 도메인을 설정합니다.

==============================================================================

  /var/MailRoot/server.tab

기본 도메인을 [ikunsan.co.kr]으로 설정하였습니다.


==============================================================================

= [9] 웹메일 서비스에 사용될 Apache 웹서버의 정보를 확인합니다.

==============================================================================

실행중인 Apache 웹서버의 프로세스 목록입니다.


root     20504     1  0 15:33 ?        00:00:00 /web/httpd/bin/httpd -k start

daemon   20505 20504  0 15:33 ?        00:00:00 /web/httpd/bin/httpd -k start

daemon   20506 20504  0 15:33 ?        00:00:00 /web/httpd/bin/httpd -k start

daemon   20507 20504  0 15:33 ?        00:00:00 /web/httpd/bin/httpd -k start

daemon   20508 20504  0 15:33 ?        00:00:00 /web/httpd/bin/httpd -k start




- Apache 웹서버 경로 확인

    httpd path : /web/httpd/bin/httpd

    httpd.conf path : /web/httpd/conf/httpd.conf

    httpd start/stop script path : /web/httpd/bin/apachectl


위 정보가 정확합니까? [Y/n] :


- Apache 웹서버의 자동 검출된 정보

  설정파일 : /web/httpd/conf/httpd.conf

  User : daemon

  Group : daemon

  Group ID : 2


위 정보가 잘못되었을 경우 엔메일 동작시 각종 퍼미션 문제가 발생할 수 있습니다.

위 정보가 정확합니까? [Y/n] :



엔메일 동작시 사용될 Apache 웹서버의 Group 정보를 저장하였습니다.


==============================================================================

= [10] 복사된 파일들의 퍼미션을 조정합니다.

==============================================================================

[Nmail]Permission Change....

  NMAIL_APACHE_ID : apache

...Rootdir

...Maildir

...mail files

...MailRoot

...sendmail wrapper

Complete!!!


==============================================================================

= [11] PHP mailparse 모듈을 설치합니다.

==============================================================================

이미 설치되었으므로 생략합니다.


==============================================================================

= [12] PHP ioncube 모듈을 설치합니다.

==============================================================================

이미 설치되었으므로 생략합니다.


[Enter]를 누르시면 설치작업이 계속 진행됩니다.


... 생략 ...



;---------------------------------

;Nmail Auto Config - Begin

;extension_dir="/usr/lib/php/modules"

;extension=mailparse.so

;donwload - http://www.ioncube.com/loaders.php

;zend_extension="/usr/lib/php/modules/ioncube_loader_lin_5.3.so"

;zend_extension_ts="/usr/lib/php/modules/ioncube_loader_lin_5.3_ts.so"

register_globals = On

magic_quotes_gpc = On

allow_call_time_pass_reference = On

;Attachment Size

upload_max_filesize = 100M

post_max_size = 120M

memory_limit = 200M

max_input_time = 3600

max_execution_time = 3600

;General

error_reporting = E_ALL & ~E_NOTICE

display_errors = On

log_errors = On

display_startup_errors = On

error_log = syslog

;Nmail Auto Config - End

;---------------------------------



[Enter]를 누르시면 설치작업이 계속 진행됩니다.


==============================================================================

= [17] 설정파일들을 테스트합니다.

==============================================================================



... 생략 ...


DB dump file 을 import 하고 있습니다.

서버사양에 따라 5~10분정도 걸릴 수 도 있으니 완료메세지가 나올때까지 기다려 주십시오.

회원테이블(nmail_member)이 없으므로 테이블 생성 작업을 시작합니다.


[성공]테이블 생성이 완료되었습니다. ( 2sec )


우편번호 데이타를 삽입하고 있는 중입니다...


... 생략 ...


[성공]우편번호 데이타를 48,161건 삽입했습니다. ( 115sec )


음력 데이타를 삽입하고 있는 중입니다...


... 생략 ...


[성공]음력 데이타를 109,938건 삽입했습니다. ( 360sec )


==============================================================================

= [19] 엔메일 기본 도메인을 추가합니다.

==============================================================================



가입성공 : postmaster(서버관리자)


==============================================================================

= [21] sendmail wrapper (/usr/sbin/sendmail) 발송 테스트.

==============================================================================



[성공]

sendmail 을 이용해서 발송하던 프로그램에서도 정상적인 메일발송이 가능합니다.


[Enter]를 누르시면 설치작업이 계속 진행됩니다.


==============================================================================

= [22] Apache 웹서버의 설치 정보를 확인합니다.

==============================================================================

- Apache 웹서버의 실행파일은 [/web/httpd/bin/httpd]로 자동검출되었습니다.

  위 실행파일이 맞습니까? [Y/n] :


==============================================================================

= [23] Apache 웹서버를 재시작합니다.

==============================================================================

  /web/httpd/bin/apachectl restart



==============================================================================

= [24] 메일데이타와 디비의 동기화 스크립트를 Cron 데몬에 등록합니다.

==============================================================================

동기화 스크립트가 Cron 데몬에 이미 등록되어 있습니다.

  => /etc/cron.hourly/nmail_mail_box_dbsync.cron


==============================================================================

= [25] MySQL DB의 테이블최적화 스크립트를 Cron 데몬에 등록합니다.

==============================================================================

테이블최적화 스크립트가 Cron 데몬에 이미 등록되어 있습니다.

  => /etc/cron.daily/nmail_mysql_optimize.cron


==============================================================================

= [26] MySQL Server의 max_allowed_packet 값을 확인합니다.

==============================================================================

본문이 큰 메일을 저장하기 위해서는 이 값이 32M정도로 여유있게 설정되어 있어야 합니다.


현재 설정은 [max_allowed_packet=1M]이므로

이보다 큰 본문은 디비에 저장되지 않는 에러가 발생하게 됩니다.

해결방법은 MySQL Server 의 설정 파일인 my.cnf 에 다음처럼 설정후 재시작해주시면 됩니다.


  ex)

    vi /etc/my.cnf

        [mysqld]

        max_allowed_packet=32M


보다 자세한 내용은 아래 문서를 참고하시면 됩니다.

  http://dev.mysql.com/doc/refman/4.1/en/packet-too-large.html


[Enter]를 누르시면 설치작업이 계속 진행됩니다.




==============================================================================

= [27] Apache 웹서버의 가상호스트/알리아스 설정 안내

==============================================================================

이제 Apache 웹서버의 설정파일인 httpd.conf 에 가상호스트(혹은 알리아스) 설정을 ?煞′構?

Apache 웹서버를 재시작하면 웹메일을 사용하실 수 있게 됩니다.


  httpd.conf 에 추가해야할 내용)

    주의1) 서버에 따라 NameVirtualHost, VIrtualHost 항목은 다를 수 있으니 기존 ?냇ㅐ?확인하세요.

    주의2) ServerName 은 DNS 설정에 따라 'mail'이라는 2차도메인이 붙지 않을 수 ??있으니

        DNS 서버관리자에게 문의하시기 바랍니다.

    주의3) VIrtualHost 가 없던 사이트에서 VIrtualHost 를 추가할 경우 기존 홈페이지까지 엔메일로 접근될 수 있습니다.

        따라서 기존 홈페이지의 VIrtualHost 는 따로 만들어주셔야 합니다.


  ex)

    vi /web/httpd/conf/httpd.conf

-- 다음 페이지 --



### 가상호스트 ###


# VirtualHost Enabled

NameVirtualHost *:80


# Nmail PHP - http://mail.ikunsan.co.kr/

<VirtualHost *:80>

     ServerAdmin postmaster@ikunsan.co.kr

     DocumentRoot "/home/nmail2/nmail"

     ServerName mail.ikunsan.co.kr

     ServerAlias mail.*

     #ServerAlias mail.MultiDomain1.com mail.MultiDomain2.com

     ErrorLog logs/nmail2.error_log

     TransferLog logs/nmail2.access_log

     <Directory "/home/nmail2/nmail">

         Options None

         AllowOverride None

         Order allow,deny

         Allow from all

     </Directory>

</VirtualHost>



### 알리아스 ###


# Nmail PHP - http://www.ikunsan.co.kr/webmail/

Alias /webmail "/home/nmail2/nmail"

<Directory "/home/nmail2/nmail">

         Options None

         AllowOverride None

         Order allow,deny

         Allow from all

</Directory>


----------------- 설치 완료 -----------------

[root@www apm]#



다. 아파치 VHost 설정하기


# cd /web/httpd/conf

# vi httpd.conf



# Virtual hosts

Include conf/extra/httpd-vhosts.conf


# PHP

include conf/extra/httpd-php5.conf


-------------------------- httpd.conf 끝 --------------

# cd /web/httpd/conf/extra


# vi httpd-vhosts.conf

# VirtualHost Enabled

NameVirtualHost *:80


# Nmail PHP - http://mail.YourDomain.com/

<VirtualHost *:80>

     ServerAdmin postmaster@ikunsan.co.kr

     DocumentRoot "/home/nmail2/nmail"

     ServerName mail.ikunsan.co.kr

    # ServerAlias mail.*

    # ServerAlias mail.MultiDomain1.com mail.MultiDomain2.com

     ErrorLog logs/nmail2.error_log

     TransferLog logs/nmail2.access_log

     <Directory "/home/nmail2/nmail">

         Options None

         AllowOverride None

         Order allow,deny

         Allow from all

     </Directory>

</VirtualHost>


# /web/httpd/bin/apache stop

# /web/httpd/bin/apache start



3. 호스트 컴퓨터에서 웹메일 접속하기

윈도우 XP의 hosts파일에 도메인을 등록하자


윈도우탐색기를 이용하여 C:\WINDOWS\system32\drivers\etc 폴더 밑의 hosts파일에 아래와 같이 mail.ikunsan.co.kr을 추가합니다.



웹브라우저를 통해 접속을 확인한다.


관리자 아이디는 postmaster , 암호는 설치시 1234를 넣었다. 로그인 해보자.





[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.