背景
我原本在大陸的主機是沒有安裝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
removing medium "Installation Free CD1 (cdrom1)"
removing medium "Installation Free CD2 (cdrom2)"
removing medium "updates"
removing medium "main"
removing medium "contrib"
found 0 headers in cache
removing 0 obsolete headers in cache
wrote config file [/etc/urpmi/urpmi.cfg]
[root@localhost etc]# urpmi.addmedia main ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main with media_info/hdlist.cz
added medium main
wrote config file [/etc/urpmi/urpmi.cfg]
computing md5sum of existing source hdlist (or synthesis)
retrieving source hdlist (or synthesis) of "main"...
ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/media_info/hdlist.cz
found probed hdlist (or synthesis) as media_info/hdlist.cz
...retrieving done
examining hdlist file [/var/cache/urpmi/partial/hdlist.main.cz]
examining pubkey file of "main"...
performing second pass to compute dependencies
examining hdlist file [/var/lib/urpmi/hdlist.main.cz]
built hdlist synthesis file for medium "main"
found 0 headers in cache
removing 0 obsolete headers in cache
wrote config file [/etc/urpmi/urpmi.cfg]
[root@localhost etc]# urpmi postfix
The following packages have to be removed for others to be upgraded:
sendmail-8.13.4-6mdk.i586 (due to conflicts with postfix) (y/N) y
ftp://mdk.linux.org.tw/pub/mandrakelinux/official/2006.0/i586/media/main/postfix-2.2.5-7mdk.i586.rpm
installing postfix-2.2.5-7mdk.i586.rpm from /var/cache/urpmi/rpms
removing sendmail-8.13.4-6mdk.i586
Preparing... #############################################
1/1: postfix #############################################
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: /etc/init.d/syslog: line 41: 25192 Terminated $*[FAILED]
Starting kernel logger: [ OK ]
[root@localhost etc]# /etc/rc.d/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: /etc/rc.d/init.d/syslog: line 41: 25568 Terminated $*[FAILED]
Starting kernel logger: [ OK ]
[root@localhost etc]# rc.d/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@localhost etc]#