Postfix邮件服务器_ _Web界面安装全过程_第1页
Postfix邮件服务器_ _Web界面安装全过程_第2页
Postfix邮件服务器_ _Web界面安装全过程_第3页
Postfix邮件服务器_ _Web界面安装全过程_第4页
Postfix邮件服务器_ _Web界面安装全过程_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Postfix邮件服务器 + Web界面安装全过程环境是centos5.4最小化安装,只选择了开发工具与开发库# uname -aLinux 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux关闭SELINUX# system-config-securitylevel-tui 或# vi /etc/selinux/config把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:SELINUX=disabled保存,关闭。注:只提供参考,实际配置请

2、根据系统环境做修改,本文为手动编写,如有命令或文本编辑错误请谅解,相关配置文件可从以下地址下载;如有问题可发邮件到kswu1983# wget 垃圾邮件过滤Clamav; amavisd-new; Spamassassin 后续1.安装mysql 5.0.70# groupadd mysql# useradd -g mysql mysql#wget # tar -zxvf mysql-5.0.70.tar.gz# cd mysql-5.0.70# ./configure -prefix=/usr/local/mysql -with-charset=gb2312 -enable-thread-s

3、afe-client# make# make install# cp support-files/my-f /etc/f设置自启动# cp support-files/mysql.server /etc/rc.d/init.d/mysqld# chmod 700 /etc/rc.d/init.d/mysqld# chkconfig -add mysqld安装完以后要初始化数据库,要是升级安装的请跳过# cd /usr/local/mysql# /usr/local/mysql/bin/mysql_install_db -user=mysql# chown -R root .# chown -R

4、 mysql var# chgrp -R mysql .# /usr/local/mysql/bin/mysqld_safe -user=mysql & 好了,至此mysql安装完毕,你可以这样起动你的mysql服务# /etc/rc.d/init.d/mysqld start # ln -s /usr/local/mysql/bin/mysql /sbin/mysql # ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin 为了能让系统找到mysql,请运行如下命令# PATH=$PATH:/usr/local/mysql/b

5、in# export PATH# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf# ldconfig日志管理开启错误日志 (在safe_mysqld项下添加)# vi /etc/fsafe_mysqlderr-log=/var/log/mysqld/err.log开启常规日志和更新日志 (在mysqld项下添加) # vi /etc/fmysqldlog=/var/log/mysqld/log.loglog-update=/var/log/mysqld/update.log创建日志文件并设置权限# mkd

6、ir /var/log/mysqld# touch /var/log/mysqld/err.log /var/log/mysqld/log.log /var/log/mysqld/update.log# chown -R mysql.mysql /var/log/mysqld # service mysqld restart 说明:错误日志包含了服务器写入标准错误输出设备的所有消息,同时还包括了mysql服务的启动和关闭事件常规日志用来记录有关mysql服务器运行的常规信息,包括用户的连接、查询及其他各种时间更新日志用来记录修改数据库的查询信息,包括所有涉及数据库修改的SQl语句的查询记录建议

7、调试结束后关闭日志2.安装apache 2.2.12# wget # tar jxvf httpd-2.2.12.tar.bz2# cd httpd-2.2.12# ./configure -prefix=/usr/local/apache# make# make install设置自启动# cp support/apachectl /etc/init.d/httpd修改/etc/init.d/httpd# vi /etc/init.d/httpd(在第两行之后添加如下内容)#!/bin/sh # # Startup script for the Apache Web Server # chk

8、config: - 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI. # processname: httpd # pidfile: /usr/local/apache/log/httpd.pid # config: /usr/local/apache/conf/httpd.conf# chkconfig -add httpd# chmod 755 /etc/init.d/httpd # chkconfig httpd on 创建网页根目录# mkd

9、ir /web/www# vi /usr/local/apache/conf/httpd.conf/存放网页的目录,原来为DocumentRoot "",改成:DocumentRoot "/web/www"/这句应该和DocumentRoot 的目录保持一致,原来为<Directory "">,改成:<Directory "/web/www">/Indexes:当在目录中找不到DirectoryIndex列表中指定的文件就生成当前目录的文件列表/FollowSymlinks:允许符号链接跟随

