用 CentOS 5.8 x64 升級為 php 5.4.9 後安裝 Squirrelmail 並用 Postfix 當 Mail Gateway

嘆 ! 有時候啊 ! 自己 debug 系統真的會 d 到快崩潰 ....

因為 Research 的需要 ... 所以我得再把 Mail Server 弄起來 ... 
基本上 Mail Server 在安裝好 Cent OS 5.8 後一整個超簡單的 !
1. 安裝套件:
   yum -y install dovecot

2. 修改設定檔:
   vi /etc/dovecot.conf
   20行改為 #protocols = pop3s imap (看你自己需求)

   vi /etc/postfix/main.cf
   myhostname = your.domain.name (ex: plus.twman.org)
   mydomain = your.domain (ex: twman.org)
   mydestination = $myhostname

   vi /usr/local/virus/iptables/iptables.rule
   防火牆要開port 110 443 143

   vi /etc/squirrelmail/config.php
   $domain                 = 'your.domain (ex: twman.org)';
   $imapServerAddress      = 'your.domain.name (ex: plus.twman.org)'

   vi /etc/httpd/conf/httpd.conf
   User nobody
   Group nobody

3. 啟動服務:
   確認 sendmail 是否佔用 25
   service sendmail stop
   chkconfig sendmail off
   
   chkconfig dovecot on
   chkconfig postfix on
   service dovecot restart (或/etc/rc.d/init.d/dovecot start)
   service postfix restart
   service httpd restart

基本上到這邊可以說是非常的簡單跟快速 .... 這時打開你的網頁就可以看到登入畫面

https://your.domain.name/webmail/

但是 .... 如果你也跟我一樣白目 ... 硬是把 PHP 給升級到 5.4.9 的話 !

很抱歉 ... 你絕對打不開網頁的,更別說登入後能不能正常收發信了 !

PHP Fatal error:  require_once(): Failed opening required '../config/config.php' (include_path='.:/usr/share/pear:/usr/share/php') in /usr/share/squirrelmail/functions/global.php on line 105

用下面兩個指令勉強可以解決上面的問題 ....
mv /etc/squirrelmail/config.php /etc/squirrelmail/config.php.bad
cp /usr/share/squirrelmail/config/config_default.php /etc/squirrelmail/config.php

但下面這個我就花了一天 ... 始終找不到解法,還因此重灌了系統 3次,更別說幫 php 降版本或者是自己編譯還有找出squirrelmail的rpm檔來做測試 ...

PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0, referer: https://vm.twman.org/webmail/src/login.php

所幸 ~ 天公疼抬丸郎 .... 終究還是被我找到方法了 ..... 答案其實就是自己動手做
(下面不清楚可以自行參考 http://squirrelmail.org/docs/admin/admin-3.html#ss3.2 中的 Prepare SquirrelMail directories )

首先是直接下載
wget http://downloads.sourceforge.net/project/squirrelmail/stable/1.4.22/squirrelmail-webmail-1.4.22.tar.gz?r=http%3A%2F%2Fsquirrelmail.org%2Fdownload.php&ts=1354788341&use_mirror=nchc

接著解壓縮還有更名後搬到網頁目錄下
tar -zxf squirrelmail-webmail-1.4.22.tar.gz
mv squirrelmail-webmail /var/www/html

mkdir /var/squirrelmail-data
mkdir /var/squirrelmail-attachment
chown -R nobody /var/squirrelmail-attachment
chown -R nobody /var/squirrelmail-data
chmod 0730 -R /var/squirrelmail-data
chmod 0730 -R /var/squirrelmail-attachment/

接著就執行
 ./config/conf.pl

且看到這樣的畫面


SquirrelMail Configuration : Read: config_default.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages
D.  Set pre-defined settings for specific IMAP servers
C   Turn color on
S   Save data
Q   Quit
Command >>

到這邊我就不多說啦 ! 因為怎樣設定你看一下最上方的就可以搞定了 !

最後 ~ 就是請自己測一下這個網址吧

https://your.domain.name/squirrelmail/src/configtest.php

呼 ~ 總算一併搞定了啊 !

2012/12/09 更新如何透過 Postfix 做成 Mail Gateway ... (因為要預掃描郵件分析其附檔)

首先當然就是要把 DNS 的 MX 改一下設定 !

接著要做如上圖的設定 ... 而詳細的參數可以看鳥哥的 " 22.2.4 讓 Postfix 可監聽 Internet 來收發信件 " 好好的研究瞭解一下 !

基本上就是要讓信直接先跑到當 Gateway 的那台 Server 接著再 relay 到真正的 Mail Server 上

設定正確後可以看到如上的畫面 !!! 恭喜啦 ! 但這樣就大功告成了嗎 ?

不 .... 還有一步就是要去掃描 Mail 是否有附檔 .... 但我就不能說太詳細了 ! XDDD