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를 넣었다. 로그인 해보자. |
[목차] |