10、,访问不在本目录下的文件Options Indexes FollowSymLinks/禁止读取.htaccess配置文件的内容AllowOverride None/指定先执行Allow(允许)访问规则,再执行Deny(拒绝)访问规则Order allow,deny/设置Allow(允许)访问规则,允许所有连接Allow from all</Directory>启动服务:# /usr/local/apache/bin/apachectl start或# service httpd start 3.安装php 5.2.10A先安装支持包(注意安装顺序)建立初始目录:#mkdir /us

11、r/local/modules建立jpeg目录#mkdir /usr/local/modules/jpeg7#mkdir /usr/local/modules/jpeg7/bin#mkdir /usr/local/modules/jpeg7/lib#mkdir /usr/local/modules/jpeg7/include#mkdir /usr/local/modules/jpeg7/man#mkdir /usr/local/modules/jpeg7/man/man1A1、安装zlib#tar xzvf zlib-1.2.3.tar.gz#cd zlib-1.2.3#不要用-prefix自

12、定义安装目录,影响gd的安装#./configure -prefix=/usr/local/modules/zlib#make#make installA2、安装freetype#tar jxvf freetype- 2.3.8.tar.bz2#cd freetype- 2.3.8#./configure -prefix=/usr/local/modules/freetype#make#make installA3、安装libpng#tar xzvf libpng-1.2.10.tar.gz#不要用-prefix自定义安装目录,影响gd的安装#cd libpng-1.2.10#cp scrip

13、ts/makefile.std makefile#make test#make installA4、安装jpeg#tar xzvf jpegsrc.v7.tar.gz#cd jpeg-7#./configure -prefix=/usr/local/modules/jpeg7 -enable-shared -enable-static#make#make installA5 安装libxml2#tar xzvf libxml2-2.7.4.tar.gz#./configure -prefix=/usr/local/modules/libxml2#cd libxml2-2.7.2#make#ma

14、ke install#cp xml2-config /usr/binA6 安装libmcrypt#tar zxvf libmcrypt-2.5.7.tar.gz#cd libmcrypt-2.5.7#./configure#make #make installA7、安装GD#tar xzvf gd-2.0.35.tar.gz#cd gd-2.0.35#./configure -prefix=/usr/local/modules/gd -with-jpeg=/usr/local/modules/jpeg7 -with-png -with-zlib -with-freetype=/usr/loca

15、l/modules/freetype#make#make installB、安装PHP# tar -jxvf php-5.2.10.tar.bz2# cd php-5.2.10# ./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache/bin/apxs -with-mysql=/usr/local/mysql -with-libxml-dir=/usr/local/modules/libxml2 -with-gd=/usr/local/modules/gd -with-jpeg-dir=/usr/local/module

16、s/jpeg7 -with-zlib -with-png-dir=/usr/local/lib/ -with-freetype-dir=/usr/local/modules/freetype# make# make install# cp php.ini-dist /usr/local/php/lib/php.ini# vi /usr/local/php/lib/php.ini;default_charset = "iso-8859-1"在这行下面加一行default_charset = "gb2312"# vi /usr/local/apache/co

17、nf/httpd.conf找到#AddType application/x-tar .tgz 这行,在下面加两行。AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php DirectoryIndex index.html index.html.var index.php 注意:改变了http.conf后,要重启apache服务器,否则不会生效!php常用配置max_execution_time = 30

18、 ; / 改为600 (增加处理脚本的时间限制) max_input_time = 600 ; /最大输出时间600秒 memory_limit = 8M ; /改为40M (这样才能发10M的附件) register_global =On post_max_size = 2M ; /php可接受的 post 方法大小 2M file_uploads = On ; /允许上载文件 upload_max_filesize = 2M ; /最大上载文件2M session.auto_start = 1 ; /session自动启动 设置safe_mode=Off(1)查找max_execution

19、_time = 30,更改为max_execution_time = 600(2)查找max_input_time = 60,更改为max_input_time = 600(3)查找memory_limit = 8M ,更改为memory_limit = 20M(4)查找display_errors = On,更改为display_errors = Off(5)查找register_globals = Off,更改为register_globals = On(6)查找post_max_size = 8M,更改为post_max_size = 20M(7)查找upload_max_filesiz

20、e = 2M,更改为upload_max_filesize = 20M保存后退出,从而完成了php.ini文件的配置工作。4、安装courier-authlib-0.62.4先建立使用账户# groupadd vmail -g 1001# useradd vmail -u 1001 -g 1001 -s/bin/false -d/dev/null最好先安装courier-authlib。为什么呢?因为后面配置 SASL验证smtp时需要authlib的socket路径。# wget #tar jxvf courier-authlib- 0.62.4.tar.bz2#cd courier-aut

