很久之前就计划写一个Postfix在Linux平台上面的安装文档,把自己安装Postfix的过程总结一下,但由于工作的关系直到现在才动手。和个人的习惯有关,在安装过程中我使用了很多源代码,这对一个新手可能有些难度,但是我认为在Linux下面如何从源代码安装软件应当是每个系统管理都必须掌握的知识。我准备使用CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"作为gcc 3.4.4在i686 CPU上面的优化参数,你可以根据自己的实际情况进行修改。这个版本修正了上个版本中出现的一些错误,在此对hzqbbc对我的帮助致以最诚挚的谢意。

*************************************************************************************

1、安装操作系统

首先请准备好CentOS 4.2安装光盘的第一张和第二张,在“Installation Type"中选择“Custom”。在“Disk Partitioning Setup”时选择“Manually partition with Disk Druid”,因为我们要将邮件保存在“/home/mail”目录中,所以请为其保留足够的硬盘空间。在“Firewall Configuration”中选择“No firewall”,这样便于调试,你可以在邮件系统工作正常之后根据实际情况设置Firewall策略。在“Package Group Selection”中选择“Text-based Internet”和“Development Tools”两项。关于语言的选项你可以选择默认值,这样总的安装文件大小为1GB左右。安装完成后可以设置Crontab,让邮件服务器每天1点和网络中的时间服务器自动对时:

crontab -e

0 1 * * * /usr/bin/rdate -s time-b.timefreq.bldrdoc.gov

使用下面的命令增加一个普通用户“adduser wangmd”、“passwd wangmd”,在/etc/ssh/sshd_config文件中增加“DenyUsers root”禁止root用户从ssh登录,这是FreeBSD系统sshd的默认设置,也是一个系统管理员应当养成的好习惯。

更新系统内核、BerkeleyDB、openssl和zlib等软件。

从下面的URL下载系统内核的最新版本,并安装适合你所用CPU的版本:,你可以使用“rpm -aq |grep kernel”命令查找已经安装的内核rpm包。

从下面的URL下载db 4.3.29的源代码:

tar zvxf db-4.3.29.tar.gz

cd db-4.3.29

cd build_unix/

../dist/configure \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

增加“/usr/local/BerkeleyDB.4.3/lib”到你的“/etc/ld.so.conf”,并执行ldconfig命令。

从下面的URL下载zlib 1.2.3的源代码:

安装zlib,zlib将被安装在“/usr”目录下:

tar jvxf zlib-1.2.3.tar.bz2

cd zlib-1.2.3

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" \

./configure --prefix=/usr --shared

make

make test

make install

ln -s /usr/lib/libz.so.1 /usr/lib/libz.so.0

从下面的URL下载openssl 0.9.7i的源代码:

卸载系统自带的openssl 0.9.7a:

rpm -e --nodeps openssl-devel

rpm -e --nodeps openssl

安装openssl,openssl将被安装在“/usr”目录下:

tar zvxf openssl-0.9.7i.tar.gz

cd openssl-0.9.7i

./config --prefix=/usr --openssldir=/usr/share/ssl -fPIC threads shared

make

make test

make install

为了使系统自带的openssh、nslookup等依赖于openssl的程序能够正常工作,建立libcrypto.so.0.9.7和libssl.so.0.9.7到/lib目录的链接:

ln -s /usr/lib/libcrypto.so.0.9.7 /lib/libcrypto.so.4

ln -s /usr/lib/libssl.so.0.9.7 /lib/libssl.so.4

2、安装MySQL服务器

你可以根据服务器的CPU类型,下载适合你所用CPU和操作系统的MySQL发行包。

从下面的URL下载MySQL 4.1.16以tar.gz形式发布的二进制发行包:

增加MySQL运行所需要的用户和组:

groupadd mysql

useradd mysql -g mysql -c "MySQL user" -d /nonexistent -s /sbin/nologin

安装MySQL软件,MySQL将被安装到“/usr/local/mysql”目录下:

tar zvxf mysql-max-4.1.16-pc-linux-gnu-i686-glibc23.tar.gz

mv mysql-max-4.1.16-pc-linux-gnu-i686-glibc23 /usr/local/mysql

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql

chown -R root .

chown -R mysql data

chgrp -R mysql .

mkdir /var/lib/mysql

chown mysql:root /var/lib/mysql

chmod 755 /var/lib/mysql

cp support-files/my-medium.cnf /etc/my.cnf

修改“/etc/my.cnf”文件,取消“skip-networking”前面的注释,这样的话MySQL将不监听TCP/IP端口,可以避免一些安全问题。修改client和mysqld部分的“socket = /tmp/mysql.sock”为“socket = /var/lib/mysql/mysql.sock”

