詳解Linux下的postfix安裝
郵件系統(tǒng)簡介
郵件系統(tǒng)組成部分: MTA MSA ,MUA,MDA,MAA
1 MUA :是Mial User Agent 的簡稱 ,是郵件系統(tǒng)的客戶端程序,它提供了閱讀,發(fā)送和接受電子郵件的用戶接口,如:linux中的Mail ,Windowns中的Foxmail,Outlook 等
2 MSA :是Mail Submmission Agent的簡稱。是郵件提交代理,負責消息有MTA發(fā)送之前必須完成所有準備工作和錯誤檢測,MSA是在MUA和MTA之間插入了一個頭腦清醒的檢測員,對所有的主機名,從MUA 得到的頭信息等信息進行檢測
3 MTA:是Mail Transfer Agent 的簡稱,郵件轉發(fā)代理,負責郵件的存儲和轉發(fā);監(jiān)視用戶的代理請求,根據(jù)電子郵件的目標地址找出對應的電子郵件服務器,并將信件在服務器之間傳輸并且將接受到的郵件進行緩沖。Linux 下有sendmail .Postfix,qmail 等
4 MDA :是Mail Ddlivery Agent 的簡稱。郵件投遞代理,從MTA接受郵件并進行適當?shù)谋镜赝哆f,可以投遞一個本地用戶,一個郵件列表,一個文件或者是一個程序
5 MAA :是Mail Access Agent。郵件訪問代理,用于將用戶連接到系統(tǒng)郵件庫,使用POP或者Imap協(xié)議收取郵件。Linux 下常用的MAA有,Cyrus-IMAP,COURIER-IMAP等郵件中繼,當郵件的目的傳輸是一旦源地址和目的地址都不是本地系統(tǒng),那么本地系統(tǒng)就是郵件中繼站(即是中轉站)
注意:在安裝postfix或多或少遇到一些error,我在文檔
http://1413570.blog.51cto.com/1403570/780703
記錄了一部分
或許記錄的不完全,再遇到error時,可以多查找一些資料文件
第一:安裝cmake工具
安裝步驟一點點的來,先從LAMP平臺來安裝,先安裝mysql,我這是一臺新安裝的linux系統(tǒng),所以遇到的問題可能會比較多一點
因為mysql自5.5版本以后都是需要借助工具cmake,所以先從安裝cmake工具開始
解壓cmake的包,之后編譯安裝即可
[root@server250 cmake-2.8.4]# ./configure && make && make install
中間過程
[ 56%] Building C object Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_enum.o
[ 56%] Building C object Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_int.o
[ 56%] Building C object Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_ipv4.o
[ 57%] Building C object Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_num.o
[ 57%] Building C object Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_regex.o
Linking C static library libcmForm.a
第二安裝mysql
Ok,之后開始安裝mysql,先建立mysql的用戶名,組名
[root@server250 ~]# groupadd mysql
[root@server250 ~]# useradd -g mysql -s /sbin/nologin -M mysql
[root@server250 postfix]# tar zxvf mysql-5.5.19.tar.gz
[root@server250 mysql-5.5.19]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306
cp support-files/my-medium.cnf /etc/my.cnf
[root@server250 mysql]# chown -R mysql:mysql /usr/local/mysql/
[root@server250 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
Installing MySQL system tables...
OK
Filling help tables...
OK
[root@server250 ~]# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
[root@server250 ~]# ldconfig -v
[root@server250 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp:是否覆蓋“/etc/init.d/mysqld”? y
[root@server250 ~]# chmod 755 /etc/init.d/mysqld
[root@server250 ~]#
[root@server250 ~]#
[root@server250 ~]# service mysqld start
[root@server250 ~]# netstat -anpt | grep 3306
tcp 0 0 :::3306 :::* LISTEN 27783/mysqld
設置mysql的密碼
[root@server250 ~]# mysqladmin -u root password "biao_123"
第三安裝cyrus-sasl
[root@server250 postfix]# tar zxvf cyrus-sasl-2.1.22.tar.gz
[root@server250 cyrus-sasl-2.1.22]# ./configure --prefix=/usr/local/sasl2 --disable-gssapi --disable-anon --disable-digest --enable-plain --enable-login --enable-sql --with-mysql=/usr/local/mysql/ --with-mysql-includes=/usr/local/mysql/include/mysql/ --with-mysql-libs=/usr/local/mysql/lib --with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket
config.status: creating Makefile
config.status: creating saslauthd.h
config.status: executing depfiles commands
Configuration Complete. Type 'make' to build.
到這里就可以了
Make && make install
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../lib -I../sasldb -I../include -I/usr/local/mysql//include/mysql -Wall -W -g -O2 -MT sql.lo -MD -MP -MF .deps/sql.Tpo -c sql.c -fPIC -DPIC -o sql.lo
sql.c:65:19: error: mysql.h: No such file or directory
解決辦法:
在你的路徑:I/usr/local/mysql//include/mysql 下面看看有沒有 .h的文件,沒有的話,在mysql是上一層目錄中,有這些文件,拷貝一份到mysql下
[root@server250 include]# cp *.sh mysql
Make && make install
這個安裝好后,要關掉系統(tǒng)自帶的sasl2
mv /usr/lib/libsasl2.a /usr/lib/libsasl2.a.bak
mv /usr/lib/libsasl2.so.2.0.22 /usr/lib/libsasl2.so.2.0.22.OFF、
mv /usr/lib/sasl2 /usr/lib/sasl2.OFF
重新創(chuàng)建新編譯的sasl庫文件
[root@server250 ~]# ln -sv /usr/local/sasl2/lib/* /usr/lib/
創(chuàng)建指向“/usr/local/sasl2/lib/libsasl2.la”的符號鏈接“/usr/lib/libsasl2.la”
創(chuàng)建指向“/usr/local/sasl2/lib/libsasl2.so”的符號鏈接“/usr/lib/libsasl2.so”