热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS系统安装配置Nginx0.7.57+Postfix+Extmail邮件服务器系统

说明:关于邮件配置这几篇文章,主要参考的是作者sery博客,里边还有一些作者的内容.本篇配置,大部分软件版本与原作者的都不相同.同时,里边更新了一些新的内容,如WEBServer采用nginx,系统版本采用CentOS5.3.这几篇命名为原创不是作者的本意,为了避免误解,现更

说明:关于邮件配置这几篇文章,主要参考的是作者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.1为network services)
6. base            (5.1没有单独列出)
相关软件下载地址:
 
      http://prdownloads.sourceforge.net/courier/courier-authlib-0.62.2.tar.bz2
      http://asg3.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
      http://jaist.dl.sourceforge.net/sourceforge/pcre/pcre-7.8.tar.gz
      http://www.postfix.cn/source/official/postfix-2.5.6.tar.gz
      http://nchc.dl.sourceforge.net/sourceforge/courier/courier-imap-4.4.1.tar.bz2
      http://switch.dl.sourceforge.net/sourceforge/courier/maildrop-2.0.4.tar.bz2
      http://fontconfig.org/release/fontconfig-2.6.0.tar.gz
      ftp://ftp.openpkg.org/sources/DST/xpm/xpm-3.4k.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 到环境变量
  vi /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

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
 
 
 
 

 
 
   /usr/local/phpcgi/logs/php-fpm.pid 
 
   /usr/local/phpcgi/logs/php-fpm.log 
 
   notice 
 
   10 
 
   1m 
 
   5s 
 
   yes 
 
 
 
 
  
 
   
 
 
     default 
 
     127.0.0.1:9000 
 
      
 
       -1 
 
        
        
       0666 
     
 
 
      
       /usr/sbin/sendmail -t -i 
       1 
     
 
 
       vmail 
 
       vmail 
 
      
 
       static 
 
       25 
 
        
 
         10 
 
         5 
 
         25 
 
       
 
 
     
 
 
     0s 
 
     0s 
 
     logs/slow.log 
 
     51200 
 
     0 
 
      
 
      
 
     yes 
 
     500 
 
     127.0.0.1 
 
      
       $HOSTNAME 
       /usr/local/bin:/usr/bin:/bin 
       /tmp 
       /tmp 
       /tmp 
       $OSTYPE 
       $MACHTYPE 
       2 
     
 
 
   
 
 
 
 
 

起动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;

二.邮件发送接收相关包的安装
 
再继续安装前先清理一下系统自带的一些软件
Sendmail相关包rpm ?q sendmail
sendmail-8.13.8-2.el5
----------------------------------------------
清除:
rpm -e sendmail --nodeps
Sasl 相关包列出 rpm -qa|grep sasl
cyrus-sasl-2.1.22-4
cyrus-sasl-devel-2.1.22-4
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-lib-2.1.22-4
---------------------------------------------
清除:
rpm -e --nodeps cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-lib

如果出现

error: "cyrus-sasl-lib" specifies multiple packages

rpm -e --nodeps --allmatches cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-lib
然后是创建以下用户及组
用户名 组名 作用 备注
mysql mysql 数据库mysql运行用户 以上已创建
vmail vmail nginx 服务运行用户 以上已创建
vmail vmail Postfix虚拟邮件帐号所使用的用户及组 uid,gid:1001,1001
postfix Postfix Postfix主程序使用的帐号和组 Uid,gid:1000,1000
 Postdrop Postfix setgid_group setgid_group=postdrop
1002
amavis amavis 邮件扫描  
clamav Clamav 病毒扫描  

 

ln -s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux   //避免以下安装编译出现问题
一.安装courier-authlib
安装过程:
      ……………………………安装开始………………………………………………
      Shell> tar jxvf courier-authlib-0.62.2.tar.bz2
      Shell> cd courier-authlib-0.62.2
      Shell>./configure
--with-mailuser=vmail --with-mailgroup=vmail
 --with-mysql-libs=/usr/local/mysql/lib/mysql
 --with-mysql-includes=/usr/local/mysql/include/mysql
 --prefix=/usr/local/authlib
 --without-stdheaderdir
      Shell> make && make install
      Shell> make install-configure
