在 Slackware 下全部从源代码安装邮件服务器:二、软件包安装 Mon, Jul 20. 2009
1、安装 MySQL
- 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
- tar -zxvf httpd-2.2.11.tar.gz
- cd httpd-2.2.11
2.1、安装 APR
- cd srclib/apr
- ./configure
- make; make install
2.2、安装 APR-Util
- cd ../apr-util/
- ./configure --with-apr=/usr/
- make; make install
2.3、安装 Apache:
- 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
- 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
- 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目录。
需要指定的目录如下,默认的直接回车。
- 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]
修改权限:
- chmod a+x+g+s /home/postfix/sbin/postqueue
5、安装 Courier Authlib
说明:Courier 系列软件包的习惯都是用非 root 身份的用户 configure、make,然后再用 root 用户 make install。上面创建的 courier 用户就是这里起作用的。
注意:因为我们是非标准目录安装,所以在这里特别要增加 --without-stdheaderdir 选项,否则后面的组件无法找到 courier-authlib。
- # 出于让非 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
注意:设置 COURIERAUTHCONFIG 环境变量,否则因为是非标准目录安装,找不到 courier-authlib 的路径,下面安装 Courier Maildrop 时也一样。
- # 出于让非 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 并且替换。
- # 出于让非 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 环境:
- 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),执行如下命令:- cd ~/.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 所用到的目录并设置权限:
- 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
设置垃圾邮件存放的目录并且设置权限:
- mkdir /home/mailbox/virusmails
- chmod 750 /home/mailbox/virusmails/
- chown amavis /home/mailbox/virusmails/
安装 Amavisd-new,拷贝文件到对应的目录:
- 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
- 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
< 在 Slackware 下全部从源代码安装邮件服务器:一、安装前的准备 | 在 Slackware 下全部从源代码安装邮件服务器:三、系统配置 >
