在 Slackware 下全部从源代码安装邮件服务器:二、软件包安装
1、安装 MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 | tar -zxvf mysql-5.1.31.tar.gz cd mysql-5.1.31 # 安装到 /home/mysql目录下,加入对 UTF-8 的支持,使用 mysql user,支持所有的字符和和插件 ./configure --prefix=/home/mysql --with-charset=utf8 --with-extra-charsets=all --with-mysqld-user=mysql --with-plugins=all make; make install # 变更 /home/mysql 的属主 chown -R mysql.mysql /home/mysql # 运行 MySQL 的初始化脚本 ./scripts/mysql_install_db --user=mysql ln -s /home/mysql/share/mysql/mysql.server /usr/sbin ln -s /home/mysql/bin/mysql /usr/sbin/ echo "/home/mysql/lib/mysql" >> /etc/ld.so.conf ldconfig |
2、安装 Apache
1 2 | tar -zxvf httpd-2.2.11.tar.gz cd httpd-2.2.11 |
2.1、安装 APR
1 2 3 | cd srclib/apr ./configure make; make install |
2.2、安装 APR-Util
1 2 3 | cd ../apr-util/ ./configure --with-apr=/usr/ make; make install |
2.3、安装 Apache:
1 2 3 4 5 6 | cd ../../ # 安装到 /home/httpd 目录下,支持动态链接路,支持 rewrite,支持 SSL,支持 DAV,支持代理 ./configure --prefix=/home/httpd --enable-so --enable-auth-digest --enable-rewrite --enable-ssl --enable-dav --enable-dav-fs --enable-proxy --enable-proxy-ftp --enable-proxy-http --enable-proxy-balancer --with-apr=/usr/ --with-apr-util=/usr/ make; make install ln -s /home/httpd/bin/apachectl /usr/sbin/ ln -s /home/httpd/bin/htpasswd /usr/sbin/ |
3、安装 Cyrus SASL
1 2 3 4 5 6 7 8 9 10 11 | tar -zxvf cyrus-sasl-2.1.23.tar.gz cd cyrus-sasl-2.1.23 # 安装到 /home/cyrus-sasl 目录下 ./configure --prefix=/home/cyrus-sasl --enable-anon --enable-plain --enable-login --enable-sql --disable-krb4 --disable-otp --disable-cram --disable-digest --with-mysql=/home/mysql/ --without-pam --without-saslauthd --without-pwcheck --with-dblib=berkeley --with-bdb-libdir --with-bdb-incdir --with-openssl --with-plugindir=/home/cyrus-sasl/lib/sasl2 make; make install # 创建符号链接,原因见 http://www.postfix.org/SASL_README.html#build_sasl ln -s /home/cyrus-sasl/lib/sasl2/ /usr/lib/sasl2 echo "/home/cyrus-sasl/lib" >> /etc/ld.so.conf ldconfig # 很多弱智软件都找不到路径或者能找到但是配置很麻烦,例如 courier-authlib 和 PHP,于是直接做个符号链接 ln -s /home/cyrus-sasl/lib/libsasl2.la /usr/lib/libsasl2.la |
4、安装 Postfix
1 2 3 4 | tar -zxvf postfix-2.6.2.tar.gz cd postfix-2.6.2 make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/home/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/home/cyrus-sasl/include/sasl -DUSE_TLS' 'AUXLIBS=-L/home/mysql/lib/mysql -lmysqlclient -lz -lm -ldb -L/home/cyrus-sasl/lib -lsasl2 -lssl -lcrypto' make install |
make install 需要你指定路径,根据我的安装习惯,直接安装到 /home/postfix 下面,但是 etc 目录如果指定到 /home/postfix/etc,会出现很多错误,虽然能够解决,但是太麻烦了,所以 etc 例外,安装到默认的 /etc/postfix目录。
需要指定的目录如下,默认的直接回车。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | install_root: [/] tempdir: [/root/old/pkg/postfix-2.6.2] /tmp config_directory: [/etc/postfix] command_directory: [/usr/sbin] /home/postfix/sbin daemon_directory: [/usr/libexec/postfix] /home/postfix/libexec data_directory: [/var/lib/postfix] /home/postfix/var html_directory: [no] /home/postfix/html mail_owner: [postfix] mailq_path: [/usr/bin/mailq] /home/postfix/bin/mailq manpage_directory: [/usr/local/man] /home/postfix/man newaliases_path: [/usr/bin/newaliases] /home/postfix/bin/newaliases queue_directory: [/var/spool/postfix] /home/postfix/spool readme_directory: [no] /home/postfix/readme sendmail_path: [/usr/sbin/sendmail] /home/postfix/sbin/sendmail setgid_group: [postdrop] |
修改权限:
1 | chmod a+x+g+s /home/postfix/sbin/postqueue |
5、安装 Courier Authlib
说明:Courier 系列软件包的习惯都是用非 root 身份的用户 configure、make,然后再用 root 用户 make install。上面创建的 courier 用户就是这里起作用的。
注意:因为我们是非标准目录安装,所以在这里特别要增加 --without-stdheaderdir 选项,否则后面的组件无法找到 courier-authlib。
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 出于让非 root 用户访问的权限问题,所以解压缩到 /tmp 目录下 tar -jxvf courier-authlib-0.62.2.tar.bz2 -C /tmp/ cd /tmp/courier-authlib-0.62.2/ su courier # 下面的 configure 和 make 都是以 courier 用户的身份执行 ./configure --prefix=/home/courier/authlib --with-authmysql=yes --with-mailuser=vmail --with-mailgroup=vmail --with-mysql-libs=/home/mysql/lib/mysql --with-mysql-includes=/home/mysql/include/mysql/ --without-stdheaderdir make exit # 切换到 root 用户 make install make install make install-configure # 修改权限 chmod +x /home/courier/authlib/var/spool/authdaemon |
6、安装 Courier IMAP server
注意:设置
1 | COURIERAUTHCONFIG |
环境变量,否则因为是非标准目录安装,找不到 courier-authlib 的路径,下面安装 Courier Maildrop 时也一样。
1 2 3 4 5 6 7 8 9 10 11 12 | # 出于让非 root 用户访问的权限问题,所以解压缩到 /tmp 目录下 tar -jxvf courier-imap-4.5.0.tar.bz2 -C /tmp/ cd /tmp/courier-imap-4.5.0/ su courier # 下面的 configure 和 make 都是以 courier 用户的身份执行 export COURIERAUTHCONFIG=/home/courier/authlib/bin/courierauthconfig ./configure --prefix=/home/courier/imap --with-authmysql=yes --with-mailuser=vmail --with-mailgroup=vmail --with-mysql-libs=/home/mysql/lib/mysql --with-mysql-includes=/home/mysql/include/mysql/ --enable-workarounds-for-imap-client-bugs --with-authchangepwdir --enable-unicode --with-trashquota make exit # 切换到 root 用户 make install make install-strip make install-configure |
7、安装 Courier Maildrop
注意:下面 configure 命令参数里面的 --enable-maildrop-uid=2002 --enable-maildrop-gid=202 中的 2002 和 202 分别对应我们最开始添加的 vmail:vmail 的 UID 和 GID。如果你自己用其它方式增加的用户,则从 /etc/passwd 中找到对应的 UID/GID 并且替换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 出于让非 root 用户访问的权限问题,所以解压缩到 /tmp 目录下 tar -jxvf maildrop-2.1.0.tar.bz2 -C /tmp/ cd /tmp/maildrop-2.1.0/ su courier # 下面的 configure 和 make 都是以 courier 用户的身份执行 export COURIERAUTHCONFIG='/home/courier/authlib/bin/courierauthconfig' # 设置编译时用到的类库 export CPPFLAGS='-I/home/mysql/include/mysql/ -I/home/courier/authlib/include' export LDFLAGS="-L/home/mysql/lib/mysql/ -L/home/courier/authlib/lib/courier-authlib/" ./configure --prefix=/home/courier/maildrop --enable-sendmail=/home/postfix/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=2002 --enable-maildrop-gid=202 --with-trashquota --with-dirsync make exit # 切换到 root 用户 make install make install |
8、安装 Spamassassin
执行以下指令进入 Perl CPAN 环境:
1 | perl -MCPAN -e shell |
依次安装如下模块:
- YAML
- Digest::SHA1
- LWP
- Digest::BubbleBabble
- Net::DNS
- HTTP::Date
- IO::Zlib
- MIME::Base64
- DB_File
- Mail::SPF
- IP::Country::Fast
- Net::Ident
- IO::Socket::INET6
- IO::Socket::SSL
- Compress::Zlib
- Time::HiRes
- Mail::DKIM
- Mail::DomainKeys
- DBI
- DBD::mysql
- Encode::Detect
- Apache::Test
- Mail::SpamAssassin
说明:
- 安装
Net::DNS的时候,会询问是否进行测试,推荐选择 No。 -
在
CPAN里安装DBD::mysql的时候,因为我们不是在标准路径下安装,所以会提示找不到mysql_config错误。解决方法:返回 Shell(BASH),执行如下命令:1
2
3
4cd ~/.cpan/build/DBD-mysql-4.012-*
perl Makefile.PL --mysql_config=/home/mysql/bin/mysql_config
make
make install - 安装
Apache::Test的时候,会询问你httpd和apxs的安装位置,对应输入/home/httpd/bin/httpd和/home/httpd/bin/apxs。
9、安装 Amavisd-new
同上,进入 CPAN 界面,以此安装如下模块:
- Archive::Tar
- Archive::Zip
- Convert::UUlib
- Convert::BinHex
- Mail::Internet
- Net::Server
- Net::SMTP
- Digest::MD5
- IO::Stringy
- Unix::Syslog
- BerkeleyDB
- MIME::Tools
- Convert::TNEF
准备安装用到的环境,创建 Amavisd-new 所用到的目录并设置权限:
1 2 3 4 5 6 | mkdir /home/amavis chmod 750 /home/amavis mkdir /home/amavis/tmp/ mkdir /home/amavis/db/ mkdir /home/amavis/sbin/ chown -R amavis:amavis /home/amavis |
设置垃圾邮件存放的目录并且设置权限:
1 2 3 | mkdir /home/mailbox/virusmails chmod 750 /home/mailbox/virusmails/ chown amavis /home/mailbox/virusmails/ |
安装 Amavisd-new,拷贝文件到对应的目录:
1 2 3 4 5 6 7 8 | tar -zvxf amavisd-new-2.6.4.tar.gz cd amavisd-new-2.6.4 cp amavisd /home/amavis/sbin/ chown root /home/amavis/sbin/amavisd chmod 755 /home/amavis/sbin/amavisd cp amavisd.conf /etc chown root /etc/amavisd.conf chmod 644 /etc/amavisd.conf |
10、安装 Clam AntiVirus
1 2 3 4 5 6 7 | tar -zxvf clamav-0.95.2.tar.gz cd clamav-0.95.2 ./configure --prefix=/home/clamav make make install mkdir /home/clamav/var chown clamav:clamav /home/clamav/ -R |