二月
14
2007

使用urpmi將sendmail換成POSTFIX

背景

我原本在大陸的主機是沒有安裝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,而且信件也都正常寄達

系統操作歷程

[[email protected] 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]
[[email protected] 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]
[[email protected] 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 ]

[[email protected] 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 ]

[[email protected] etc]# rc.d/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[[email protected] etc]#

Comments are closed.