linux 安装邮件系统,在Linux平台上安装基于Postfix、Courier-imap、Extmail的邮件系统 V 0...
很久之前就计划写一个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...相关推荐
- amd平台运行linux,在amd64平台上安装linux的经历
在amd64平台上安装linux的经历 (2011-08-29 01:36:25) 标签: 杂谈 在amd64平台上安装linux的经历在amd64平台上安装linux的经历 硬件:Althon 64 ...
- 在linux上装git教程,教你玩转Git-Linux 平台上安装
导读 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.Gi ...
- LINUX Ubuntu 平台上安装PGI的pgf90编译器
LINUX Ubuntu 平台上安装PGI的pgf90编译器 在编译代码时提示找不到pgf90的指令,网上查了一下,发现可能是系统里没有安装pgf90的原因,找到了joesgod的文章https:// ...
- linux安装python_如何在 Windows 上安装 Python | Linux 中国
安装 Python,启动 IDE,然后你就可以在 Windows 系统下进行编程了. 来源:https://linux.cn/article-12335-1.html 作者:Seth Kenlon 译 ...
- 如何在Linux(CentOS, Debian, Fedora和Ubuntu)上安装MyCLI
介绍 MyCLI是MySQL和MariaDB的命令行客户端,允许您自动完成,并帮助您的SQL命令语法. MyCLI特性 在数据库中键入SQL关键字以及表.视图和列时自动完成. 输入时的语法高亮显示. ...
- 如何在安装了Windows操作系统的电脑上安装Linux操作系统
[原创]如何在安装了Windows操作系统的电脑上安装Linux操作系统 一.不得不知道的一件事 相信中国大多数个人用的电脑在买回来时已经 安装了Windows,并且大家习惯了用Windows,而且有 ...
- 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动
在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...
- 在飞腾cpu FT2000/4平台上安装centOS 7
如何在飞腾平台上安装centos系统 本文主要目的是指导客户,通过USB安装centos系统至飞腾平台上 硬件平台:ft2000/4 demo板 32G以上U盘 TTL串口 软件平台:uefi固件 c ...
- 在Windows平台上安装Dubbox框架
在Windows平台上安装Dubbox框架 一.分布式系统概述 分布式处理方式越来越受到业界的青睐--计算机系统正在经历一场前所未有的从集中式向分布式架构的变革.分布式系统是一个硬件或软件组件分布在不 ...
最新文章
- swift_022(Swift 的下标脚本)
- wxWidgets学习 (2) -- 事件处理
- UICollectionView实现的图片的多选效果(本人已封装好,简单操作)
- gulp + browsersync实现页面自动刷新
- Flex 宋体、黑体、楷体、仿宋字体样式
- java诺基亚nba,HMD 签约NBA 新秀劳里·马尔卡宁 为诺基亚手机品牌大使
- 步步为营VS 2008 + .NET 3.5(2) - VS 2008新特性之JavaScript Intellisense and Debugging
- eclipse maven配置_Maven系列教材 (十一)- 使用Eclipse导入一个Maven风格的SSM项目
- php arcsin函数,三角函数计算器
- 【WPA三维路径规划】基于matlab狼群算法无人机三维路径规划【含Matlab源码 167期】
- 大数据前端个人提升与团队规划
- 网线水晶头RJ45制作方法
- “女人~,你在玩火”一个有磁性的声音说道——常用自动化测试工具
- 计算机按键去抖动的方式,机械按键如何去处理按键抖动的问题
- java的jdk安装教程附百度网盘链接环境配置遇到的各种问题版本选择
- 安装笔记本内存条及认识内存插槽
- 玩玩破解 01——入门
- 0基础光缆/光纤熔接教程
- 【技术】python 爬虫一招解决SSl 报错SSLError
- 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法