注:以tar.gz形式发布的MySQL默认的socket位置在“/tmp/mysql.sock”,而以rpm形式发布的MySQL默认的socket位置在“/var/lib/mysql/mysql.sock”,你可以通过my.cnf文件设置MySQL服务器的socket位置。

配置MySQL服务开机自动运行:

cp support-files/mysql.server /etc/rc.d/init.d/mysql

chmod +x /etc/rc.d/init.d/mysql

chkconfig --add mysql

设置MySQL的默认字符集为GB2312,修改/etc/rc.d/init.d/mysql文件,将第199行

从“$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &”

修改为“$bindir/mysqld_safe --datadir=$datadir --default-character-set=gb2312 --pid-file=$pid_file >/dev/null 2>&1 &”

修改“/etc/profile”文件,将“/usr/local/mysql/bin”加到PATH变量中,退出重新登陆系统。

注:①为了安全请立即修改MySQL管理员的密码。

②以tar.gz形式发布的MySQL默认的socket位置在“/tmp/mysql.sock”,而以rpm形式发布的MySQL默认的socket位置在“/var/lib/mysql/mysql.sock”,你可以通过my.cnf文件设置MySQL服务器的socket位置。

使用rpm方式安装mysql的头文件和共享库:

rpm -ivh --nodeps MySQL-shared-standard-4.1.16-0.rhel4.i386.rpm

rpm -ivh MySQL-devel-standard-4.1.16-0.rhel4.i386.rpm

3、安装Web服务器

从下面的URL下载Apache 2.0.55的源代码:

增加Apache运行所需的用户和组:

groupadd httpd

useradd httpd -g httpd -c "Apache user" -d /nonexistent -s /sbin/nologin

安装Apache软件,Apache将被安装在“/usr/local/httpd”目录下:

tar jvxf httpd-2.0.55.tar.bz2

cd httpd-2.0.55

./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --with-mpm=worker --enable-rewrite --enable-suexec --with-suexec-caller=httpd \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

修改apache的配置文件(/usr/local/httpd/conf/httpd.conf),配置apache的默认语言、运行用户等参数:

DefaultLanguage zh_CN

User httpd

Group httpd

StartServers     10

MaxClients       1024

MinSpareThreads   100

MaxSpareThreads   800

ThreadsPerChild   64

MaxRequestsPerChild 0

在“/etc/rc.local”文件中增加“/usr/local/httpd/bin/apachectl start”,设置Apache开机自动运行。

4、安装PHP(Extmail和Extman不需要PHP的支持,如果你没有需要使用php的程序可以跳过这步)

从下面的URL下载PHP 4.4.2的源代码:

安装PHP,PHP将被安装在“/usr/local/php”目录下,PHP的配置文件(php.ini)放在“/usr/local/php/etc”目录中:

tar jvxf php-4.4.2.tar.bz2

cd php-4.4.2

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" \

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --enable-track-vars --with-config-file-path=/usr/local/php/etc \

--with-mysql=/usr --enable-force-cgi-redirect --enable-ftp --with-openssl --with-gettext --with-zlib

make

make install

cp php.ini-dist /usr/local/php/etc/php.ini

修改Apache的配置,增加对PHP的支持:

增加“AddType application/x-httpd-php .php .phtml”

修改“DirectoryIndex index.html index.html.var”为“DirectoryIndex index.html index.htm index.php index.cgi”

验证PHP是否安装成功:

echo ' phpinfo(); ?>' >/usr/local/httpd/htdocs/info.php

重新启动Apache,在浏览器的地址栏中输入“

卸载系统自带的SASL:

rpm -e cyrus-sasl --nodeps

rpm -e cyrus-sasl-plain --nodeps

rpm -e cyrus-sasl-devel --nodeps

rpm -e cyrus-sasl-md5 --nodeps

安装SASLv2 library:

tar zvxf cyrus-sasl-2.1.21.tar.gz

cd cyrus-sasl-2.1.21

export LDFLAGS="-lpthread"

./configure --with-dblib=berkeley --with-bdb-libdir=/usr/local/BerkeleyDB.4.3/lib \

--with-bdb-incdir=/usr/local/BerkeleyDB.4.3/include --with-openssl-dir \

--enable-anon --enable-plain --enable-login --disable-krb4 --disable-otp --disable-cram \

--disable-digest --disable-gssapi --with-pwcheck=no --with-pam --with-authdaemond \

--with-plugindir=/usr/local/lib/sasl2 --with-saslauthd=/var/run/saslauthd \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

rm -rf /usr/lib/sasl

rm -rf /usr/lib/sasl2

ln -s /usr/local/lib/sasl2 /usr/lib/