…………………………安装结束……………………………………………

---------------------------------------------------------
一般情况下,anthlib的安装应该是容易完成的。
     配置:
配置authlib.在目录/usr/local/authlib/etc/authlib中,修改文件authdaemonrc及authmysqlrc。
vim /usr/local/authlib/etc/authlib/authdaemonrc
vi /usr/local/authlib/etc/authlib/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
DEBUG_LOGIN=2
 
修改上面3项,其他的项保持不变。这个修改前2行表示用mysql认证模块;把DEBUG_LOGIN的值有默认的“0”改成“2”的用意是运行postfix时有更多的信息输出,通过生成的日志以帮助排错。
vi /usr/local/authlib/etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_DATABASE extmail
MYSQL_SOCKET /usr/local/mysql/tmp/mysql.sock
MYSQL_PORT             3306
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password //这里需要注意
#MYSQL_CLEAR_PWFIELD password
DEFAULT_DOMAIN mail.test.com
MYSQL_UID_FIELD ‘1001’
MYSQL_GID_FIELD ‘1001’
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/var/mailbox/'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD concat(quota,'S')
MYSQL_WHERE_CLAUSE active='1'
特别注意MYSQL_UID_FIELD和MYSQL_GID_FIELD字段的值,这里是‘1001’,也可以是其它的,但一定要与vmail用户及组相一致(id vmail可以得出这2者的值)

后续工作还有,所以现在还不能测试。
-------------------------------------------------------
二.安装SASL
cyrus-sasl-2.1.22.tar.gz
      安装过程:
      ……………………………安装开始………………………………………………
Shell> tar zxvf cyrus-sasl-2.1.22.tar.gz
Shell> cd cyrus-sasl-2.1.22
Shell> ./configure --disable-anon
 --disable-gssapi          //授权
 --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/authlib/var/spool/authdaemon/socket
Shell> make
Shell> make install
…………………………安装结束……………………………………………
配置:
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2 //sasl的安装目录是/usr/local/lib/sasl //安装结束后有Warning警告
echo “/usr/local/lib” >> ld.so.conf    //否则postfix 编译里会找不到libsasl2.so.2
   创建文件 /usr/local/lib/sasl2/smtpd.conf,并加入如下内容:
pwcheck_method: authdaemond
mech_list: PLAIN LOGIN
log_level: 3
authdaemond_path: /usr/local/authlib/var/spool/authdaemon/socket

   Sasl2需要使用文件/usr/local/authlib/var/spool/authdaemon/socket,但默认情况下,其属性是744,需要把它加上执行权限,以便文件属组(主)而外的其它用户可以执行。运行命令
chmod +x /usr/local/authlib/var/spool/authdaemon即可,如果不这样处理,smtp验证无一例外会失败的。创建运行时需要的目录并调试启动
# mkdir -pv /var/state/saslauthd
# /usr/local/sbin/saslauthd -v //看看版本是不是2.1.22 
saslauthd 2.1.22
authentication mechanisms: getpwent pam rimap shadow 
# /usr/local/sbin/saslauthd -a shadow pam -d //正常不会报错
   启动并测试
