背景
阿維原本在大陸的主機是沒有安裝sendmail的,
因為原本的功能需求並不需要,所以阿維也乾脆連PORT 25都一併關掉.
後來公司的大陸企業網站也架在這台主機上後,
負責企業網站的那組人需要寄發郵件的功能.
於是阿維就將PORT 25打開,並且讓他們使用PEAR MAIL的方式去寄信.
可是今天他們跟我反應說,功能無法正常執行.
阿維自己測試了一下,的確每次寄信的response都很久.
於是就想說乾脆重新編譯PHP,將sendmail的功能也編進去.
可是重新編譯完PHP之後,response緩慢的情形一樣沒有改善.
再和阿凱討論之後,決定使用POSTFIX取代sendmail
主機的Linux版本 : Mandriva Linux release 2006.0 (Official) for i586

設定urpmi
首先我們必須先將安裝過程中的urpmi先清除掉,這樣我們使用urpmi的時候,他才不會去找CDROM
指令 urpmi.removemedia -a

到 Easy Urpmi找出離你最近的主機做更新
Easy Urpmi
基本上只需要做main的部份.
主機的話就選離你最近的,因為列表中沒有大陸的主機,
所以阿維就選台灣,想說應該不會太慢.
選擇完之後它會顯示更新的網址.
阿維得到的結果是
指令 urpmi.addmedia main ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main
with media_info/hdlist.cz

輸入這段結果後,系統會進行更新.
阿維昨天在更新的時候,速度還蠻快的,平均在200K~203K,只花兩分半鐘就做完更新了

安裝POSTFIX
指令 urpmi postfix
因為阿維一開始有安裝sendmail,因此在安裝postfix的時候,他會問要不要移除sendmail.
為了讓系統乾淨一點,所以當然是選擇移除sendmail.
安裝的時候會出現syslog的錯誤,
阿維在安裝完嘗試將syslog restart可是一樣會有問題.
不過在最後重起POSTFIX的時候,POSTFIX是可以正常運作的.
所以阿維就也先不去理會它了
指令 postfix restart

測試
阿維在啟動POSTFIX之後,將原本執行很慢的PEAR MAIL和使用PHP MAIL function的程式又重新跑了一次.
效能果然好很多,程式很快就有response,而且信件也都正常寄達

系統操作歷程
[root@localhost etc]# urpmi.removemedia -a <br>removing medium "Installation Free CD1 (cdrom1)" <br>removing medium "Installation Free CD2 (cdrom2)" <br>removing medium "updates" <br>removing medium "main" <br>removing medium "contrib" <br>found 0 headers in cache <br>removing 0 obsolete headers in cache <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>[root@localhost etc]# urpmi.addmedia main ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main with media_info/hdlist.cz <br>added medium main <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>computing md5sum of existing source hdlist (or synthesis) <br>retrieving source hdlist (or synthesisof "main"... <br>    ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/media_info/hdlist.cz <br>found probed hdlist (or synthesis) as media_info/hdlist.cz <br>...retrieving done <br>examining hdlist file [/var/cache/urpmi/partial/hdlist.main.cz] <br>examining pubkey file of "main"... <br>performing second pass to compute dependencies <br> <br>examining hdlist file [/var/lib/urpmi/hdlist.main.cz] <br>built hdlist synthesis file for medium "main" <br>found 0 headers in cache <br>removing 0 obsolete headers in cache <br>wrote config file [/etc/urpmi/urpmi.cfg] <br>[root@localhost etc]# urpmi postfix <br>The following packages have to be removed for others to be upgraded: <br>sendmail-8.13.4-6mdk.i586 (due to conflicts with postfix) (y/Ny <br> <br>    ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/postfix-2.2.5-7mdk.i586.rpm <br>installing postfix-2.2.5-7mdk.i586.rpm from /var/cache/urpmi/rpms <br>removing sendmail-8.13.4-6mdk.i586 <br>Preparing...                     ############################################# <br>      1/1postfix               ############################################# <br>Shutting down kernel logger: [  OK  ] <br>Shutting down system logger: [  OK  ] <br>Starting system logger: /etc/init.d/syslogline 4125192 Terminated              $* <br>[FAILED] <br>Starting kernel logger: [  OK  ] <br> <br>[root@localhost etc]# /etc/rc.d/init.d/syslog restart <br>Shutting down kernel logger:                                    [  OK  ] <br>Shutting down system logger:                                    [  OK  ] <br>Starting system logger: /etc/rc.d/init.d/syslogline 4125568 Terminated              $* <br>                                                                [FAILED] <br>Starting kernel logger:                                         [  OK  ] <br> <br>[root@localhost etc]# rc.d/init.d/postfix restart <br>Shutting down postfix:                                          [  OK  ] <br>Starting postfix:                                               [  OK  ] <br>[root@localhost etc]