21、hlib- 0.62.4#./configure -prefix=/usr/local/courier-authlib -with-redhat -with-authmysql=yes -with-mailuser=vmail -with-mailgroup=vmail -with-mysql-libs=/usr/local/mysql/lib/mysql -with-mysql-includes=/usr/local/mysql/include/mysql -without-stdheaderdir#make#make install#make install-configure#echo

22、"/usr/local/courier-authlib/lib/courier-authlib">>/etc/ld.so.conf#ldconfig#chmod +x /usr/local/courier-authlib/var/spool/authdaemon一般情况下,anthlib的安装应该是容易完成的。安装完成后,我们先找出配置文件中authdaemonvar的设置,这个值是干什么用的呢?它是后面SASL验证SMTP所必须的,因此需要先把它找出来,以便后面的配置能够准确无误。关于这个问题的教训,在配置sasl的时候再做说明。在我的安装中,authdaem

23、onvar的设置如下:# grep "authdaemonvar" /usr/local/courier-authlib/etc/authlib/authdaemonrc#NAME: authdaemonvar:2# authdaemonvar is here, but is not used directly by authdaemond. It'sauthdaemonvar=/usr/local/ courier-authlib /var/spool/authdaemon (2)配置authlib.在目录/usr/local/courier-authlib/et

24、c/authlib中,修改文件authdaemonrc及authmysqlrc。#vi /usr/local/courier-authlib/etc/authlib/authdaemonrc authmodulelist="authmysql"authmodulelistorig="authmysql"DEBUG_LOGIN=2daemons=10修改上面3项,其他的项保持不便。这个修改前2行表示用mysql认证模块;把DEBUG_LOGIN的值有默认的“0”改成“2”的用意是运行postfix时有更多的信息输出,通过生成的日志以帮助排错。 #vi /u

25、sr/local/courier-authlib/etc/authlib/authmysqlrc MYSQL_SERVER localhostMYSQL_USERNAME postfixMYSQL_PASSWORD postfixMYSQL_SOCKET /tmp/mysql.sockMYSQL_PORT 0MYSQL_OPT 0MYSQL_DATABASE postfixMYSQL_USER_TABLE mailboxMYSQL_CRYPT_PWFIELD passwordDEFAULT_DOMAIN MYSQL_UID_FIELD '1001'MYSQL_GID_FIELD

26、 '1001'MYSQL_LOGIN_FIELD usernameMYSQL_HOME_FIELD '/mail/'MYSQL_NAME_FIELD nameMYSQL_MAILDIR_FIELD maildirMYSQL_QUOTA_FIELD concat(quota,'s')MYSQL_WHERE_CLAUSE active='1'注意:确认在这个文件中不能用空格键,只能用tab键。确认只使用单引号,比如:'/mail/','UID','GID'(本文为'1001

27、9;)localhost不能用单引号确认你的/etc/hosts文件中有localhost编译时如果支持Ipv6可能导致错误MYSQL_GID_FIELD 和MYSQL_UID_FIELD是maildrop的UID和GID,而不是MySQL的。如果想使用md5密码,把MYSQL_CLEAR_PWFIELD password改成MYSQL_CRYPT_PWFIELD password启动服务要是想让imap开机就启动服务:# cp courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib# chmod 755 /etc/rc.d/init

28、.d/courier-authlib# chkconfig -level 0123456 courier-authlib on手动启动服务:# authdaemond start测试courier-authlib检查进程: # pstree |grep authdaemond |-courierlogger-authdaemond-5*authdaemond5、安装cyrus-sasl 2.1.23如果系统安装已经,先卸载它,或使用下面方法关闭它# mv /usr/lib/sasl /usr/lib/sasl.OFF# mv /usr/lib/sasl2 /usr/lib/sasl2.OFF编

29、译安装cyrus-sasl-2.1.23.tar.gz# wget /pub/cyrus-mail/ cyrus-sasl-2.1.23.tar.gz# cd cyrus-sasl-2.1.23# ./configure -disable-anon -enable-plain -enable-login -enable-sql -with-mysql=/usr/local/mysql -with-mysql-includes=/usr/local/mysql/include/mysql -with-mysql-libs=/usr/local/mys