# /usr/local/sbin/saslauthd -a shadow pam
# /usr/local/sbin/testsaslauthd -u root -p password //正常显示0: OK "Success"成功
      (Password改成机器登录账号root 的密码,这里不是账号不是指的MySQL账号密码。否则会提示:
   0: NO "authentication failed",同时,注意这里测试不用开启authdaemond(authlib)
 
      加入开机自启动
Echo “/usr/local/sbin/saslauthd -a shadow pam” >>/etc/rc.local
 
三.安装postfix
Make参数参考:安装源文件READ_FILES目录
   # more README_FILES/MYSQL_README
   安装过程:
      ……………………………安装开始………………………………………………
      Shell> tar zxvf postfix-2.5.6.tar.gz
      Shell> cd postfix-2.5.6
Shell> make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2'
@@注意:1. 如果没有Makefile文件,需要设置成make -f Makefile.init
              2. /usr/local/mysql/include 如果此目录下还有mysql目录,应改成/usr/local/mysql/include/mysql
               3. /usr/local/mysql/lib 如果此目录下还有mysql目录,应改成/usr/local/mysql/lib/mysql
      如果没有意外,make这一步很快就执行完了,接下来就是安装,使用的命令是
      Shell> make install
程序先自动执行一阵子,然后会进入交互状态,等待用户的输入,一般情况下,一路回车即可完成所有的安装。

 
最后:
生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低:
shell> /usr/bin/newaliases
…………………………安装结束……………………………………………
检验postfix是否支持sasl认证,如果输出为以下结果,则支持:
shell> /usr/sbin/postconf -a     //postfix 安装没有指定目录
cyrus
dovecot
      shell> /usr/sbin/postconf -m |grep mysql
      mysql         //没有的话需重新编译postfix
四.安装imap
  Postfix只是实现邮件系统的smtp功能,pop3或imap则需要另外的软件来实现,这个软件就是courier-imap(当然也有别的软件可以选择)。
……………………………安装开始………………………………………………
Shell> tar jxvf courier-imap-4.4.1.tar.bz2
Shell> cd courier-imap-4.4.1
Shell>./configure
--prefix=/usr/local/imap
--with-redhat
--disable-root-check
--enable-unicode=utf-8,iso-8859-1,gb2312,gbk,gb18030
--with-trashquota
--with-dirsync 
--with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
--with-authmysql
--with-authmysql=yes
 CPPFLAGS='-I/usr/local/authlib/include' LDFLAGS='-L/usr/local/authlib/lib/courier-authlib'
COURIERAUTHCOnFIG='/usr/local/authlib/bin/courierauthconfig' 
 
[以上时间长一些]
 
Shell> make
Shell> make install
Shell> make install-configure
 
……………………………安装结束………………………………………………
 
配置:
……………………………配置开始………………………………………………
修改配置文件/usr/local/imap/etc/pop3d及/usr/local/imap/etc/imapd。把/usr/local/imap
/etc/pop3d 文件的行“POP3DSTART=NO”改成“POP3DSTART=YES”,再依照这个形式把文件/usr/local/imap/etc/imapd的行“IMAPDSTART=NO”改成“IMAPDSTART=YES”即可。
 
加入开机启动:
cp courier-imap.sysvinit /etc/rc.d/init.d/imapd    // courier-imap.sysvinit在安装源文件中
chmod +x /etc/rc.d/init.d/imapd
chkconfig --add imapd
[chkconfig --level 2345 imapd on]
Service imapd start //输出Starting Courier-IMAP server: imap pop3
 
检测:
netstat -tnl|egrep "110|143"
 五.安装pcre
      安装前先卸载系统自带的pcre-6.6-1.1
Rpm ?e pcre
自带的pcre RPM包可能与一些有冲突,可以先卸载掉
Shell> rpm ?e pcre如果提示libpcre.so.0与别的软件有依存关系。可以这样
先备份一下libpcre.so.0这个文件,然后。
Shell> rpm -e pcre ?nodeps
 
……………………………安装开始………………………………………………
Shell> tar zxvf pcre-7.8.tar.gz
Shell> cd pcre-7.8
Shell> ./configure
 
Install prefix .................. : /usr/local
   C preprocessor .................. : gcc -E
   C compiler ...................... : gcc
   C++ preprocessor ................ : g++ -E
   C++ compiler .................... : g++
   Linker .......................... : /usr/bin/ld
   C preprocessor flags ............ :
   C compiler flags ................ : -O2
   C++ compiler flags .............. : -O2
   Linker flags .................... :
   Extra libraries ................. :
 
   Build C++ library ............... : yes
   Enable UTF-8 support ............ : no
   Unicode properties .............. : no
   Newline char/sequence ........... : lf
   \R matches only ANYCRLF ......... : no
   EBCDIC coding ................... : no
   Rebuild char tables ............. : no
   Use stack recursion ............. : yes
   POSIX mem threshold ............. : 10
   Internal link size .............. : 2
   Match limit ..................... : 10000000
   Match limit recursion ........... : MATCH_LIMIT
   Build shared libs ............... : yes
   Build static libs ............... : yes
   Link pcregrep with libz ......... : no
   Link pcregrep with libbz2 ....... : no
   Link pcretest with libreadline .. : no
Shell> make
Shell> make install
……………………………安装结束………………………………………………
六.安装maildrop
      注意%源码安装的,将courierauthconfig 命令链接到/usr/bin里,假设装在:
/usr/local/authlib/bin/courierauthconfig,则:
ln -s /usr/local/authlib/bin/courierauthconfig /usr/bin/courierauthconfig
这样编译出来的maildrop才会Courier Authentication Library extension enabled.
……………………………安装开始………………………………………………
      Shell> tar jxvf maildrop-2.0.4.tar.bz2
      Shell> cd maildrop-2.0.4
      Shell>./configure  
--enable-sendmail=/usr/sbin/sendmail
--enable-trusted-users='root vmail'
--enable-syslog=1
--enable-maildirquota
--enable-maildrop-uid=1001
--enable-maildrop-gid=1001
--with-trashquota
--with-dirsync
Shell> make
Shell> make install
Shell> cp /usr/local/bin/maildrop /usr/bin  //可有可无
……………………………安装结束………………………………………………
 
验证安装是否成功:
Shell> maildrop ?v
[root@localhost postfix]# /usr/local/bin/maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled. //这行重要,没有的话要查一下原因
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
      FAQ:
  如果没有显示Courier Authentication Library extension enabled.说明你的maidrop还不支持courier auth,请仔细检查,重新编译maildrop建议不要自定义目录安装,可以减少不必要的麻烦,删除很方便:直接在已经编译的源代码目录 make uninstall 就行
知道maildrop把邮件移动到哪个用户目录还是非常有必要的,这个操作就是maildrop的日志记录。这里我们创建一个新文件/etc/maildroprc,这个文件就2行内容:如果加入反SPAM,需要更改以下内容
[root@mail mailbox]# more /etc/maildroprc
logfile "/var/log/maildrop.log" 
to "$HOME/$DEFAULT"

Shell> touch /var/log/maildrop.log
Shell> chown vmail.vmail /var/log/maildrop.log
shell> chown vmail.vmail /var/mailbox

三.Webmail相关包安装
一.安装webmail
      安装前先安装Unix-Syslog-1.1.tar.gz
http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.1.tar.gz
 
Tar zxvf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
perl Makefile.PL
make
make install
安装:DBI-1.605.tar.gz(先安装)
DBD-mysql-4.010.tar.gz
 
      
安装extmail
   ……………………………安装开始………………………………………………
Shell> Mkdir -p /var/www/extsuite/extmail
      将下载的extmail-1.0.4.tar.gz解压到 /var/www/extsuite/extmail下
      Shell> cd /var/www/extsuite/extmail/
Shell> cp webmail.cf.default webmail.cf
[Shell> chown ?R vmail.vmail /var/www/extsuite/extmail]
[shell> chmod +x /var/www/extsuite/extmail/cgi]
……………………………安装结束………………………………………………
 
简易配置
1.      修改nginx nginx.conf文件
#more /usr/local/nginx/conf/nginx.conf
user vmail vmail;
worker_processes 8;
#error_log /usr/local/nginx/logs/nginx_error.log crit;
error_log /usr/local/nginx/logs/nginx_error.log info;

pid       /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
 use epoll;
 worker_connections 51200;
}
http
{
 include      mime.types;
 default_type application/octet-stream;
 #charset gb2312;
     
 server_names_hash_bucket_size 128;
 client_header_buffer_size 32k;
 large_client_header_buffers 4 32k;
 client_max_body_size 8m;
     
 sendfile on;
 tcp_nopush    on;
 keepalive_timeout 60;
 tcp_nodelay on;
 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 fastcgi_buffer_size 64k;
 fastcgi_buffers 4 64k;
 fastcgi_busy_buffers_size 128k;
 fastcgi_temp_file_write_size 128k;
 gzip on;
 gzip_min_length 1k;
 gzip_buffers    4 16k;
 gzip_http_version 1.0;
 gzip_comp_level 2;
 gzip_types      text/plain application/x-Javascript text/css application/xml;
 gzip_vary on;
 #limit_zone crawler $binary_remote_addr 10m;
 server
 {
   listen      80;
   server_name mail.test.com;
   index index.html index.htm index.php index.cgi;
   root /var/www/extsuite/extmail/html/;
   
     
   location /extmail/cgi/ {
       fastcgi_pass 127.0.0.1:12009;
       fastcgi_index        index.cgi;
       fastcgi_param SCRIPT_FILENAME  /var/www/extsuite/extmail/cgi/$fastcgi_script_name;
       include fcgi.conf;
  }
   location  ^~ /extmail/ {
       alias /var/www/extsuite/extmail/html/;
  }
   location /extman/cgi/ {
       fastcgi_pass 127.0.0.1:12009;
       fastcgi_index        index.cgi;
       fastcgi_param SCRIPT_FILENAME  /var/www/extsuite/extman/cgi/$fastcgi_script_name;
       include fcgi.conf;
  }
   location ^~ /extman/ {
       alias /var/www/extsuite/extman/html/;
   }
  
  
   location ^~ /status {
      stub_status on;
      access_log  off;
      #allow 192.168.0.0/24;
      #deny all;
      allow 59.108.107.66;
   }
                     
  location ~ .*\.(php|php5)?$
       
     #fastcgi_pass unix:/tmp/php-cgi.sock;
     fastcgi_pass 127.0.0.1:12009;
     fastcgi_index index.cgi;
     include fcgi.conf;
   }
   
   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
     expires     30d;
   }
   location ~ .*\.(js|css)?$
   {
     expires     1h;
     
   log_format access '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
   access_log /usr/local/nginx/logs/access.log access;
     }
}
 
 2.extmail cgi脚本配置
  #MAXFORK=5
  MAXFORK=20
  #MAXREQS=100
  MAXREQS=500
  #TIMEOUT=120
  TIMEOUT=300
  PORT=12009 #端口号与nginx.conf文件保持一致,
  SU_UID=vmail
  SU_GID=vmail
 
  安装extman
