编译安装Postfix邮件服务器
思韵闪耀
2013-03-18
0
Postfix的安装方式与其它的软件有些不同,其做为悠久的邮件服务器,它支持众多的特性,包括与第三方软件的交互整合功能。这里对其的编译、安装过程进行了一个简单总结。

---------------
Installation of Postfix

Adding Users and Groups--添加用户及其组

Before you compile the program, you need to create users and groups that will be expected to be in place during the installation. Add the users and groups with the following commands issued by the root user:

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Postfix Daemon User" -d /var/spool/postfix -g postfix -s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail

Configuring the Build--编译配置
Postfix的编译安装与其它通用的软件安装不同,它有自己的一套规则。

The Postfix source tree does not contain a configure script, rather the makefile in the top-level directory contains a makefiles target that regenerates all the other makefiles in the build tree. If you wish to use additional software such as a database back-end for virtual users, or TLS/SSL authentication, you will need to regenerate the makefiles using one or more of the appropriate CCARGS and AUXLIBS settings listed below.

Cyrus-SASL
To use Cyrus-SASL with Postfix, use the following arguments:
CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-lsasl2'

OpenLDAP
To use OpenLDAP with Postfix, use the following arguments:
CCARGS='-DHAS_LDAP'
AUXLIBS='-lldap -llber'

Sqlite
To use Sqlite with Postfix, use the following arguments:
CCARGS='-DHAS_SQLITE'
AUXLIBS='-lsqlite3 -lpthread'

MySQL
To use MySQL with Postfix, use the following arguments:
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-lmysqlclient -lz -lm'

PostgreSQL
To use PostgreSQL with Postfix, use the following arguments:
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-lpq -lz -lm'

CDB/TinyCDB
To use CDB or TinyCDB with Postfix, use the following arguments:
CCARGS='-DHAS_CDB'
AUXLIBS='</path/to/CDB>/libcdb.a'

StartTLS Authentication
To use OpenSSL with Postfix, use the following arguments:
CCARGS='-DUSE_TLS -I/usr/include/openssl/'

AUXLIBS='-lssl -lcrypto'

具体的编译参数和选项选项:
1.AUXLIBS
2.CC
3.CCARGS  
4.DEBUG
5.OPT

参数:-I ,-D, -L, -R, -r, -l。各个参数的说明如下:
-I 指明某一包的库文件所在的地方

-D The -D option provides a way to define macros at the time you compile Postfix. Add-on packages for Postfix require that you define a particular macro to tell Postfix to include it when building. For example, if you want to include support for MySQL, you define the HAS_MYSQL macro:CCARGS='-DHAS_MYSQL'

-L 加入对某一包的额外库的支持。如:AUXLIBS='-L/usr/local/lib'

-l 和-L一块儿使用,具体到某一库。如:AUXLIBS='-L/usr/local/lib -lmysqlclient'

-R -r
The linker uses an argument to include directories in a runtime search path for dynamic libraries. The argument differs depending on your linker and platform. The GNU linker (Linux, FreeBSD) uses -rpath, as does IRIX. Solaris, on the other hand uses -R, and HP-UX uses +b. Consult the manpage for your linker, ld(1), to see which argument you should use to set the runtime library search path.

如:Using the SSL library as an example, if your libssl.so file is located in /usr/local/lib and you are building Postfix on FreeBSD or another system that uses rpath, define AUXLIBS as follows:
AUXLIBS='-L/usr/local/lib -rpath/usr/local/lib -lssl'

下面给出一个例子:可以将它保存成shell,如:install.sh文件

#make tidy
# Specify all of our options and supporting libraries
make makefiles
CCARGS='-DUSE_SASL_AUTH -DHAS_SSL -DHAS_MYSQL -DHAS_LDAP
-I/usr/local/include/sasl -I/usr/local/ssl/include
-I/usr/local/include/mysql -I/usr/local/include'

AUXLIBS='-L/usr/local/lib -L/usr/local/ssl/lib
-L/usr/local/lib/mysql -L/usr/local/lib
-lsasl2 -lcrypto -lssl -lmysqlclient -lz -lm -lldap -llber
-rpath /usr/local/lib/mysql -rpath /usr/local/lib
-rpath /usr/local/ssl/lib'

To build Postfix, type:
$ sh build.sh
$ make

Installing Postfix--安装

If you have Cyrus SASL and OpenSSL installed, install Postfix by running the following commands:
make CCARGS="-DNO_NIS -DUSE_TLS -I/usr/include/openssl/ -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl"
AUXLIBS="-lssl -lcrypto -lsasl2"                             
makefiles &&
make

This package does not come with a useful test suite.

Now, as the root user:
sh postfix-install -non-interactive
   daemon_directory=/usr/lib/postfix
   manpage_directory=/usr/share/man
   html_directory=/usr/share/doc/postfix-2.10.0/html
readme_directory=/usr/share/doc/postfix-2.10.0/readme

Command Explanations--指令解析

