1. PHP 경로 확인
php, pear, pecl 등의 실행파일이 /usr/bin/ 아래에 존재하거나 링크되어 있는지 확인해야 합니다.
Apache+PHP 를 RPM 으로 설치했다면 해당 위치에 존재하지만 컴파일로 설치했을 경우 다음처럼 /usr/bin/ 아래로 링크를 걸어주어야 합니다.
# 파일이 존재하는지 확인
ls /usr/bin/php /usr/bin/pear /usr/bin/pecl /usr/bin/phpize
#result# ls: **** 그런 파일이나 디렉토리가 없음
# /usr/bin/php 가 존재하지 않을 경우 PHP가 설치된 디렉토리를 기준으로 심볼릭링크 생성.
#ln -s /PHP_설치경로_직접입력/bin/* /usr/bin/
#ln -s /PHP_설치경로_직접입력/bin/* /usr/bin/
ln -s /usr/local/php/bin/* /usr/bin/
# 링크된 파일의 실행 테스트
/usr/bin/php -v
/usr/bin/pear config-show
주의) 컴파일로 설치된 PHP와 RPM으로 설치된 PHP가 함께 설치되어 있을 경우 PHP 충돌로 인해 설치시 예기치 못한 문제가 발생할 수 있습니다.
따라서 반드시 2개 중 하나를 삭제해야 합니다.
# RPM으로 설치된 PHP가 있는지 확인.
rpm -qa|grep php
# 웹페이지의 phpinfo() 정보에서 보여지는 PHP 버젼, php.ini 경로가
# 다음처럼 쉘모드에서와 일치하는지 확인.
php -v
php -i|grep ini
php -i|grep ini
2. PHP mailparse 모듈 설치
# pear나 wget 을 통해 mailparse 소스를 다운받습니다.
#pear download mailparse
#pecl download mailparse
#pear download mailparse
#pecl download mailparse
# 다운받은 파일의 압축을 해제합니다.
tar zxvf mailparse-2.1.1.tgz
# 디렉토리로 이동후 소스 컴파일
cd mailparse-2.1.1/
phpize
./configure
make
make install
3. 기존 메일서비스(SMTP/POP3) 중지
설치시 엔메일용 SMTP/POP3 서비스를 실행하게 됩니다.
따라서 기존에 운영중이던 SMTP/POP3 서비스는 종료시키고 부팅시 자동 실행되지 않도록 조치하셔야 합니다.
그렇지 않을 경우 설치가 완료되어도 엔메일에서 메일을 받지 못하게 됩니다.
따라서 기존에 운영중이던 SMTP/POP3 서비스는 종료시키고 부팅시 자동 실행되지 않도록 조치하셔야 합니다.
그렇지 않을 경우 설치가 완료되어도 엔메일에서 메일을 받지 못하게 됩니다.
다음은 Linux 에서 일반적으로 많이 사용되는 sendmail, ipop3 데몬을 기준으로 한 것이며
시스템에 따라 postfix, qmail, courier-imap 등 다른 서비스가 사용하고 있을 수 도 있으니 미리 확인해보시기 바랍니다.
시스템에 따라 postfix, qmail, courier-imap 등 다른 서비스가 사용하고 있을 수 도 있으니 미리 확인해보시기 바랍니다.
# 부팅시 자동실행 방지.
/sbin/chkconfig sendmail off
/sbin/chkconfig ipop3 off
#/sbin/chkconfig postfix off
#/sbin/chkconfig courier-imap off
# 기존 메일서비스용 데몬 종료.
/etc/init.d/sendmail stop
/etc/init.d/xinetd reload
#/etc/init.d/postfix stop
#/etc/init.d/courier-imap stop
# 메일서비스 종료후 SMTP(25), POP3(110)포트에서 응답이 없는지 확인.
telnet 127.0.0.1 25
telnet 127.0.0.1 110
# 만약 25, 110 포트에서 응답이 있다면 기존 메일서비스가 종료된 것이 아니므로 재확인하셔야 합니다.
4. 일부 리눅스 배포판의 SELinux 중지
-- SULinux는 그냥 다음 단계로 넘어가도 되지만 확인하는것이 좋습니다. --
fedora, redhat enterprise 등 SELinux 가 설치된 리눅스에서는 아래처럼 이 기능을 설치시 알 수 없는 문제가 발생하지 않습니다.
fedora, redhat enterprise 등 SELinux 가 설치된 리눅스에서는 아래처럼 이 기능을 설치시 알 수 없는 문제가 발생하지 않습니다.
# 설정파일에서 옵션을 enforcing 에서 disabled 로 수정.
vi /etc/selinux/config
SELINUX=enforcing
=>
SELINUX=disabled
# SELinux 를 재부팅하지 않고 즉시 중지
/usr/sbin/setenforce 0
# 만약 setenforce 가 없다면 서버를 재부팅해야 합니다.
5. 설치 프로그램 실행
설치 프로그램을 다운받아서 원하는 디렉토리에 넣어두고 실행합니다.
이때 아파치 웹서버를 미리 실행해두어야 설치 프로그램에서 아파치 웹서버의 정보를 자동인식할 수 있게 됩니다.
자세한 내용은 설치 프로그램에서 나오는 안내문구를 보고 따라서 진행하시면 됩니다.
이때 아파치 웹서버를 미리 실행해두어야 설치 프로그램에서 아파치 웹서버의 정보를 자동인식할 수 있게 됩니다.
자세한 내용은 설치 프로그램에서 나오는 안내문구를 보고 따라서 진행하시면 됩니다.
예제) /tmp 디렉토리에 넣어두었을 경우의 예제.
# 프로그램과 설치파일을 다운받아서 FTP로 올려두거나 wget 으로 받습니다.
wget http://passkorea.net/nmailphp/nmail-php-linux.tgz
wget http://passkorea.net/nmailphp/nmail-php-linux.tgz
# 압축을 해제합니다.
tar zxvf nmail-php-linux.tgz
# 주의) 반드시 /usr/bin/php 위치에 php 실행파일이 존재해야 합니다.
# 1. PHP 경로 확인 을 했다면 이상없으니 아래 파일을 실행 하세요.
# 참고 글자가 깨어져서 확인이 불가 할때는 vi /etc/sysconfig/i18n 을 열고 아래와 같이 수정하고 서버를 재부팅(reboot)해야 합니다.
----------- i18n -----------------------------
#UTF-8
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
#eucKR
LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
---------------------------------------------
#언어설정을 마쳤다면 아래 파일을 실행 한다 - /usr/bin/php nmail-php-2.5.1_install.php 을 모두 적어 넣는다.
/usr/bin/php nmail-php-2.5.1_install.php
# 설치 스크립트를 실행한 후 ‘설치 완료’가 나올때까지 지시대로 진행하시면 됩니다.
6. Apache 가상호스트 설정
# Nmail PHP - http://mail.YourDomain.com/
<VirtualHost *:80>
ServerAdmin postmaster@YourDomain.com
DocumentRoot "/home/nmail2/nmail"
ServerName mail.YourDomain.com
ServerAlias mail.*
ErrorLog logs/nmail2.error_log
TransferLog logs/nmail2.access_log
</VirtualHost>
7. /root/bin/su_usersetup 파일 수정
# su_usersetup 파일을 이용해 사용자 계정을 추가 할때 메일 도메인과 어드민(webmaster) 계정을 자동으로 만들자
su_usersetup 파일 중 87번 라인 정도의
han_print "sendmail 셋팅중 ...."
/root/bin/su_mailuser --addforward $5 webmaster $3
을 찾아 주석처리하고 아래와 같이 변경한다.
---------------------------------------------------------------------------
#han_print "sendmail 셋팅중 ...."
#/root/bin/su_mailuser --addforward $5 webmaster $3
han_print "nmail 셋팅중 ...."
/home/nmail2/tools/domain_add.php $5
han_print "nmail 관리자 생성중 ...."
/home/nmail2/tools/mbr_add.php $5 webmaster webmaster $4 ADMIN
-----------------------------------------------------------------------------
su_usersetup 파일 중 119번 라인 정도의
/root/bin/su_dbuser --del $db_name $db_user
han_print " 가상 호스트 부분 삭제.."
/root/bin/su_vhost --del $3
han_print "메일 관련 셋팅부분 삭제"
han_print "/etc/mail/local-host-names 에서 삭제중 .."
cat /etc/mail/local-host-names | grep -v "^$3" > /tmp/imsi
cat /tmp/imsi > /etc/mail/local-host-names
han_print "/etc/mail/virtusertable 에서 삭제중.."
cat /etc/mail/virtusertable | grep -v "@$3" > /tmp/imsi
cat /tmp/imsi > /etc/mail/virtusertable
rm -rf /tmp/imsi
han_print "관련 db 갱신중.."
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
han_print "sendmail 재 시작중..."
/etc/rc.d/init.d/sendmail restart
을 찾아 아래와 같이 주석처리 한다.
----------------------------------------------------------------------------------------
/root/bin/su_dbuser --del $db_name $db_user
han_print " 가상 호스트 부분 삭제.."
/root/bin/su_vhost --del $3
#han_print "메일 관련 셋팅부분 삭제"
#han_print "/etc/mail/local-host-names 에서 삭제중 .."
#cat /etc/mail/local-host-names | grep -v "^$3" > /tmp/imsi
#cat /tmp/imsi > /etc/mail/local-host-names
#han_print "/etc/mail/virtusertable 에서 삭제중.."
#cat /etc/mail/virtusertable | grep -v "@$3" > /tmp/imsi
#cat /tmp/imsi > /etc/mail/virtusertable
#rm -rf /tmp/imsi
#han_print "관련 db 갱신중.."
#makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
#han_print "sendmail 재 시작중..."
#/etc/rc.d/init.d/sendmail restart
-----------------------------------------------------------------------------------------
8. /etc/sysconfig/i18n 재설정
----------------------------------------------------------------------
#UTF-8
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
/home/nmail2/tools/mbr_add.php $5 webmaster webmaster $4 ADMIN
-----------------------------------------------------------------------------
su_usersetup 파일 중 119번 라인 정도의
/root/bin/su_dbuser --del $db_name $db_user
han_print " 가상 호스트 부분 삭제.."
/root/bin/su_vhost --del $3
han_print "메일 관련 셋팅부분 삭제"
han_print "/etc/mail/local-host-names 에서 삭제중 .."
cat /etc/mail/local-host-names | grep -v "^$3" > /tmp/imsi
cat /tmp/imsi > /etc/mail/local-host-names
han_print "/etc/mail/virtusertable 에서 삭제중.."
cat /etc/mail/virtusertable | grep -v "@$3" > /tmp/imsi
cat /tmp/imsi > /etc/mail/virtusertable
rm -rf /tmp/imsi
han_print "관련 db 갱신중.."
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
han_print "sendmail 재 시작중..."
/etc/rc.d/init.d/sendmail restart
을 찾아 아래와 같이 주석처리 한다.
----------------------------------------------------------------------------------------
/root/bin/su_dbuser --del $db_name $db_user
han_print " 가상 호스트 부분 삭제.."
/root/bin/su_vhost --del $3
#han_print "메일 관련 셋팅부분 삭제"
#han_print "/etc/mail/local-host-names 에서 삭제중 .."
#cat /etc/mail/local-host-names | grep -v "^$3" > /tmp/imsi
#cat /tmp/imsi > /etc/mail/local-host-names
#han_print "/etc/mail/virtusertable 에서 삭제중.."
#cat /etc/mail/virtusertable | grep -v "@$3" > /tmp/imsi
#cat /tmp/imsi > /etc/mail/virtusertable
#rm -rf /tmp/imsi
#han_print "관련 db 갱신중.."
#makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
#han_print "sendmail 재 시작중..."
#/etc/rc.d/init.d/sendmail restart
-----------------------------------------------------------------------------------------
8. /etc/sysconfig/i18n 재설정
----------------------------------------------------------------------
#UTF-8
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
SYSFonT="lat0-sun16"
SYSFonTACM="8859-15"
#eucKR
#LANG="ko_KR.eucKR"
#SUPPORTED="ko_KR.eucKR:ko_KR:ko"
#SYSFonT="lat0-sun16"
#SYSFonTACM="8859-15"
--------------------------------------------------------------------
위와 같이 eucKR 부분을 #-주석처리 하거나 삭제 하세요. 그런 후
다시 한번 서버를 재시작 (reboot) 한다.
#LANG="ko_KR.eucKR"
#SUPPORTED="ko_KR.eucKR:ko_KR:ko"
#SYSFonT="lat0-sun16"
#SYSFonTACM="8859-15"
--------------------------------------------------------------------
위와 같이 eucKR 부분을 #-주석처리 하거나 삭제 하세요. 그런 후
다시 한번 서버를 재시작 (reboot) 한다.