增加“/usr/local/lib”到你的“/etc/ld.so.conf”,并执行ldconfig命令。

6、安装Postfix

从下面的URL下载Postfix 2.2.8的源代码:

从下面的URL下载Postfix 2.2.8的VDA补丁程序:

chkconfig --level 2345 sendmail off

增加Postfix运行所需要的用户和组,并建立“/home/mail”目录作为存储邮件的地方:

groupadd postfix

groupadd postdrop

useradd postfix -g postfix -c "Postfix user" -d /nonexistent -s /sbin/nologin

mkdir /home/mail

chown postfix:postfix /home/mail

安装Postfix:

gzip -d postfix-2.2.8-vda.patch.gz

tar zvxf postfix-2.2.8.tar.gz

cd postfix-2.2.8

patch -p1 < ../postfix-2.2.8-vda.patch

make -f Makefile.init makefiles \ OPT='-march=pentium4 -O2 -pipe -fomit-frame-pointer' \

'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_TLS' \

'AUXLIBS=-L/usr/lib -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -lssl -lcrypto'

make

make install

注:“make install”命令后的所有问题都直接敲回车键即可。

mv /etc/aliases /etc/aliases.old

ln -s /etc/postfix/aliases /etc/aliases

echo 'root:'>>/etc/postfix/aliases

/usr/bin/newaliases

注:因为Postfix不允许直接发邮件给root用户,所以你需要为root用户建立一个别名。

建立smtpd用户认证的配置文件:

vi /usr/lib/sasl2/smtpd.conf

pwcheck_method: authdaemond

log_level: 3

mech_list: plain login

authdaemond_path:/var/spool/authdaemon/socket

使用postconf -n简化main.cf,这样的好处是main.cf比较短小,不容易造成同一个配置出现两次的问题:

cd /etc/postfix

postconf -n > main2.cf

mv main.cf main.cf.old

mv main2.cf main.cf

修改Postfix的配置文件,#号之后是说明文字:

vi /etc/postfix/main.cf

myhostname = mail.example.com         # mail.example.com是安装Postfix软件的主机名

mydomain = example.com             # example.com是安装Postfix软件的主机名中的域名部分

myorigin = $mydomain

mydestination =

alias_maps = hash:/etc/aliases

home_mailbox = Maildir/             # 使用Maildir作为邮件的存储格式

# Add following line in file's finality

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_mailbox_base = /home/mail

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_mailbox_limit = 102400000

virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_minimum_uid = 502

virtual_uid_maps = static:502

virtual_gid_maps = static:502

virtual_transport = virtual

# Additional for quota support

virtual_create_maildirsize = yes

virtual_mailbox_extended = yes

virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf

virtual_mailbox_limit_override = yes

virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.

virtual_overquota_bounce = yes

virtual_trash_count=yes

virtual_trash_name=.Trash

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

reject_non_fqdn_hostname,

reject_non_fqdn_sender,

reject_non_fqdn_recipient,

reject_unauth_destination,

reject_unauth_pipelining,

reject_invalid_hostname,

reject_rbl_client opm.blitzed.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client bl.spamcop.net,

reject_rbl_client sbl-xbl.spamhaus.org

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options = noanonymous

注:①“virtual_gid_maps”和“virtual_uid_maps”是postfix用户的gid和uid,“virtual_minimum_uid”应当≤“virtual_uid_maps”,“virtual_mailbox_limit”是每个邮箱的大小。

②opm.blitzed.org、list.dsbl.org、bl.spamcop.net、sbl-xbl.spamhaus.org是经常使用的几个反垃圾邮件列表,如果你使用上面的设置可能无法收到sina、sohu、163等几个国内主要ISP的邮件。你也可以使用中国反垃圾邮件联盟的反垃圾邮件列表,这样你就能收到国内几个主要ISP的邮件,同时一些垃圾邮件也可能光临你的邮件服务器^_^。

③Postfix使用MySQL存储用户信息的配置文件已经包含在extman的发行包中,等安装extman的时候copy到/etc/postfix目录下即可。

设置Postfix开机自动运行,在/etc/rc.local中增加“/usr/sbin/postfix start&”。

注:①系统已经打开了Postfix的TLS支持,如果你需要这项功能可以参考Postfix发行包中的TLS_README文档进行配置。

②你可以使用一个叫pflogsumm.pl的perl脚本对postfix的日志进行分析,详细的情况见:。

你可能还对以下内容感兴趣:linux系统安装,linux操作系统安装,如何安装linux系统,linux系统安装方法,linux系统安装教程,linux安装系统下载,linux系统的安装,硬盘安装linux系统,linux系统安装指南,linux系统安装步骤,linux系统安装说明,linux postfix,linux 邮件系统,postfix 安装,postfix 发送邮件,操作系统安装不上,系统安装不上,xp系统安装不上,在u盘上安装系统,从硬盘上安装系统。