make makefiles: This command rebuilds the makefiles throughout the source tree to use the options contained in the CCARGS and AUXLIBS variables.

-DNO_NIS: This option disables building Network Information Service/Yellow Pages support. The RPC implementation in Glibc (on which NIS/YP depends) is deprecated.

对于使用'-DNO_'这样的选项是为了在默认的选项中禁止掉一些组件,像nis、Berkeley DB、ipv6、等这些没有使用的功能块。

sh postfix-install -non-interactive: This keeps the install script from asking any questions, thereby accepting default destination directories in all but the few cases. If the html_directory and readme_directory options are not set then the documentation will not be installed.

---------------
Configuring Postfix--配置

Config Files
/etc/aliases, /etc/postfix/main.cf, and /etc/postfix/master.cf

Configuration Information

Create (or append to an existing) /etc/aliases with the following command. Change <LOGIN> for your non-root login identity so mail addressed to root can be forwarded to you. As the root user:

cat >> /etc/aliases << "EOF"
# Begin /etc/aliases

MAILER-DAEMON: postmaster
postmaster: root

root: <LOGIN>
# End /etc/aliases
EOF

To protect an existing /etc/aliases file, the above command appends these aliases to it if it exists. This file should be checked and duplicate aliases removed, if present.

Note
The /etc/postfix/main.cf and /etc/postfix/master.cf files must be personalized for your system. The main.cf file needs your fully qualified hostname. You will find that main.cf is self documenting, so load it into your editor to make the changes you need for your situation.

Note
Postfix can also be set up to run in a chroot jail. See the file in the source examples/chroot-setup/LINUX2 for details.

If you have an existing configuration, you can run the postfix utility to add any necessary definitions to your existing files. As the root user:
/usr/sbin/postfix upgrade-configuration

Before starting Postfix, you should check that your configuration and file permissions will work properly. Run the following commands as the root user to check and start your Postfix server:
/usr/sbin/postfix check &&
/usr/sbin/postfix start

Boot Script--启动脚本

To automate the running of Postfix at startup, install the /etc/rc.d/init.d/postfix init script included in the blfs-bootscripts-20130721 package.

make install-postfix

---------------
Contents--所产生的文件

Installed Programs:
mailq, newaliases, postaliases, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper and sendmail

Installed Libraries:
None

Installed Directories:
/etc/postfix, /usr/lib/postfix, /usr/share/doc/postfix-2.10.0, /var/lib/postfix and /var/spool/postfix

Short Descriptions--简短描述

mailq--A symlink to sendmail.

newaliases--A symlink to sendmail.

postaliases--is a utility for Postfix alias database maintenance

postcat--Prints the contents of files from the Postfix queue in human readable format.

postconf--Displays or changes the value of Postfix configuration parameters.

postdrop--Creates a file in the maildrop directory and copies its standard input to the file.

postfix--is the Postfix control program.

postkick--Sends requests to the specified service over a local transport channel.

postlock--Locks a mail folder for exclusive use, and executes commands passed to it.

postlog--A Postfix-compatible logging interface for use in, for example, shell scripts.

postmap--Creates or queries one or more Postfix lookup tables, or updates an existing one.

postmulti--is the Postfix multi-instance manager. It allows a system administrator to manage multiple Postfix instances on a single host.

postqueue--The Postfix user interface for queue management.

postsuper--The Postfix user interface for superuser queue management.

sendmail--is the Postfix to Sendmail compatibility interface.

---------------


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

将IIS设置克隆到新服务器...
将IIS设置克隆到新服务器的最佳方法是使用IIS配置文件。以下是详...
2025-06-06
网页保护、网页图片保护
1、禁止另存网页,把如下代码加入到网页body/body中 程序代...
2025-05-30
搭建Git服务器及本机克隆...
Git是什么?Git是目前世界上最先进的分布式版本控制系统。SVN...
2025-03-17
ubuntu环境下搭建gi...
操作环境:服务器:Ubuntu 24.04.2 LTS+git 2...
2025-03-17
Linux系统挂载未分配硬...
先查看未挂载之前的磁盘使用情况发现磁盘使用率已经达到了96%,迫切...
2025-02-22
Linux lsblk 命...
简介Linux 中的 lsblk 命令,全称叫做:list blo...
2025-02-22

热门资讯

Roundcube 配置过各提... Fileinfo/mime_content_type configuration: OK Mimet...
搭建PostfixAdmin ... 一、原理及其应用: 笔者之前就职在上海一家信息公司,至力于全面的电子邮件营销解决方案,公司中等规模,...
在wdos系统下搭建postf... 一.简介: 1. wdOS是一个基于CentOS版本精简优化过的Linux服务器系统,大部分保留着c...
RHEL5系统中安装Postf... 前提1:安装RHEL5时把所有的开发工具装上。 原理图 前提2 :开始前请确保您已经配置好指向此邮件...
Linux停止和启动postf... 1.启动Postfix服务 启动Postfix服务的命令为: /etc/init.d/postfix...