linux apache php mysql qmail vpopmail qmaliadmin
單位需要,我用了五一休息的時間折騰這個玩意對原理不太明白,就說下我安裝的順序,自己也做個記錄
不過可能我的補丁打的不全。真正做伺服器使用謹慎。
1 安裝linux ,這個不用說了,您就自己弄吧。
2 安裝mysql5 , 這個拒絕經驗主義,一定要按照規範來,要不你應該會有麻煩,我就有麻煩了。
安裝順序
shell> groupadd mysql 建立組
shell> useradd -g mysql mysql 建立使用者
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf - 解壓
shell> cd mysql-VERSION 進入目錄
shell> ./configure --prefix=/usr/local/mysql 先行編譯 參數自己加
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf 配置mysql的設定檔
shell> cd /usr/local/mysql 許可權修改
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql 初始資料庫
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql & 後台啟動
如果出現問題,一般都是許可權發生的問題
3,安裝apache
進入目錄
./configure --prefix=/usr/local/apache --enable-shared=max --enable-module=rewrite --enable-module=so
make
make install
啟動
cd /usr/local/apache/bin/apachectl start
4,安裝php
下載解壓安裝
./configure
make
make install
5,整合 php跟apache
vi /usr/local/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
好了現在 lamp安裝完成了
不管什麼版本,安裝是基本一樣的
下面進去mail伺服器的安裝
可以使用多種組合,不過偶還是採取比較普遍的那種方式 qmail
安裝軟體,不要問為什麼,因為看網上就是那裡安裝的
6,安裝daemontools
http://cr.yp.to/daemontools.html
tar -zxvf daemontools-0.76.tar.gz
解壓
cd admin/daemontools-0.76
補丁
patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
安裝
package/install
# 驗證daemontools已經正常運行:
sleep 5
ps ax | grep svscan
7,安裝ucspi-tcp
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.errno.patch //我沒成功,直接條過
make
make setup check
8,qmail安裝
#建立所需要的使用者
mkdir /var/qmail
groupadd nofiles
useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
groupadd qmail
useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
useradd qmails -g qmail -d /var/qmail -s /sbin/nologin
#順便添加vpopmail使用者
groupadd vchkpw -g 89
useradd vpopmail -u 89 -g vchkpw
#準備安裝qmail
cd /home/pkg
tar -xzf toaster-scripts-0.7.tar.gz
cd netqmail-1.05/netqmail-1.05/
# 搜尋函數straynewline中的451改為553
vi qmail-smtpd.c
# 當你的伺服器收到無效格式的郵件時,會發送:"I am not going to accept that message at the moment,you can try again later",對方伺服器收到後,幾秒鐘後又會發送同樣的郵件給你,造成多次的重複。
# 改為553後,你的伺服器將直接發送:"I am not going to accept that message,don't try sending it again.",告訴對方的伺服器不要再發這封無效的信件。
# RedHat/Fedora使用者可能需要為TLS補丁連結一個include檔案
# 輸入如下命令:
ln -s /usr/kerberos/include/com_err.h /usr/include/
# 刪除sendmail的連結
rm -rf /usr/sbin/sendmail
#qmail編譯安裝
make
make setup check
#註:qmail的補丁在vpopmail安裝之後再打。
# 用你自己的主機名稱代替下面的mail.domain.com
./config-fast mail.domain.com
#設定管理員的郵箱地址。
#發往root/postmaster/mailer-daemon地址的郵件將會由定義的管理員郵箱接收。
#將如下的“admin@domain.com"替換成你的管理員郵箱。
cd /var/qmail/alias
echo "admin@domain.com" >; .qmail-postmaster
echo "admin@domain.com" >; .qmail-mailer-daemon
echo "admin@domain.com" >; .qmail-root
chmod 644 /var/qmail/alias/.qmail*
#開啟SPF設定
echo ./Maildir/ >;/var/qmail/control/defaultdelivery
echo 3 >; /var/qmail/control/spfbehavior
#添加qmail的協助手冊
echo MANPATH /var/qmail/man >;>; /etc/man.config
#為qmail服務建立監控目錄和記錄檔:
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
cp /home/pkg/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run
cp /home/pkg/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /home/pkg/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /home/pkg/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /home/pkg/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /home/pkg/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /home/pkg/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /home/pkg/toaster-scripts-0.7/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 >; /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown -R qmaill /var/log/qmail
#啟動指令碼:
cd /home/pkg
cp toaster-scripts-0.7/rc /var/qmail/rc
chmod 755 /var/qmail/rc
cp toaster-scripts-0.7/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
rm -rf /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# 用daemontools來啟動qmail-send和qmail-smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
#命令:
# 啟動,停止,重啟,查看隊列等
qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help
# 檢查服務
netstat -an | grep 25
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
#日誌:
/var/log/maillog
/var/log/qmail/current
/var/log/qmail/pop3d/current
/var/log/qmail/pop3ds/current
/var/log/qmail/smtpd/current
網上找的,安裝順利完成
9,安裝vpopmail
http://vpopmail.sf.net
建議安裝
vpopmail-5.4.17.tar.gz
vpopmail-5.4.18.tar.gz 有點小的bug 不適合伺服器使用
解壓進入
./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords
這裡就有問題了,因為我們是自己編譯的mysql
所以 --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql 目錄要修改
--enable-incdir=/usr/local/mysql/include/mysql --enable-libdir=/usr/local/mysql/lib/mysql
如果編譯不過,那就是這裡的問題 主要是make不過
make
make install-strip
# 添加域,紅色部份前面是網域名稱,後面是管理員(postmaster)密碼
vadddomain domain.com xukixu
# 添加使用者,紅色部份為註解,不用輸入
vadduser -q 10485760S(郵箱大小) xukixu@domain.com(郵箱帳號) 1234(密碼)
vmoduser -c 許靖(郵箱描述) xukixu@domain.com
# 設定郵箱容量達到90%的警告資訊
vi /home/vpopmail/domains/.quotawarn.msg
From: 郵箱管理員
Reply-To: postmaster@domain.com
To: 信箱使用者
Subject: 郵箱空間警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的郵箱空間已經達到90%.如果想繼續使用,請刪除一些信件.
如果需要協助,請聯絡郵箱管理員:
Email : postmaster@domain.com
# 設定郵箱已滿的警告資訊
echo "郵件被拒絕,使用者的郵箱空間已滿." >; /home/vpopmail/domains/.over-quota.msg
#啟動指令碼:
cp /home/pkg/toaster-scripts-0.7/vpopmailctl /var/qmail/bin
ln -s /var/qmail/bin/vpopmailctl /usr/bin
chmod 755 /var/qmail/bin/vpopmailctl
使用網上的
10,安裝Autorespond
tar -xvzf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make
make install
11,安裝Ezmlm
tar -xvzf ezmlm-0.53.tar.gz
tar -xvzf ezmlm-idx-0.42.tar.gz
cp -rf ezmlm-idx-0.42/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
chmod u+x makelang //這步現在的版本應該是不需要了,我沒成功
make
make man
make setup
12,安裝qmailadmin
tar -xvzf qmailadmin-1.2.9.tar.gz
cd qmailadmin-1.2.9
./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --disable-ezmlm-mysql --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill
make
make install-strip
cd /usr/local/share/qmailadmin/lang
mv en en.bak
cp zh-cn en
到這裡伺服器就算安裝完了,還少一個webmail的介面,這個就看您自己的愛好了,我到現在還沒找到一個合適的。
可能您跟我有用樣的一個想法,伺服器我們是安裝完了,但是使用者註冊,我們怎麼同步啊?
不能每添加一個使用者,我們就手動添加一次吧,我們也沒那精力啊,沒錯,我有也有這樣的想法
我分析了下vpopmail的表,我們可以通過程式推送使用者到這張表裡,就完成了,這個表裡只儲存了,基本的使用者資料,特別少。如果要整合出其他的功能,估計還要進行其他的解決方案了。