30、ql/lib/mysql -with-authdaemond# make# make install# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2 /sasl的安装目录是/usr/local/lib/sasl# echo "/usr/local/lib" >> /etc/ld.so.conf /指定动态连接库的位置# ldconfig /共享动态链接库生效(2) 配置创建文件 /usr/local/lib/sasl2/smtpd.conf,并加入如下内容:# vi /usr/local/lib/sasl2/smtpd.co

31、nfpwcheck_method: authdaemondmech_list: PLAIN LOGINlog_level: 3authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket 最后一行authdaemond_paeth的设置来自anthlib 的配置文件authlibdaemonrc,千万不要把这个弄错了,我当初的smtp验证一直通不过就是由于这个原因。通过查看进程也可以知道这个路径6、安装postfix 2.6.2如果你的系统上原来有sendmail,先将其停止并将其文件改名:# /etc/ini

32、t.d/sendmail stop# chkconfig -level 0123456 sendmail off# mv /usr/bin/newaliases /usr/bin/newaliases.orig# mv /usr/bin/mailq /usr/bin/mailq.orig# mv /usr/sbin/sendmail /usr/sbin/sendmail.orig开始安装#groupadd -g 12345 postfix#useradd -u 12345 -g 12345 -c postfix -d/dev/null -s/bin/false postfix#groupadd

33、 -g 54321 postdrop建立/mail并设置权限# mkdir /mail # chown -R root:mysql /mail# chmod -R ug+rwx,o-rwx /mail# wget # tar -zxvf postfix-2.6.2.tar.gz下载VDA补丁,使postfix支持磁盘限额# wget # gzip -d postfix-2.6.2-vda-ng.patch.gz# cd postfix-2.6.2打补丁# patch -p1 < ./postfix-2.6.2-vda-ng.patch#make -f Makefile.init make

34、files '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 # make install程序先自动执行一阵子,然后会进入交互状态,等待用户的输入,一般情况下,一路回车即可完成所有的安装。# mv /etc/aliases /et

35、c/aliases.old# ln -s /etc/postfix/aliases /etc/aliases# echo 'root: admin'>>/etc/postfix/aliases# /usr/bin/newaliases注意:本例中Mysql安装在/usr/lcoal/mysql,sasl2安装在/usr/lib/sasl2。如果安装路径不同,请自行修改编译时CCARGS和AUXLIBS选项。在执行make install的时候可能会得到如下的提示(如果没有就不用管了):/usr/libexec/ld-elf.so.1: Shared object &

36、quot;libmysqlclient.so.12" not found这是因为mysql不是安装在默认目录中的,所以需要告诉postfix应该到哪里去找libmysqlclient.so.12,使用ldconfig就可以达到这个目的:# echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf# ldconfig/etc/postfix/main.cf修改后的文件如下所示:#more /etc/postfix/main.cfconfig_directory = /etc/postfixreadme_directory = no

37、sample_directory = /etc/postfixsendmail_path = /usr/sbin/sendmailhtml_directory = nosetgid_group = postdropcommand_directory = /usr/sbinmanpage_directory = /usr/local/mandaemon_directory = /usr/libexec/postfixnewaliases_path = /usr/bin/newaliasesmailq_path = /usr/bin/mailqqueue_directory = /var/spoo

38、l/postfixmail_owner = postfix#content_filter = smtp-amavis::10024#max_use = 10#=BASE=myhostname = mydomain = myorigin = $mydomainmydestination = $myhostname localhost localhost.$mydomainmynetworks = /8 /24inet_interfaces = all#=Vritual Mailbox settings=virtual_mailbox_b

39、ase = /mail/virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cfvirtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cfvirtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cfvirtual_uid_maps = static:1001virtual_gid_maps = static:10

40、01virtual_transport = maildropmaildrop_destination_recipient_limit = 1maildrop_destination_concurrency_limit = 1#=QUOTA=message_size_limit = 14336000virtual_mailbox_limit = 20971520virtual_create_maildirsize = yesvirtual_mailbox_extended = yesvirtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mys

41、ql_virtual_mailbox_limit_maps.cfvirtual_mailbox_limit_override = yesvirtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.virtual_overquota_bounce = yes#=SASL=broken_sasl_auth_clients = yessmtpd_recipient_restrictions = permit_mynetwo