……………………………安装开始………………………………………………
Shell> mv extman-0.2.3 /var/www/extsuite/extman
//Shell> chown -R vmail:vmail /var/www/extsuite/extman
创建extman运行时所需要临时目录
Shell> mkdir -pv /tmp/extman
Shell> chown -R vmail.vmail /tmp/extman
初始化数据库时,请更改init.sql中extmail.org的名称为自已域名
Shell> cd /var/www/extsuite/extman/docs/
//Shell> vi init.sql            
        将extmail.org 全部替换为mail.test.com(自己根据自己的域名替换)
 
修改cgi目录的属主:
# chown -R vmail.vmail /var/www/extsuite/extman/cgi/
Shell> mysql -u root -p < ./extmail.sql    
Shell> mysql ?u root ?p <./init.sql
 
Extmail 和 extman 详细配置
1.      extmail 配置 vi webmail.cf
SYS_USER_LANG = en_US 改为SYS_USER_LANG = zh_CN
SYS_MAILDIR_BASE = /home/domains 右边改为 /var/mailbox
SYS_MYSQL_USER = db_user 右边改为extmail
SYS_MYSQL_PASS = db_pass   右边改为extmail
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock 右边改为/usr/local/mysql/tmp/mysql.sock
SYS_AUTHLIB_SOCKET = /usr/local/authlib/var/spool/authdaemon/socket
………………………
2.      extman 配置 vi webman.cf
SYS_MAILDIR_BASE = /home/domains 右边改为/var/mailbox
SYS_DEFAULT_UID = 1001
SYS_DEFAULT_GID = 1001
SYS_MYSQL_SOCKET = /usr/local/mysql/tmp/mysql.sock
SYS_CAPTCHA_ON = 0         //关闭图形验证码
 
