说明:关于邮件配置这几篇文章,主要参考的是作者sery博客,里边还有一些作者的内容.本篇配置,大部分软件版本与原作者的都不相同.同时,里边更新了一些新的内容,如WEBServer 采用nginx,系统版本采用CentOS5.3.这几篇命名为原创不是作者的本意,为了避免误解,现更改为转载.但,整篇配置确是作者一步步配置.在原作者的配置上也发现了一些新的问题.本人会继续开源软件的研究和实践.
 
系统平台:
CentOS5.3
1


nginx
……………………………………………web server
2


Mysql
……………………………………………
用数据库存储用户信息
3


Php
………………………………………………
php(fastcgi)
4


Authlib
…………………………………………

sasl
一起做验证
5


Sasl
……………………………………………验证方法
6


Postfix

………………………………………
smtp
邮件发送服务主程序
7


Courier-imap
…………………………………
pop3
邮件接收主程序
8


Pcre
……………………………………………安装
Imap
需要
perl
正则表达式
9


Maildrop
…………………………………………邮件投递代理,邮件转发到用户邮箱
10. clamav
……………………………………………杀毒软件
11. amavisd-new
………………………………………邮件病毒扫描
12. Mail-SpamAssassin
………………………………防垃圾邮件
 

CentOS5.3系统安装包,一定要选的6个包。
1
system tools
2
administration tools
3
development tools
4
development libraries
5
network servers (5.1network services)
6. base             (5.1
没有单独列出)

相关软件下载地址:
 
       http://fontconfig.org/release/fontconfig-2.6.0.tar.gz
 
以下是具体安装步骤:
一.PHP(FastCGI)环境
 
一.PHP(FastCGI)环境
   1.MySQL安装

  
@
版本:
mysql-5.0.41.tar.gz
  
安装过程:
  
……………………………安装开始………………………………………………

# groupadd mysql
# useradd -g mysql  mysql
#./configure –prefix=/usr/local/mysql –with-extra-charsets=gb2312,gbk
 –with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
 –with-mysqld-ldflags=-all-static –with-client-ldflags=-all-static
 –sysconfdir=/etc –enable-assembler
# make && make install
# scripts/mysql_install_db –user=mysql     //数据库安装
# bin/mysqld_safe –user=mysql &   //起动mysqld
…………………………安装结束……………………………………………
echo “/usr/local/mysql/lib/mysql”>> /etc/ld.so.conf

//postfix
编译里会用到
基本操作:
1.
    
起动/关闭MySQL
/usr/local/mysql/bin/mysqld_safe &
/usr/local/mysql/bin/mysqladmin -u root
p shutdown
2.
    
设置密码
mysqladmin -u root password ‘new-password’
    
3.
添加
/usr/local/webserver/mysql5/bin
到环境变量
   v
i /etc/profile
       export PATH=$PATH:/usr/local/mysql/bin
2. GD相关安装
      1. @版本libpng-1.2.29.tar.gz
###################################################

shell> tar zxvf libpng-1.2.29.tar.gz
shell> cd libpng-1.2.29
shell> ./configure
shell> make
shell> make install
###################################################
  

 2.
版本jpegsrc.v6b.tar.gz
#############################################################

shell> tar zxvf jpegsrc.v6b.tar.gz
shell> cd jpeg-6b
/***
**
由于
jpeg
的安装脚本中
,
没有创建文件夹
,
因此我们得手动给他创建好文件夹
**/
Shell> mkdir –p /usr/local/jpeg/bin
Shell> mkdir  /usr/local/jpeg/lib
Shell> mkdir  /usr/local/jpeg/include
Shell> mkdir  /usr/local/jpeg/man
Shell> mkdir  /usr/local/jpeg/man1
Shell> mkdir  /usr/local/jpeg/man/man1
/*
生成共享
*/

Shell> ./configure –prefix=/usr/local/jpeg –enable-shared –enable-static

Shell> make && make install   
 
#################################################
   
3.
 
@
版本
freetype-2.3.7.tar.gz

#############################################
shell> tar zxvf freetype-2.3.7.tar.gz
shell> cd freetype-2.3.7
shell>  ./configure   
 //
不指定目录,方便以下
RRDTool
安装
shell> make && make install
##############################################
4@版本
fontconfig-2.6.0.tar.gz
   #################################################
Shell> tar zxvf fontconfig-2.6.0.tar.gz && cd font*
Shell> ./configure –prefix=/usr/local/fontconfig –with-freetype-config=/usr/local/bin/freetype-config
Shell> make && make install
 ##################################################
5.
 
@
版本
gd-2.0.35.tar.gz
GD
库安装以前先把以上几个安装上,这个安装是有一定顺序的。
###############################################
Shell> tar zxvf gd-2.0.35.tar.gz
Shell> cd gd-2.0.35
Shell> ./configure –prefix=/usr/local/gd
 –with-png
–with-jpeg=/usr/local/jpeg
 –with-freetype