42、rks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination,permitsmtpd_sasl_auth_enable = yessmtpd_sasl_local_domain =s

43、mtpd_sasl_security_options = noanonymoussmtpd_sasl_application_name = smtpdsmtpd_banner=$myhostname ESMTP "Version not Available"alias_maps = hash:/etc/aliasesunknown_local_recipient_reject_code = 550建立/etc/postfix/mysql文件夹和MySQL查询配置文件# mkdir /etc/postfix/mysql1、vi /etc/postfix/mysql/mysql

44、_virtual_alias_maps.cfuser = postfixpassword = postfixhosts = localhostdbname = postfixtable = aliasselect_field = gotowhere_field = address2、vi /etc/postfix/mysql/mysql_virtual_domains_maps.cfuser = postfixpassword = postfixhosts = localhostdbname = postfixquery = SELECT domain FROM domain WHERE do

45、main='%s' AND backupmx = 0 AND active = 13、vi /etc/postfix/mysql/mysql_virtual_mailbox_maps.cfuser = postfixpassword = postfixhosts = localhostdbname = postfixtable = mailboxselect_field = maildirwhere_field = username#additional_conditions = and active = '1'4、vi /etc/postfix/mysql/m

46、ysql_virtual_mailbox_limit_maps.cfuser = postfixpassword = postfixhosts = localhostdbname = postfixtable = mailboxselect_field = quotawhere_field = username#additional_conditions = and active = '1'7.安装postfixadmin 2.3.2# vi /usr/local/apache/conf/httpd.conf把User nobodyGroup #-1改为User vmailGr

47、oup vmail# wget http:/cdnetworks-kr- # tar -zxvf postfixadmin-2.3.2.tgz# mv postfixadmin-2.3.2 /web/postfixadmin更改权限,假定运行apache的用户和组为vmail# chown -R vmail:vmail /web/postfixadmin# cd /web/postfixadmin# chmod 640 *.php *.css# cd /web/postfixadmin/admin/# chmod 640 *.php .ht*# cd /web/postfixadmin/ima

48、ges/# chmod 640 *.gif *.png# cd /web/postfixadmin/languages/# chmod 640 *.lang# cd /web/postfixadmin/templates/# chmod 640 *.tpl# cd /web/postfixadmin/users/# chmod 640 *.php建立mysql表#mysql u root p /进入MYSQL编辑状态mysql>CREATE DATABASE postfix;mysql>CREATE USER 'postfix''localhost'

49、 IDENTIFIED BY 'postfix'mysql>GRANT ALL PRIVILEGES ON postfix . * TO 'postfix''localhost'mysql>flush privileges;mysql>quit;# vi config.inc.php本例中的配置如下:/$CONF'configured' = false;$CONF'configured' = true;/ Language config/ Language files are located in

50、 './languages'.$CONF'default_language' = 'cn' / Database Config/ 'database_type' is for future reference.$CONF'database_type' = 'mysql'$CONF'database_host' = 'localhost'$CONF'database_user' = 'postfix'$CONF'database_

51、password' = 'postfix'$CONF'database_name' = 'postfix'/ Mailboxes/ If you want to store the mailboxes per domain set this to 'YES'./ Example: /usr/local/virtual/domain.tld/usernamedomain.tld$CONF'domain_path' = 'YES'/ If you don't want to have t

52、he domain in your mailbox set this to 'NO'./ Example: /usr/local/virtual/domain.tld/username$CONF'domain_in_mailbox' = 'NO'/ Quota/ When you want to enforce quota for your mailbox users set this to 'YES'.$CONF'quota' = 'YES'/ You can either use '10

53、24000' or '1048576'$CONF'quota_multiplier' = '1024000'我们在这里使用明文口令方式,如果想使用密文,请把$CONF'encrypt'='cleartext'改成$CONF'encrypt'='md5crypt'邮箱的存储格式使用domain.ltd/username的形式,所以设置:$CONF'domain_path' = 'YES'$CONF'domain_in_mailbox' = 'NO'然后打开浏览器,进入 $CONF'setup_password' = 'changeme'修改,刷新页面,记得要删除setup.php文件。然后进入注: 这里php需要php5-mbstring和php5-imap支持安装方法:进入源文件#cd /usr/local/src/php-5.2.10/ext/mbstring#/usr/local/php/bin/phpize# ./configure -with-php-config=/usr/local/php/bin/p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论