linux 安装邮件系统,在Linux平台上安装基于Postfix、Courier-imap、Extmail的邮件系统 V 0...相关推荐

  1. amd平台运行linux,在amd64平台上安装linux的经历

    在amd64平台上安装linux的经历 (2011-08-29 01:36:25) 标签: 杂谈 在amd64平台上安装linux的经历在amd64平台上安装linux的经历 硬件:Althon 64 ...

  2. 在linux上装git教程,教你玩转Git-Linux 平台上安装

    导读 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.Gi ...

  3. LINUX Ubuntu 平台上安装PGI的pgf90编译器

    LINUX Ubuntu 平台上安装PGI的pgf90编译器 在编译代码时提示找不到pgf90的指令,网上查了一下,发现可能是系统里没有安装pgf90的原因,找到了joesgod的文章https:// ...

  4. linux安装python_如何在 Windows 上安装 Python | Linux 中国

    安装 Python,启动 IDE,然后你就可以在 Windows 系统下进行编程了. 来源:https://linux.cn/article-12335-1.html 作者:Seth Kenlon 译 ...

  5. 如何在Linux(CentOS, Debian, Fedora和Ubuntu)上安装MyCLI

    介绍 MyCLI是MySQL和MariaDB的命令行客户端,允许您自动完成,并帮助您的SQL命令语法. MyCLI特性 在数据库中键入SQL关键字以及表.视图和列时自动完成. 输入时的语法高亮显示. ...

  6. 如何在安装了Windows操作系统的电脑上安装Linux操作系统

    [原创]如何在安装了Windows操作系统的电脑上安装Linux操作系统 一.不得不知道的一件事 相信中国大多数个人用的电脑在买回来时已经 安装了Windows,并且大家习惯了用Windows,而且有 ...

  7. 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动

    在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...

  8. 在飞腾cpu FT2000/4平台上安装centOS 7

    如何在飞腾平台上安装centos系统 本文主要目的是指导客户,通过USB安装centos系统至飞腾平台上 硬件平台:ft2000/4 demo板 32G以上U盘 TTL串口 软件平台:uefi固件 c ...

  9. 在Windows平台上安装Dubbox框架

    在Windows平台上安装Dubbox框架 一.分布式系统概述 分布式处理方式越来越受到业界的青睐--计算机系统正在经历一场前所未有的从集中式向分布式架构的变革.分布式系统是一个硬件或软件组件分布在不 ...

最新文章

  1. swift_022(Swift 的下标脚本)
  2. wxWidgets学习 (2) -- 事件处理
  3. UICollectionView实现的图片的多选效果(本人已封装好,简单操作)
  4. gulp + browsersync实现页面自动刷新
  5. Flex 宋体、黑体、楷体、仿宋字体样式
  6. java诺基亚nba,HMD 签约NBA 新秀劳里·马尔卡宁 为诺基亚手机品牌大使
  7. 步步为营VS 2008 + .NET 3.5(2) - VS 2008新特性之JavaScript Intellisense and Debugging
  8. eclipse maven配置_Maven系列教材 (十一)- 使用Eclipse导入一个Maven风格的SSM项目
  9. php arcsin函数,三角函数计算器
  10. 【WPA三维路径规划】基于matlab狼群算法无人机三维路径规划【含Matlab源码 167期】
  11. 大数据前端个人提升与团队规划
  12. 网线水晶头RJ45制作方法
  13. “女人~,你在玩火”一个有磁性的声音说道——常用自动化测试工具
  14. 计算机按键去抖动的方式,机械按键如何去处理按键抖动的问题
  15. java的jdk安装教程附百度网盘链接环境配置遇到的各种问题版本选择
  16. 安装笔记本内存条及认识内存插槽
  17. 玩玩破解 01——入门
  18. 0基础光缆/光纤熔接教程
  19. 【技术】python 爬虫一招解决SSl 报错SSLError
  20. 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法

热门文章

  1. 电脑文件打不开怎么解决
  2. 您可以免费使用高质量照片的网站
  3. Java判断单链表是否有环的两种实现方法
  4. 马云说的到底对不对,京东到底行不行?
  5. 案例解读 | 重蹈美国制造业空心化老路,波音数字化出了啥问题?
  6. Java数据结构:有序优先队列
  7. 库克暗示观念差异阻碍苹果和Facebook合作
  8. 怎么用键盘快捷键将光标定位到浏览器地址栏
  9. 数据结构通讯录查询系统
  10. 「MoreThanJava」Java 发展史及起航新世界