快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

linux上安装基于postfix的全功能邮件服务器(1)

  所用软件包:

  Postfix-2.4.5

  Mysql-5.0.45

  Sasl-2.1.22

  DB-4.5.20

  Openssl-0.98e

  httpd-2.2.4

  Php-5.2.3

  courier-authlib-0.59.3

  courier-imap-4.1.3

  Extmail-1.0.2

  Extman-0.2.2

  maildrop-2.0.4

  clamav-0.91.2

  amavisd-new

  SpamAssassin-3.2.3

  一、安装mysql-5.0.45

  #groupadd mysql

  #useradd -g mysql -s /bin/false -M mysql

  #tar zxvf mysql-5.0.45.tar.gz

  #cd mysql-5.0.45

  #./configure \

  --prefix=/usr/local/mysql \

  --enable-thread-safe-client \

  --enable-local-infile \

  --with-charset=gbk \

  --with-extra-charset=all \

  --with-low-memory

  make

  make install

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

  cd /usr/local/mysql

  chown -R mysql .

  chgrp -R mysql .

  bin/mysql_install_db --user=mysql

  chown -R root .

  chown -R mysql var

  bin/mysqld_safe --user=mysql &

  cd /usr/local/src/mysql-5.0.45

  cp support/mysql.server /etc/rc.d/init.d/mysqld

  chmod 700 /etc/rc.d/init.d/mysqld

  加入自动启动服务队列:

  chkconfig --add mysqld

  chkconfig --level 345 mysqld on

  测试

  /usr/local/mysql/bin/mysqladmin ping

  /usr/local/mysql/bin/mysqladmin version

  /usr/local/mysql/bin/mysql

  添加root密码

  #/usr/local/mysql/bin/mysqladmin -uroot -p 旧密码 password 新密码

  说明:此时mysql的root用户的密码为空

  配置库文件搜索路径

  # echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

  # ldconfig -v

  添加/usr/local/mysql/bin到环境变量PATH中

  #export PATH=$PATH:/usr/local/mysql/bin

  二、安装openssl-0.9.8e

  tar zxvf openssl-0.9.8e.tar.gz

  cd openssl-0.9.8e

  ./config shared zlib

  make

  make test

  make install

  mv /usr/bin/openssl /usr/bin/openssl.old

  mv /usr/include/openssl /usr/include/openssl.old

  rm /usr/lib/libssl.so

  ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

  ln -s /usr/local/ssl/include/openssl /usr/include/openssl

  ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

  配置库文件搜索路径

  # echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

  # ldconfig -v

  检测安装结果

  # openssl version

  OpenSSL 0.9.8e 23 Feb 2007

  三、安装sasl-2.1.22

  tar zxvf cyrus-sasl-2.1.22.tar.gz

  cd cyrus-sasl-2.1.22

  ./configure --prefix=/usr/local/sasl2 \

  --disable-gssapi \

  --disable-anon \

  --disable-sample \

  --disable-digest \

  --enable-plain \

  --enable-login \

  --enable-sql \

  --with-mysql=/usr/local/mysql \

  --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket

  make

  make install

  如果出现下面的错误:

  auth_getpwent.c:48:20: des.h: No such file or directory

  make[3]: *** [auth_getpwent.o] Error 1

  make[3]: Leaving directory `/tmp/cyrus-sasl-2.1.21/saslauthd'

  make[2]: *** [all] Error 2

  make[2]: Leaving directory `/tmp/cyrus-sasl-2.1.21/saslauthd'

  make[1]: *** [all-recursive] Error 1

  make[1]: Leaving directory `/tmp/cyrus-sasl-2.1.21'

  make: *** [all] Error 2

  修改/tmp/cyrus-sasl-2.1.21/saslauthd/Makefiles内的变量CFLAGS添加-I/opt/openssl/include/openssl

  或者直接

  mail~#cp /tmp/cyrus-sasl-2.1.21/mac/libdes/public/des.h /tmp/cyrus-sasl-2.1.21/

  关闭原有的sasl:

  # mv /usr/lib/libsasl2.a /usr/lib/libsasl2.a.OFF

  # mv /usr/lib/libsasl2.la /usr/lib/libsasl2.la.OFF

  # mv /usr/lib/libsasl2.so.2.0.19 /usr/lib/libsasl2.so.2.0.19.OFF

  # mv /usr/lib/sasl2 /usr/lib/sasl2.OFF

  # rm /usr/lib/libsasl2.so

  # rm /usr/lib/libsasl2.so.2

  # ln -sv /usr/local/sasl2/lib/* /usr/lib

  postfix 2.3以后的版本会分别在/usr/local/lib和/usr/local/include中搜索sasl库文件及头文件,故还须将其链接至此目录中:

  # ln -sv /usr/local/sasl2/lib/* /usr/local/lib

  # ln -sv /usr/local/sasl2/include/sasl/* /usr/local/include

  创建运行时需要的目录并调试启动

  # mkdir -pv /var/state/saslauthd

  # /usr/local/sasl2/sbin/saslauthd -a shadow pam -d

  启动并测试

  # /usr/local/sasl2/sbin/saslauthd -a shadow pam

  # /usr/local/sasl2/sbin/testsaslauthd -u root -p root用户密码

  配置库文件搜索路径

  # echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf

  # echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf

  # ldconfig -v

  开机自动启动

  # echo "/usr/local/sasl2/sbin/saslauthd -a shadow pam">>/etc/rc.local

  四、安装BerkeleyDB

  #tar zxvf db-4.5.20.tar.gz

  #cd db-4.5.20/build_unix

  #../dist/configure --prefix=/usr/local/BerkeleyDB

  #make

  #make install

  修改相应的头文件指向

  # mv /usr/include/db4 /usr/inculde/db4.OFF

  # rm /usr/include/db_cxx.h

  # rm /usr/include/db.h

  # rm /usr/include/db_185.h

  # ln -sv /usr/local/BerkeleyDB/include /usr/include/db4

  # ln -sv /usr/local/BerkeleyDB/include/db.h /usr/include/db.h

  # ln -sv /usr/local/BerkeleyDB/include/db_cxx.h /usr/include/db_cxx.h

  配置库文件搜索路径

  # echo "/usr/local/BerkeleyDB/lib" >> /etc/ld.so.conf

  # ldconfig -v

  五、安装httpd-2.2.4

  #tar jxvf httpd-2.2.4.tar.bz2

  #cd httpd-2.2.4

  #./configure \

  --prefix=/usr/local/apache \

  --sysconfdir=/etc/httpd \

  --enable-so \

  --enable-ssl \

  --with-ssl=/usr/local/ssl \

  --enable-track-vars \

  --enable-rewrite \

  --with-zlib \

  --enable-mods-shared=most \

  --enable-suexec \

  --with-suexec-caller=daemon

  #make

  #make install

  #echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local(系统启动时服务自动启动)

  六、安装php-5.2.3

  #jpeg目录

  mkdir /usr/local/jpeg6

  mkdir /usr/local/jpeg6/bin

  mkdir /usr/local/jpeg6/lib

  mkdir /usr/local/jpeg6/include

  mkdir /usr/local/jpeg6/man

  mkdir /usr/local/jpeg6/man/man1

  安装zlib

  tar xzvf zlib-1.2.2.tar.gz

  cd zlib-1.2.2

  #不要用--prefix自定义安装目录,影响gd的安装

  ./configure

  make

  make install

  安装freetype

  tar xzvf freetype-2.1.5.tar.gz

  cd freetype-2.1.5

  ./configure --prefix=/usr/local/freetype

  make

  make install

  安装libpng

  tar xzvf libpng-1.2.5.tar.gz

  #不要用--prefix自定义安装目录,影响gd的安装

  cd libpng-1.2.5

  cp scripts/makefile.std makefile

  make test

  make install

  安装jpeg

  tar xzvf jpegsrc.v6b.tar.gz

  ./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static

  make

  make install

  安装GD

  tar xzvf gd-2.0.33.tar.gz

  ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/freetype

  make

  make install

  安装PHP

  tar -zvxf php-5.2.3.tar.gz

  mkdir -p /usr/local/php

  cd php-5.2.3

  ./configure --prefix=/usr/local/php \

  --with-apxs2=/usr/local/apache/bin/apxs \

  --with-mysql=/usr/local/mysql \

  --with-mysqli=/usr/local/mysql/bin/mysql_config \

  --with-xml \

  --with-png \

  --with-jpeg-dir=/usr/local/jpeg6 \

  --with-zlib \

  --with-freetype-dir=/usr/local/freetype \

  --with-gd=/usr/local/gd \

  --enable-track-vars \

  --enable-mbstring=all

  make

  make install

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

  注:编辑apache配置文件httpd.conf,以apache支持php

  # vi /etc/httpd/httpd.conf

  1、添加如下二行

  AddType application/x-httpd-php .php

  AddType application/x-httpd-php-source .phps

  2、定位至DirectoryIndex index.html

  修改为:

  DirectoryIndex index.php index.html

  3、按照使用习惯,这里将网站根目录指定到/var/www:

  找到DocumentRoot “/usr/local/apache/htdocs”

  修改为:DocumentRoot “/var/www”(后文中我们还会注释掉此行,以启用虚拟主机)

  找到<Directory “/usr/local/apache/htdocs”>

  修改为:<Directory “/var/www”>

  七、安装Postfix-2.4.5

  1.安装

  groupadd -g 2525 postfix

  useradd -g postfix -u 2525 -s /sbin/nologin -M postfix

  groupadd -g 2526 postdrop

  useradd -g postdrop -u 2526 -s /bin/false -M postdrop

  #tar zxvf postfix-2.4.5.tar.gz

  #cd postfix-2.4.5

  #make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl -I/usr/local/BerkeleyDB/include -DUSE_TLS -I/usr/local/ssl/include/openssl ' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/sasl2/lib -lsasl2 -L/usr/local/BerkeleyDB/lib -L/usr/local/ssl/lib -lssl -lcrypto'

  #make

  #make install

  按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值)

  install_root: [/] /

  tempdir: [/usr/local/src/ postfix-2.4.5] /tmp

  config_directory: [/etc/postfix] /etc/postfix

  daemon_directory: [/usr/libexec/postfix] /usr/local/postfix/libexec

  command_directory: [/usr/sbin] /usr/local/postfix/sbin

  queue_directory: [/var/spool/postfix]

  sendmail_path: [/usr/sbin/sendmail]

  newaliases_path: [/usr/bin/newaliases]

  mailq_path: [/usr/bin/mailq]

  mail_owner: [postfix]

  setgid_group: [postdrop]

  html_directory: [no] /var/www/postfix_html

  manpages: [/usr/local/man] /usr/local/postfix/man

  readme_directory: [no]

  说明:这里的postfix将安装在独立的目录/usr/local/postfix中,目的是为了方便管理;您亦可以采用默认安装的方式,可能这样使用起来会更为方便些;

  生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低:

  # newaliases

  2.进行一些基本配置,测试启动postfix并进行发信

  #vi /etc/postfix/main.cf

  修改以下几项为您需要的配置

  myhostname = mail.benet.org

  myorigin = benet.org

  mydomain = benet.org

  mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

  mynetworks = 192.168.1.0/24, 127.0.0.0/8

  注意:

  1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;

  2、任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;

  3、每修改参数及其值后执行 postfix reload 即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;

  4、如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续;

  启动postfix

  /usr/local/postfix/sbin/postfix start

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论