起动NGINX和extmail cgi
/var/www/extsuite/extmail/dispatch-init start
/usr/local/nginx/sbin/nginx
 
测试:
输入网址:http://mail.test.com/extmail/cgi/index.cgi
管理员账号root@mail.test.com extmail*123*      
 
      FAQ:
Can't open /tmp/extman//sid_e438c6f837880729ff491bd3f7ea3f01, No such file or directory
      解决:mkdir -pv /tmp/extman
      chown -R vmail.vmail /tmp/extman
      apache 运行用户及组为vmail
二.安装webmail图形化日志
      1. RRDTool安装
下载:http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.30.tar.gz
         http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.20.tar.gz(先安装)
步骤:
--------------------------------------------------------------------------------------------------
libart安装(包括了libart库文件,对平面图形的良好性能很有帮助)
# tar zxvf libart_lgpl-2.3.20.tar.gz && cd libart*
# ./configure --prefix=/usr/local/libart
# make && make install
RRDTool安装(Rrdtool 依赖libpng freetype libart库支持,安装这个前应先保证这几个库已安装上)
# tar zxvf rrdtool-1.2.30.tar.gz && cd rrd*
# more /doc/rrdbuild.txt (安装说明)
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/libart/lib/pkgconfig
# pkg-config --libs freetype2(检测一下是否可以找到freetype2)
 -L/usr/local/lib -lfreetype -lz