–with-fontconfig=/usr/local/fontconfig
Shell> make && make install
###############################################

** Configuration summary for gd 2.0.34:
 
   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library:    yes
   Support for Fontconfig library:     yes
   Support for Xpm library:          no
   Support for pthreads:             yes
faq:
1>
cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run aclocal-1.9 -I config
aclocal:configure.ac:64: warning: macro `AM_ICONV’ not found in library
 cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run automake-1.9 –foreign
cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run autoconf
configure.ac:64: error: possibly undefined macro: AM_ICONV
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
make: *** [configure] Error 1
解决
:
重新
make
一下,如果不行,可以安装下边的包
安装
gettext
安装方式
: shell>  yum install gettext
或通过手动下载
gettext

3.PHP(FastCGI)模式安装
 
@php版本
:5.2.6
  
#gzip -cd php-5.2.9-fpm-0.5.10.diff.gz | patch -d php- 5.2.9 -p1

步骤:
 ###########################################################
#./configure –prefix=/usr/local/phpcgi –with-config-file-path=/usr/local/phpcgi/etc  –with-mysql=/usr/local/mysql –with-gd=/usr/local/gd –with-jpeg-dir=/usr/local/jpeg –with-png-dir=/usr/local/lib –with-freetype-dir=/usr/local/lib –enable-mbstring –enable-mbregex –enable-bcmath –enable-sockets –with-xsl –with-curl –with-curlwrappers –enable-fastcgi –enable-force-cgi-redirect –enable-discard-path –with-openssl

–enable-fpm
# make && make install
#cp php.ini-recommended /usr/local/phpcgi/etc/php.ini
######################################################
# /usr/local/phpcgi/etc/php-fpm.conf
<?xml version=”1.0″ ?> 
<configuration> 
 
  <section name=”global_options”> 
 
    <value name=”pid_file”>/usr/local/phpcgi/logs/php-fpm.pid</value> 
 
    <value name=”error_log”>/usr/local/phpcgi/logs/php-fpm.log</value> 
 
    <value name=”log_level”>notice</value> 
 
    <value name=”emergency_restart_threshold”>10</value> 
 
    <value name=”emergency_restart_interval”>1m</value> 
 
    <value name=”process_control_timeout”>5s</value> 
 
    <value name=”daemonize”>yes</value> 
 
  </section> 
 
  <workers> 
 
    <section name=”pool”> 
 
      <value name=”name”>default</value> 
 
      <value name=”listen_address”>127.0.0.1:9000</value> 
 
      <value name=”listen_options”> 
 
        <value name=”backlog”>-1</value> 
 
        <value name=”owner”></value> 
        <value name=”group”></value> 
        <value name=”mode”>0666</value> 
      </value> 
 
      <value name=”php_defines”> 
        <value name=”sendmail_path”>/usr/sbin/sendmail -t -i</value> 
        <value name=”display_errors”>1</value> 
      </value> 
 
        <value name=”user”>vmail</value> 
 
        <value name=”group”>vmail</value> 
 
      <value name=”pm”> 
 
        <value name=”style”>static</value> 
 
        <value name=”max_children”>25</value> 
 
        <value name=”apache_like”> 
 
          <value name=”StartServers”>10</value> 
 
          <value name=”MinSpareServers”>5</value> 
 
          <value name=”MaxSpareServers”>25</value> 
 
        </value> 
 
      </value> 
 
      <value name=”request_terminate_timeout”>0s</value> 
 
      <value name=”request_slowlog_timeout”>0s</value> 
 
      <value name=”slowlog”>logs/slow.log</value> 
 
      <value name=”rlimit_files”>51200</value> 
 
      <value name=”rlimit_core”>0</value> 
 
      <value name=”chroot”></value> 
 
      <value name=”chdir”></value> 
 
      <value name=”catch_workers_output”>yes</value> 
 
      <value name=”max_requests”>500</value> 
 
      <value name=”allowed_clients”>127.0.0.1</value> 
 
      <value name=”environment”> 
        <value name=”HOSTNAME”>$HOSTNAME</value> 
        <value name=”PATH”>/usr/local/bin:/usr/bin:/bin</value> 
        <value name=”TMP”>/tmp</value> 
        <value name=”TMPDIR”>/tmp</value> 
        <value name=”TEMP”>/tmp</value> 
        <value name=”OSTYPE”>$OSTYPE</value> 
        <value name=”MACHTYPE”>$MACHTYPE</value> 
        <value name=”MALLOC_CHECK_”>2</value> 
      </value> 
 
    </section> 
 
  </workers> 
 
</configuration>

起动php-cgi进程:
/usr/local/phpcgi/sbin/php-fpm start
4.NGINX安装
 @nginx版本
:0.7.57

步骤
:

####################################################
#

./configure –user=vmail –group=vmail –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module
# make && make install
###################################################
# more /usr/local/nginx/conf/fcgi.conf
#fastcgi.conf
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;