Posted
Filed under Linux
[원본] : https://www.sulinux.net/bbs/board.php?bo_table=success_2&wr_id=168

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 /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
 
 
2.    PHP mailparse 모듈 설치
# pear나 wget 을 통해 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 서비스는 종료시키고 부팅시 자동 실행되지 않도록 조치하셔야 합니다. 
그렇지 않을 경우 설치가 완료되어도 엔메일에서 메일을 받지 못하게 됩니다.
다음은 Linux 에서 일반적으로 많이 사용되는 sendmail, ipop3 데몬을 기준으로 한 것이며
시스템에 따라 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 가 설치된 리눅스에서는 아래처럼 이 기능을 설치시 알 수 없는 문제가 발생하지 않습니다.

# 설정파일에서 옵션을 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
# 압축을 해제합니다.
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"
 
#eucKR
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"
 
#eucKR
#LANG="ko_KR.eucKR"
#SUPPORTED="ko_KR.eucKR:ko_KR:ko"
#SYSFonT="lat0-sun16"
#SYSFonTACM="8859-15"
--------------------------------------------------------------------

위와 같이 eucKR 부분을 #-주석처리 하거나 삭제 하세요. 그런 후

다시 한번 서버를 재시작 (reboot)  한다.
2009/07/28 09:07 2009/07/28 09:07