# ./configure --prefix=/usr/local/rrdtool    //本机需要连网
##############################################################################
配置信息:
----------------------------------------------------------------
Config is DONE!
 
         With MMAP IO: yes
         Perl Modules: perl_piped perl_shared
          Perl Binary: /usr/bin/perl
         Perl Version: 5.8.8
         Perl Options: PREFIX=/usr/local/rrdtool LIB=/usr/local/rrdtool/lib/perl/5.8.8
         Ruby Modules:
          Ruby Binary: no
         Ruby Options: sitedir=$(DESTDIR)/usr/local/rrdtool/lib/ruby
   Build Tcl Bindings: no
 Build Python Bindings: yes
         Build rrdcgi: yes
      Build librrd MT: yes
 
 
Type 'make' to compile the software and use 'make install' to
install everything to: /usr/local/rrdtool.
 
      ... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go tohttp://tobi.oetiker.ch/wishand
place an order.
 
                              -- Tobi Oetiker
---------------------------------------------------------------- ########################################################################
# make && make install
2.安装File-Tail perl模块
下载:http://search.cpan.org/CPAN/authors/id/M/MG/MGRABNAR/File-Tail-0.99.3.tar.gz
基本步骤:
# tar zxvf File-Tail-0.99.3.tar.gz && cd File*
# perl Makefile.PL
# make && make install
以下是安装信息:
      cp Tail.pm blib/lib/File/Tail.pm
Manifying blib/man3/File::Tail.3pm
Installing /usr/lib/perl5/site_perl/5.8.8/File/Tail.pm
Installing /usr/share/man/man3/File::Tail.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/File/Tail/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
      3.启动图形日志服务测试
Shell> cp -r /var/www/extsuite/extman/addon/mailgraph_ext /usr/local/

其它设置:(因为rrdtool安装在非标准目录,所以其perl模块找不到,拷备到标准目录即可)
cp -r /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/* /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
 
             shell> /usr/local/mailgraph_ext/mailgraph-init start  
          shell> /usr/local/mailgraph_ext/qmonitor-init start
          加入到开机启动:
          Shell> echo “/usr/local/mailgraph_ext/mailgraph-init start”>>/etc/rc.local
          Echo > echo “/usr/local/mailgraph_ext/qmonitor-init start”>>/etc/rc.local
          图形日志测试
            测试页:http://mail.test.com/extman/cgi/index.cgi
            默认登录账号:root@mail.test.com/extmail*123*
三.邮件系统配置测试补充
1.   postfix配置
#########################################################
# more master.cf
# sed -e '/^#/d' -e '/^$/d' master.cf
smtp     inet                          smtpd
pickup   fifo                60          pickup
cleanup  unix                          cleanup
qmgr     fifo                300         qmgr
tlsmgr   unix                1000?       tlsmgr
rewrite  unix                          trivial-rewrite
bounce   unix                          bounce
defer    unix                          bounce
trace    unix                          bounce
verify   unix                          verify
flush    unix                1000?       flush
proxymap unix                          proxymap
proxywrite unix -                          proxymap
smtp     unix                          smtp
relay    unix                          smtp
       -o smtp_fallback_relay=
showq&nbs

推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
author-avatar
书友57087250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有