免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 31955 | 回复: 49
打印 上一主题 下一主题

[FreeBSD] FreeBSD8.0+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-19 16:11 |只看该作者 |倒序浏览
FreeBSD8.0+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装
-------------------
Changelog 20091218
-------------------
增加 安装amavisd-new出现*** Error code 1错误解决方法
修正 https访问不正常提示没权限
增加 ports.tar直接使用,不用每次安装都要下载
增加 ExtMan/1.0.1后台显示freebsd-cmd
修正 ExtMan/1.0.1后台显示信息
增加 修改MYSQL数据库位置方法
修正 ExtMan/1.0.1后台图形日志没有开机启动
增加 修改WIN下面hosts文件,方便测试
增加 WEB配置,不仅仅只是邮件服务器

本文省略部分请看
FreeBSD7.0+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装
http://bbs3.chinaunix.net/thread-1119098-1-1.html
FreeBSD7.1+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装
http://bbs3.chinaunix.net/thread-1389722-1-1.html

FreeBSD邮件交流群QQ群: (1610895)

参考文章:
1. http://www.extmail.org/docs/extmail_solution_freebsd/
2. http://www.yiyou.org/docs/freebsd_postfix_03/

在本例中,机器名:mail.extmail.org
域名:extmail.org
默认网关:192.168.1.1
IP地址:192.168.1.8

整个邮件解决方案由如下软件组成:
功能模块 内容 备注
操作系统(OS)      FreeBSD  是一个优秀的unix操作系统,基于宽松的BSD协议
邮件传输代理(MTA) Postfix  邮件传输代理
数据库/目录服务     MySQL    可选MySQL或其他版本
邮件投递代理(MDA) maildrop 支持过滤和强大功能
Web帐户管理后台     extman   支持无限域名、无限用户
POP3 服务器    Courier-IMAP  支持pop3/pop3s/imap/imaps,功能强大,可根据需要选择
WebMail 系统        ExtMail  支持多语言、全部模板化,功能基本齐全
防病毒软件(Anti-Virus) ClamAV  最热门的开源杀毒软件
内容过滤器 Amavisd-new Content-Filter软件,支持与clamav/sa的挂接
内容级别的反垃圾邮件工具 SpamAssassin 著名的SA,可以支持大量规则,但速度较慢
SMTP认证库 Cyrus SASL 标准的SASL实现库,可以支持Courier authlib
其他数据认证库 Courier Authlib  是maildrop, courier-imap等服务的关键部件
日志分析及显示 mailgraph_ext 在ExtMan中已经包含了
Web 服务器 Apache 最新版的apache服务器,默认支持ssl模块
maillist软件 Mailman 功能强大的邮件列表软件,支持基于web的管理

操作系统安装
操作系统迷你安装
http://bbs3.chinaunix.net/thread-1602387-1-1.html

安装时的注意事项
1,磁盘分区

由于是邮件系统,相关的日志和queue都会保存在var分区内,因此var分区要有足够的空间。以一块硬盘73G/内存3G的服务器为例,可做如下分区:

/  512m
swap 4096m
/var 5g
/tmp 512m
/usr 8g(尽量保证有10G左右)
/home 50g(剩下所有的空间)

2,软件包的选择

我们的邮件系统是要对外服务的,所以尽可能少的选择软件包,安装时建议选择Minimal,然后进入Custom选择doc,info,man,src即可。

配置

1,编辑/etc/rc.conf确保有如下内容:
  1. sshd_enable="YES"
  2. named_enable="YES"
  3. sendmail_enable="NONE"
复制代码
编辑/etc/resolv.conf确保第一条nameserver记录是127.0.0.1,这样本地DNS缓存才有效,类似如下:
  1. domain  extmail.org
  2. nameserver      127.0.0.1
  3. nameserver      61.153.177.199
复制代码
然后执行如下命令:
/etc/rc.d/named start

2,根据硬件的配置重新编译内核  (省略)
   更新ports
  1. pkg_add -r cvsup-without-gui
  2. rehash

  3. cvsup -gL2 /usr/share/examples/cvsup/ports-supfile -h cvsup.freebsdchina.org
  4. 或者
  5. cvsup -L 2 -h cvsup2.cn.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
复制代码


或者  下载ports.tar直接使用


下载ports.tar
  (提取码 5b0ecc79)

上传然后将ports.tar移动到/usr下,解压
mv ports.tar /usr/
tar zxvf ports.tar


整个系统的安装全过程都要求以root身份执行。并能够访问Internet。

安装前的准备

下面的安装过程中弹出安装选择IPV6的一律取消,文档里面有提示选择的
按提示选择,没有的地方就按默认选择。


增加一个存储邮件的帐号和组(vmail)
执行如下命令
  1. pw group add vmail -g 1000
  2. pw user add vmail -u 1000 -g 1000 -s /sbin/nologin -d /dev/null
复制代码
给test用户创建路径
需要一个测试帐号test@extmail.org,需要准备该账号的路径。
  1. mkdir -p /home/domains/extmail.org/test/Maildir/new
  2. mkdir -p /home/domains/extmail.org/test/Maildir/cur
  3. mkdir -p /home/domains/extmail.org/test/Maildir/tmp
  4. chown -R vmail:vmail /home/domains/
  5. chmod -R 700 /home/domains/
复制代码
ExtMan的安装
由于在安装过程中要使用ExtMan里面带的文件,因此在此先安装ExtMan。安装时根据个人需要选择MySQL或者mysql支持。
  1. cd /usr/ports/mail/extman/ && make install clean
  2. 安装时选择mysql
  3. 小技巧
  4. cd /usr/ports/databases/mysql50-server/
  5. ee Makefile
  6. CONFIGURE_ARGS= --localstatedir=/var/db/mysql
  7. 改为
  8. CONFIGURE_ARGS= --localstatedir=/home/db/mysql
  9. 安装完MYSQL之后修改/usr/local/etc/rc.d/mysql-server大概34行
  10. ee /usr/local/etc/rc.d/mysql-server
  11. ${mysql_dbdir="/var/db/mysql"}
  12. 改为
  13. ${mysql_dbdir="/home/db/mysql"}
复制代码
安装mysql
  1. cd /usr/ports/databases/mysql50-server/ && make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
复制代码
编辑/etc/rc.conf

执行ee /etc/rc.conf
加入mysql_enable="YES"
复制 MySQL  配置文件
  1. cp /usr/local/share/mysql/my-huge.cnf /usr/local/etc/my.cnf

  2. 启动 mysql-server
  3. /usr/local/bin/mysql_install_db --user=mysql
  4. /usr/local/etc/rc.d/mysql-server start
复制代码
修改root用户的密码
/usr/local/bin/mysqladmin -u root -p password
Enter password:

安装 openssl
cd /usr/ports/security/openssl/ && make install clean
安装配置文件
cp /usr/local/openssl/openssl.cnf.sample /usr/local/openssl/openssl.cnf

安装配置courier-imap POP3/IMAP
Courier-IMAP是一个提供POP3、IMAP服务的程序,能够很方便的配置使其支持加密协议POP3s、IMAPs。并良好的支持Maildir。
Courier-imap的安装
安装时选择(如果你使用MySQL认证,则选择AUTH_MYSQL):

OPENSSL
TRASHQUOTA
AUTH_MYSQL

执行cd /usr/ports/mail/courier-imap/ && make install clean
安装时选择 TRASHQUOTA  AUTH_MYSQL

Authlib的配置
执行mv /usr/local/etc/authlib/authdaemonrc /usr/local/etc/authlib/authdaemonrc.bak
编辑/usr/local/etc/authlib/authdaemonrc文件,内容类似如下:
  1. authmodulelist="authmysql"
  2. authmodulelistorig="authmysql"
  3. version="authdaemond.mysql"
  4. daemons=5
  5. authdaemonvar=/var/run/authdaemond
  6. subsystem=mail
  7. DEBUG_LOGIN=0
  8. DEFAULTOPTIONS="wbnodsn=1"
  9. LOGGEROPTS=""
复制代码
增加/var/run/authdaemond的执行权限,在FreeBSD系统下,其他用户默认没有执行权限
执行chmod +x /var/run/authdaemond
执行mv /usr/local/etc/authlib/authmysqlrc /usr/local/etc/authlib/authmysqlrc.bak
编辑/usr/local/etc/authlib/authmysqlrc文件,内容类似如下:
  1. MYSQL_SERVER          localhost
  2. MYSQL_USERNAME   extmail
  3. MYSQL_PASSWORD   extmail
  4. MYSQL_PORT          0
  5. MYSQL_OPT          0
  6. MYSQL_DATABASE   extmail
  7. MYSQL_SELECT_CLAUSE         SELECT username,password,"",uidnumber,gidnumber,\
  8. CONCAT('/home/domains/',homedir),         \
  9. CONCAT('/home/domains/',maildir),         \
  10. quota,         \
  11. name         \
  12. FROM mailbox         \
  13. WHERE username = '$(local_part)@$(domain)'
复制代码
配置支持POP3s
拷贝一份配置文件
cp /usr/local/etc/courier-imap/pop3d.cnf.dist /usr/local/etc/courier-imap/pop3d.cnf

编辑/usr/local/etc/courier-imap/pop3d.cnf文件,类似如下:
  1. RANDFILE = /usr/local/share/courier-imap/pop3d.rand

  2. [ req ]
  3. default_bits = 1024
  4. encrypt_key = yes
  5. distinguished_name = req_dn
  6. x509_extensions = cert_type
  7. prompt = no

  8. [ req_dn ]
  9. C=CN
  10. ST=BJ
  11. L=Bei Jing
  12. O=Extmail
  13. OU=extmail
  14. CN=extmail.org
  15. emailAddress=ppabc@qq.com


  16. [ cert_type ]
  17. nsCertType = server
复制代码
执行如下命令产生供POP3s使用的证书

/usr/local/sbin/mkpop3dcert

配置支持IMAPs
拷贝一份配置文件

cp /usr/local/etc/courier-imap/imapd.cnf.dist /usr/local/etc/courier-imap/imapd.cnf
编辑/usr/local/etc/courier-imap/imapd.cnf文件,类似如下:
  1. RANDFILE = /usr/local/share/courier-imap/imapd.rand

  2. [ req ]
  3. default_bits = 1024
  4. encrypt_key = yes
  5. distinguished_name = req_dn
  6. x509_extensions = cert_type
  7. prompt = no

  8. [ req_dn ]
  9. C=CN
  10. ST=BJ
  11. L=Bei Jing
  12. O=Extmail
  13. OU=extmail
  14. CN=extmail.org
  15. emailAddress=ppabc@qq.com


  16. [ cert_type ]
  17. nsCertType = server
复制代码
执行如下命令产生供IMAP使用的证书
/usr/local/sbin/mkimapdcert

配置自动启动
编辑/etc/rc.conf文件,添加如下行:
  1. courier_authdaemond_enable="YES"
  2. courier_imap_pop3d_enable="YES"
  3. courier_imap_imapd_enable="YES"
  4. courier_imap_pop3d_ssl_enable="YES"
  5. courier_imap_imapd_ssl_enable="YES"
复制代码
这5行的作用分别是在开机时:启动authdaemond,启动pop3d,启动imapd,启动pop3d-ssl,启动imapd-ssl。也可以使用命令行来控制这些进程的启动或者停止。
/usr/local/etc/rc.d/courier-authdaemond start/stop
/usr/local/etc/rc.d/courier-imap-pop3d start/stop
/usr/local/etc/rc.d/courier-imap-imapd start/stop
/usr/local/etc/rc.d/courier-imap-pop3d-ssl start/stop
/usr/local/etc/rc.d/courier-imap-imapd-ssl start/stop


Postfix的安装和配置-MTA
MTA在邮件系统中处于非常重要的位置,他负责接收其他人给你发的信,并且负责把你的信转发到目的地。选择一个靠谱的MTA对建立邮件来说意义重大,因此我们使用Postfix!! 。另外MTA部分在邮件系统中的开发难度是最高的,起到的作用也是最大的,因此我们也常拿MTA的名字来称呼自己的邮件系统,比如:我常说我的邮件系统是Postfix。

安装postfix
安装时选择(如果你使用MySQL验证,可以选择MYSQL):

PCRE
SASL2
TLS
MYSQL
VDA
TEST

cd /usr/ports/mail/postfix/ && make install clean
安装时选择PCRE SASL2 TLS MYSQL VDA TEST


一会有遇到要选择Y/N 先y   然后n  在这里当安装到SASL2不要选择选择 MYSQL 其他默认
否则会有Postfix:Sql_select option missing错误出现
Postfix:Sql_select option missing问题解决及原因请看http://ppabc.cn/wlwz/585.html


配置postfix
编辑/etc/rc.conf,增加如下一行

postfix_enable="YES"
编辑/etc/aliases,确保有如下一行
postfix: root
替换掉系统带的sendmail程序
mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
cp /usr/local/sbin/sendmail /usr/sbin/sendmail

编辑/etc/periodic.conf,加入如下内容,禁掉sendmail的自动维护。
  1. daily_clean_hoststat_enable="NO"
  2. daily_status_mail_rejects_enable="NO"
  3. daily_status_include_submit_mailq="NO"
  4. daily_submit_queuerun="NO"
复制代码
执行如下命令
  1. /usr/local/sbin/postalias /etc/aliases
  2. chown postfix:postfix /etc/opiekeys
  3. /usr/local/sbin/postconf -e 'mydomain = extmail.org'
  4. /usr/local/sbin/postconf -e 'myhostname = mail.extmail.org'
  5. /usr/local/sbin/postconf -e 'myorigin = $mydomain'
  6. /usr/local/sbin/postconf -e 'virtual_mailbox_base = /home/domains'
  7. /usr/local/sbin/postconf -e 'virtual_uid_maps=static:1000'
  8. /usr/local/sbin/postconf -e 'virtual_gid_maps=static:1000'
复制代码
执行如下命令对查询表进行配置
  1. cp /usr/local/www/extman/docs/mysql_virtual_* /usr/local/etc/postfix/
  2. /usr/local/sbin/postconf -e 'virtual_alias_maps = $alias_maps, mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf'
  3. /usr/local/sbin/postconf -e 'virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf'
  4. /usr/local/sbin/postconf -e 'virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf'
复制代码
SMTP认证设置
编辑/usr/local/lib/sasl2/smtpd.conf
  1. pwcheck_method:authdaemond
  2. log_level:3
  3. mech_list:PLAIN LOGIN
  4. authdaemond_path:/var/run/authdaemond/socket
复制代码
对postfix做如下配置使支持smtp认证
  1. /usr/local/sbin/postconf -e 'smtpd_sasl_auth_enable=yes'
  2. /usr/local/sbin/postconf -e 'broken_sasl_auth_clients = yes'
  3. /usr/local/sbin/postconf -e 'smtpd_sasl_local_domain = $myhostname'
复制代码
postfix反垃圾设置
此处的反垃圾邮件只是在MTA级的一些预防垃圾邮件的设置,可根据实际情况以及自己的需要进行调整。
  1. /usr/local/sbin/postconf -e 'smtpd_helo_required=yes'
  2. /usr/local/sbin/postconf -e 'smtpd_delay_reject=yes'
  3. /usr/local/sbin/postconf -e 'disable_vrfy_command=yes'
  4. /usr/local/sbin/postconf -e 'smtpd_client_restrictions = check_client_access hash:/usr/local/etc/postfix/client_access'
  5. /usr/local/sbin/postconf -e 'smtpd_helo_restrictions=reject_invalid_hostname,check_helo_access hash:/usr/local/etc/postfix/helo_access'
  6. /usr/local/sbin/postconf -e 'smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, check_sender_access hash:/usr/local/etc/postfix/sender_access'
  7. /usr/local/sbin/postconf -e 'smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_recipient_domain'
  8. /usr/local/sbin/postconf -e 'smtpd_data_restrictions=reject_unauth_pipelining'
  9. /usr/local/sbin/postconf -e 'header_checks = regexp:/usr/local/etc/postfix/head_checks'
  10. /usr/local/sbin/postconf -e 'body_checks = regexp:/usr/local/etc/postfix/body_checks'
  11. touch /usr/local/etc/postfix/head_checks
  12. touch /usr/local/etc/postfix/body_checks
  13. touch /usr/local/etc/postfix/client_access
  14. touch /usr/local/etc/postfix/sender_access
  15. touch /usr/local/etc/postfix/helo_access
  16. /usr/local/sbin/postmap /usr/local/etc/postfix/head_checks
  17. /usr/local/sbin/postmap /usr/local/etc/postfix/body_checks
  18. /usr/local/sbin/postmap /usr/local/etc/postfix/client_access
  19. /usr/local/sbin/postmap /usr/local/etc/postfix/sender_access
  20. /usr/local/sbin/postmap /usr/local/etc/postfix/helo_access
复制代码
TLS设置
生成证书,在这里默认私钥的访问密码为123qwe98,请根据自己的情况决定,以后可能会用得到。
  1. mkdir -p /usr/local/etc/postfix/certs/CA
  2. cd /usr/local/etc/postfix/certs/CA
  3. mkdir certs crl newcerts private
  4. echo "01" > serial
  5. touch index.txt
  6. cp /usr/local/openssl/openssl.cnf        .
复制代码

这个地方要注意上面这句后面有个点,也可以执行cp /usr/local/openssl/openssl.cnf /usr/local/etc/postfix/certs/CA/
编辑openssl.cnf 其中 dir = /usr/local/etc/postfix/certs/CA 这个地方一定要看,很多朋友证书不能生成就是因为这个地方

编辑openssl.cnf,确认dir参数的值是/usr/local/etc/postfix/certs/CA。然后继续执行如下命令,并根据情况输入信息。输入信息类似如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BJ
Locality Name (eg, city) []:Bei Jing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Extmail
Organizational Unit Name (eg, section) []:extmail
Common Name (eg, YOUR name) []:extmail.org
Email Address []:ppabc@qq.com

这里的信息是 POP3s 证书 IMAP 证书 下面输入信息要一致


命令如下:
openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 3650 -config openssl.cnf
按照前面输入的信息输入
openssl req -nodes -new -x509 -keyout mykey.pem -out myreq.pem -days 3650 -config openssl.cnf
按照前面输入的信息输入
  1. openssl x509 -x509toreq -in myreq.pem -signkey mykey.pem -out tmp.pem
  2. openssl ca -config openssl.cnf -policy policy_anything -out mycert.pem -infiles tmp.pem
  3. rm tmp.pem
  4. cp cacert.pem /usr/local/etc/postfix/certs/
  5. cp mycert.pem /usr/local/etc/postfix/certs/
  6. cp mykey.pem /usr/local/etc/postfix/certs/
  7. cd /usr/local/etc/postfix/certs/
  8. chown root:wheel cacert.pem mycert.pem
  9. chown root:postfix mykey.pem
  10. chmod 755 cacert.pem
  11. chmod 644 mycert.pem
  12. chmod 440 mykey.pem
  13. ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem `.0
复制代码
配置postfix支持TLS
  1. /usr/local/sbin/postconf -e 'smtpd_use_tls=yes'
  2. /usr/local/sbin/postconf -e 'smtpd_tls_auth_only=no'
  3. /usr/local/sbin/postconf -e 'smtp_tls_CAfile = /usr/local/etc/postfix/certs/cacert.pem'
  4. /usr/local/sbin/postconf -e 'smtp_tls_cert_file = /usr/local/etc/postfix/certs/mycert.pem'
  5. /usr/local/sbin/postconf -e 'smtp_tls_key_file = /usr/local/etc/postfix/certs/mykey.pem'
  6. /usr/local/sbin/postconf -e 'smtpd_tls_CAfile=/usr/local/etc/postfix/certs/cacert.pem'
  7. /usr/local/sbin/postconf -e 'smtpd_tls_cert_file=/usr/local/etc/postfix/certs/mycert.pem'
  8. /usr/local/sbin/postconf -e 'smtpd_tls_key_file=/usr/local/etc/postfix/certs/mykey.pem'
  9. /usr/local/sbin/postconf -e 'smtpd_tls_received_header=yes'
  10. /usr/local/sbin/postconf -e 'smtpd_tls_loglevel=3'
  11. /usr/local/sbin/postconf -e 'smtpd_starttls_timeout=60s'
复制代码
/usr/local/etc/postfix/master.cf
配置master.cf,添加如下信息
  1. smtps     inet  n       -       n       -       -       smtpd
  2.   -o smtpd_tls_wrappermode=yes
  3.   -o smtpd_sasl_auth_enable=yes
  4.   -o smtpd_client_restrictions=permit_sasl_authenticated,reject
复制代码
Maildrop的安装和配置-MDA
MDA-邮件分发代理。他从MTA那儿拿到信,然后存入您的邮箱里面。MDA在投递邮件到您的目录里面时,会先对邮件进行一些过滤,过滤规则会根据您的配置文件来进行。1,进行全局过滤设置,读取/etc/maildroprc(Linux)或者/usr/local/etc/maildroprc(BSD),根据配置该配置文件执行相应的操作,影响到所有用户;2,根据每个用户的配置进行过滤,读取$HOME/.mailfilter,根据每个用户的设置进行相应的操作,仅影响单个用户。基于这样的特点,WEBMAIL通过编辑$HOME/.mailfilter可以实现一些特色化的东西,比如:黑白名单、SPAM自动转入垃圾邮件夹、SMS提醒等等。


安装maildrop
cd /usr/ports/mail/maildrop/ && make WITH_AUTHLIB=yes install clean
安装时选择mysql

修改master.cf   /usr/local/etc/postfix/master.cf
修改master.cf的maildrop,类似修改为:
  1. #maildrop  unix  -       n       n       -       -       pipe
  2. #  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
  3. maildrop  unix  -       n       n       -       -       pipe
  4.   flags=DRhu user=vmail:vmail argv=/usr/local/bin/maildrop -w 90 -d ${recipient}
复制代码
/usr/local/etc/postfix/main.cf
修改main.cf
  1. /usr/local/sbin/postconf -e 'virtual_transport=maildrop:'
  2. /usr/local/sbin/postconf -e 'maildrop_destination_concurrency_limit=1'
  3. /usr/local/sbin/postconf -e 'maildrop_destination_recipient_limit=1'
复制代码
编辑文件/usr/local/etc/maildroprc
确保是如下内容:
  1. logfile "/home/domains/maildrop.log"
  2. #logfile "/var/log/maildrop.log"
  3. TEST="/bin/test -f"
  4. #
  5. # Check for custom user .mailfilter file
  6. #
  7. CUSTOM_FILTER="$HOME/.mailfilter"
  8. `$TEST $CUSTOM_FILTER && exit 1 || exit 0`
  9. if ( $RETURNCODE == 0 )
  10. {
  11.         to "$HOME/Maildir"
  12. }
复制代码

[ 本帖最后由 ppabc 于 2009-12-19 16:16 编辑 ]

评分

参与人数 1可用积分 +10 收起 理由
OraBSD + 10 支持!

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-12-19 16:12 |只看该作者
安装配置Apache

安装apache
添加了这两个参数的意思是,支持suexec模块,改变suexec_docroot的路径。但在本文中并没有在虚拟主机中使用suexec,在此编译进去是为了方便测试,以及方便以后可能会使用到的朋友。其他选项使用默认的即可。
cd /usr/ports/www/apache22/ && make WITH_SUEXEC=yes SUEXEC_DOCROOT=/usr/local/www WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes install clean
使用默认的即可

配置/etc/rc.conf
添加如下一行
apache22_enable="YES"
修改apache的配置文件/usr/local/etc/apache22/httpd.conf,使apache运行时的权限为vmail:vmail
User vmail
Group vmail

虚拟主机配置
编辑/usr/local/etc/apache22/Includes/extmail.conf

  1. NameVirtualHost *:80
  2. <VirtualHost *:80>
  3.     ServerName mail.extmail.org
  4.     DocumentRoot /usr/local/www/extmail/html/

  5.     ScriptAlias /extmail/cgi /usr/local/www/extmail/cgi/
  6.     Alias /extmail /usr/local/www/extmail/html/
  7.     ScriptAlias /extman/cgi "/usr/local/www/extman/cgi/"
  8.     Alias /extman "/usr/local/www/extman/html/"

  9.     <Location "/extman/cgi">
  10.         SetHandler cgi-script
  11.         Options +ExecCGI
  12. #      AllowOverride All
  13.     </Location>
  14.     <Directory "/usr/local/www">
  15.         AllowOverride None
  16.         Options None
  17.         Order allow,deny
  18.         Allow from all
  19.     </Directory>

  20. #    SuexecUserGroup vmail vmail
  21. </VirtualHost>
复制代码


配置支持https
复制一份证书到apache的目录
mkdir -p /usr/local/etc/apache22/certs/
cp /usr/local/etc/postfix/certs/*.pem /usr/local/etc/apache22/certs/

编辑文件/usr/local/etc/apache22/Includes/extmail-ssl.conf,内容如下

  1. Listen 443

  2. AddType application/x-x509-ca-cert .crt
  3. AddType application/x-pkcs7-crl    .crl

  4. SSLPassPhraseDialog  builtin
  5. SSLSessionCache        shmcb:/var/run/ssl_scache(512000)
  6. SSLSessionCacheTimeout  300
  7. SSLMutex  file:/var/run/ssl_mutex

  8. <VirtualHost _default_:443>

  9. DocumentRoot "/usr/local/www/extmail/html"
  10. ServerName mail.extmail.org:443

  11. ScriptAlias /extmail/cgi /usr/local/www/extmail/cgi/
  12. Alias /extmail /usr/local/www/extmail/html/
  13. ScriptAlias /extman/cgi "/usr/local/www/extman/cgi/"
  14. Alias /extman "/usr/local/www/extman/html/"

  15. ServerAdmin [email]ppabc@qq.com[/email]
  16. ErrorLog /var/log/httpd-error.log
  17. TransferLog /var/log/httpd-access.log
  18. SSLEngine on
  19. SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
  20. #SSLCertificateFile /usr/local/etc/apache22/server.crt
  21. #SSLCertificateKeyFile /usr/local/etc/apache22/server.key

  22. SSLCertificateFile /usr/local/etc/apache22/certs/mycert.pem
  23. SSLCertificateKeyFile /usr/local/etc/apache22/certs/mykey.pem

  24. <FilesMatch "\.(cgi|shtml|phtml|php)$">
  25.     SSLOptions +StdEnvVars
  26. </FilesMatch>
  27. <Directory "/usr/local/www/apache22/cgi-bin">
  28.     SSLOptions +StdEnvVars
  29. </Directory>
  30. BrowserMatch ".*MSIE.*" \
  31.          nokeepalive ssl-unclean-shutdown \
  32.          downgrade-1.0 force-response-1.0
  33. CustomLog /var/log/httpd-ssl_request.log \
  34.           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  35. #SuexecUserGroup vmail vmail
  36. </VirtualHost>

  37. # //另外加上,以前HTTPS无权限访问就是因为这里
  38. <Location "/extman/cgi">
  39.         SetHandler cgi-script
  40.         Options +ExecCGI
  41. #      AllowOverride All
  42.     </Location>
  43.     <Directory "/usr/local/www">
  44.         AllowOverride None
  45.         Options None
  46.         Order allow,deny
  47.         Allow from all
  48.     </Directory>
复制代码


安装配置Extmail
Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件。完整的支持Maildir++, 多字符、多语言支持,支持模版技术、方便的为自己定制界面等等。


安装extmail
安装不需要选择MySQL,mysql,因为在安装ExtMan的时候已经把这些包装上了。
cd /usr/ports/mail/extmail && make install clean
安装不需要选择MySQL

复制一份配置文件
cp /usr/local/www/extmail/webmail.cf.default /usr/local/www/extmail/webmail.cf
编辑/usr/local/www/extmail/webmail.cf,修改对应的参数如下

  1. SYS_CONFIG = /usr/local/www/extmail/        
  2. SYS_LANGDIR = /usr/local/www/extmail/lang        
  3. SYS_TEMPLDIR = /usr/local/www/extmail/html
  4. SYS_SESS_DIR = /var/tmp/extmail/
  5. SYS_LOG_TYPE = file
  6. SYS_USER_LANG = zh_CN
  7. SYS_USER_CHARSET = utf-8
  8. SYS_AUTH_TYPE = mysql
  9. SYS_MAILDIR_BASE = /home/domains
  10. SYS_MYSQL_USER = extmail
  11. SYS_MYSQL_PASS = extmail
  12. SYS_MYSQL_DB = extmail
  13. SYS_MYSQL_HOST = localhost
  14. SYS_MYSQL_SOCKET = /tmp/mysql.sock
复制代码


执行如下命令

  1. mkdir /var/tmp/extmail
  2. chown vmail:vmail /var/tmp/extmail/
  3. chmod 777 /var/tmp/extmail
  4. touch /var/log/extmail.log
  5. chown vmail:vmail /var/log/extmail.log
  6. chown -R vmail:vmail /usr/local/www/extmail/
  7. chown vmail:vmail /var/log/extmail.log
复制代码


配置ExtMan
ExtMan是一个基于Web的邮件帐号管理系统。可以通过他来管理邮件帐号、管理员帐号和域名等,默认的超级用户是 root@extmail.org,密码是extmail*123* ExtMan还集成了mailgraph,可以ExtMan内看到整个邮件系统的相关状态流量图。使用ExtMan来管理您的邮件系统将使工作变得更加轻松。之前我们已经安装了ExtMan,在此直接配置webman.cf即可。


配置extman
编辑/usr/local/www/extman/webman.cf,修改对应的参数如下

  1. SYS_CONFIG = /usr/local/www/extman/
  2. SYS_LANGDIR = /usr/local/www/extman/lang
  3. SYS_TEMPLDIR = /usr/local/www/extman/html
  4. SYS_MAILDIR_BASE = /home/domains
  5. SYS_SESS_DIR = /var/tmp/extman/
  6. SYS_PSIZE = 50
  7. SYS_LANG = zh_CN
  8. SYS_DEFAULT_MAXQUOTA = 10000
  9. SYS_DEFAULT_MAXALIAS = 10000
  10. SYS_DEFAULT_MAXUSERS = 1000
  11. SYS_DEFAULT_MAXNDQUOTA = 100
  12. SYS_BACKEND_TYPE = mysql
  13. SYS_CRYPT_TYPE = md5crypt
  14. SYS_MYSQL_USER = webman
  15. SYS_MYSQL_PASS = webman
  16. SYS_MYSQL_DB = extmail
  17. SYS_MYSQL_HOST = localhost
  18. SYS_MYSQL_SOCKET = /tmp/mysql.sock
复制代码


下载 效果和hosts.rar 里面有个conf.tar解压后extmail]webmail.cf和extman]webman.cf


效果和hosts.rar
  (提取码 91bfcfd4)



如果不想那么麻烦MYSQL密码没改过的话,可以直接FTP传上去覆盖


  1. mv /usr/local/www/extmail/webmail.cf /usr/local/www/extmail/webmail.cf.bak
  2. cp /home/ppabc1/extmail]webmail.cf /usr/local/www/extmail/webmail.cf
  3. mv /usr/local/www/extman/webman.cf /usr/local/www/extmail/webmail.cf.bak
  4. cp /home/ppabc1/extman]webman.cf /usr/local/www/extman/webman.cf
复制代码


其他设置
执行如下命令

  1. mkdir /var/lib
  2. mkdir /var/tmp/extman/
  3. chown -R vmail:vmail /var/tmp/extman/
  4. chmod 777 /var/tmp/extman/
  5. chmod 755 /usr/local/www/extman/webman.cf
  6. unlink /usr/local/www/extman/libs/HTML/KTemplate.pm
  7. cp /usr/local/www/extmail/libs/HTML/KTemplate.pm /usr/local/www/extman/libs/HTML/
复制代码


配置图形日志
安装依赖软件  遇到要选择 取消IPV6 其他默认就可以
cd /usr/ports/databases/rrdtool && make install clean   
cd /usr/ports/devel/p5-File-Tail && make install clean
cd /usr/ports/devel/p5-Time-HiRes && make install clean

安装mailgraph_ext
cp -Rfp /usr/local/www/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext
/usr/local/mailgraph_ext/mailgraph-init start

下载 效果和hosts.rar 里面有个conf.tar解压后freebsd-cmd


效果和hosts.rar
  (提取码 91bfcfd4)

cp /home/ppabc1/freebsd-cmd /usr/local/www/extman/daemon/cmd_plugin/
编辑/etc/rc.local加入下面两行
/usr/local/mailgraph_ext/mailgraph-init start
/usr/local/www/extman/daemon/cmdserver -v -d

执行下
chmod 777  /usr/local/www/extman/daemon/cmdserver
/usr/local/www/extman/daemon/cmdserver --daemon

进入extman  docs  目录,导入 msyql  数据
cd /usr/local/www/extman/docs
/usr/local/bin/mysql -uroot -p <extmail.sql
Enter password:
/usr/local/bin/mysql -uroot -p < init.sql
Enter password:


提示mysql 出错
Can't call method "prepare" on an undefined value at /usr/local/www/extman/libs/Ext/Mgr/MySQL.pm line 139.
一般就是 数据库没导入所导致的


重起一下apache
/usr/local/sbin/apachectl restart

测试基本系统
到目前为止,一个基本的邮件系统已经安装完成,他支持了smtp,pop3,imap,webmail。并且支持对应的SSL加密smtps,pop3s,imaps,https。


测试pop3      (省略)

测试smtp认证  (省略)

测试smtps     (省略)

测试pop3s/imaps  (省略)

下载 效果和hosts.rar 里面有个mailetc.rar


下载效果和hosts.rar
  (提取码 91bfcfd4)


修改WIN下面hosts文件,我做了个批处理mailetc.rar
解压后点 开启.bat 就可以用浏览器直接访问http://mail.zhank.com

测试webmail/extman
你能通过如下链接登陆webmail
http://mail.extmail.org
https://mail.extmail.org

http://mail.extmail.org/extman
https://mail.extmail.org/extman

内容/病毒过虑

安装amavisd-new
amavisd-new是一个类似Mailscanner的解信的程序,他可以调用外部的杀毒/反垃圾来对邮件进行过滤,很方便的实现病毒过滤,内容过滤。amavisd和mailscanner的不同在于,他使用SMTP协议通信,处理完后再回传给Postfix,整个过程不会对Postfix造成任何结构上的影响。Mailscanner必须监视Postfix的Hold队列,采用比较暴力的做法。

cd /usr/ports/security/amavisd-new && make install clean
安装时选择 BDB MILTER SPAMASSASSIN FILE RAR UNRAR ARJ LHA ARC CAB RPM ZOO UNZOO LZOP FREEZE P7ZIP

如果在这里安装遇到要选择IPV6记得全部取消掉

安装amavisd-new
*** Error code 1

Stop in /usr/ports/archivers/rar.
*** Error code 1
如果出现这个错误是因为选择了RAR
错误是 rarbsd 没装上,可以去下载
http://www.rarlab.com/rar/rarbsd-3.9.0.tar.gz
下载后 复制到
mv rarbsd-3.9.0.tar.gz /usr/ports/distfiles/
安装就可以了

修改/etc/rc.conf增加如下一行,系统启动时自动运行amavisd
amavisd_enable="YES"

配置amavisd.conf
修改/usr/local/etc/amavisd.conf文件中对应的选项,如下

  1. $max_servers = 10;
  2. $sa_spam_subject_tag = '[SPAM] ';
  3. $mydomain = 'mail.extmail.org';
  4. $myhostname = 'mail.extmail.org';
  5. @local_domains_maps = qw(.);
  6. $sa_tag_level_deflt  = undef;
  7. $sa_tag2_level_deflt = 5.0;
  8. $sa_kill_level_deflt = 5.0;
  9. $final_virus_destiny      = D_DISCARD;
  10. $final_banned_destiny     = D_DISCARD;
  11. $final_spam_destiny       = D_DISCARD;
  12. $virus_admin               = "postmaster\@$mydomain";
  13. $mailfrom_notify_admin     = "postmaster\@$mydomain";
  14. $mailfrom_notify_recip     = "postmaster\@$mydomain";
  15. $mailfrom_notify_spamadmin = "postmaster\@$mydomain";
  16. @whitelist_sender_maps = read_hash("$MYHOME/white.lst");
  17. @blacklist_sender_maps = read_hash("$MYHOME/black.lst");
  18. $spam_quarantine_to = "spam\@$mydomain";
  19. $virus_quarantine_to = "virus\@$mydomain";
  20. $banned_quarantine_to = "spam\@$mydomain";
  21. $hdrfrom_notify_admin = "Content Filter ";
复制代码


执行如下操作

  1. touch /var/amavis/white.txt
  2. touch /var/amavis/black.txt
  3. cp /var/amavis/white.txt /var/amavis/white.lst
  4. cp /var/amavis/black.txt /var/amavis/black.lst
  5. chown -R vscan:vscan /var/amavis/
复制代码


配置postfix对amavisd-new的支持
修改/usr/local/etc/postfix/master.cf,增加如下内容

  1. smtp-amavis  unix    -    -    n    -    4    smtp
  2.         -o smtp_data_done_timeout=1200
  3.         -o smtp_send_xforward_command=yes
  4.         -o disable_dns_lookups=yes

  5. 127.0.0.1:10025 inet    n    -    n    -    -    smtpd
  6.         -o content_filter=
  7.         -o local_recipient_maps=
  8.         -o relay_recipient_maps=
  9.         -o smtpd_restriction_classes=
  10.         -o smtpd_helo_restrictions=
  11.         -o smtpd_sender_restrictions=
  12.         -o smtpd_recipient_restrictions=permit_mynetworks,reject
  13.         -o mynetworks=127.0.0.0/8
  14.         -o strict_rfc821_envelopes=yes
  15.         -o smtpd_error_sleep_time=0
  16.         -o smtpd_soft_error_limit=1001
  17.         -o smtpd_hard_error_limit=1000
  18.         -o receive_override_options=
复制代码



修改content_filter ,receive_override_options这两项,禁止地址展开/影射,否则遇到别名时会产生冗余邮件。但是打开这一项receive_override_options后会和邮件列表程序相冲突,导致邮件列表的aliases不能打开。所以如果使用了邮件列表,则不要设置receive_override_options这一项。
/usr/local/sbin/postconf -e 'content_filter = smtp-amavis:[localhost]:10025'
/usr/local/sbin/postconf -e 'receive_override_options = no_address_mappings'
这个 地方要注意如果使用了邮件列表,则不要设置receive_override_options这一项


配置clamav
Clamav是一个比较好的杀毒程序,他被amavisd调用,可以查杀所有常见的病毒,在邮件系统中我们用它来对邮件进行查毒,

cd /usr/ports/security/clamav && make install clean
安装时选择 ARC ARJ LHA UNZOO UNRAR

修改配置文件
编辑/usr/local/etc/clamd.conf
User vscan
编辑/usr/local/etc/freshclam.conf
DatabaseOwner vscan
修改/etc/rc.conf增加两行
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

修改/usr/local/etc/amavisd.conf,增加如下内容,使amavis-new对clamav的支持

  1. ['ClamAV-clamd',
  2.    \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"],
  3.    qr/\bOK$/, qr/\bFOUND$/,
  4.    qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
复制代码

修改权限设置
chown -R vscan:vscan /var/run/clamav/
chown -R vscan:vscan /var/log/clamav/
chown -R vscan:vscan /var/db/clamav/

启动clamav。clamav有2个daemon需要启动,一个是用来查病毒的clamd,另外一个是用来更新病毒库的freshclam,他们分别通过如下脚本启动。
/usr/local/etc/rc.d/clamav-clamd start
/usr/local/etc/rc.d/clamav-freshclam start

配置Spamassassin
开源软件中最好的内容过滤程序,做内容过滤的必选。

配置

cp /usr/local/etc/mail/spamassassin/local.cf.sample /usr/local/etc/mail/spamassassin/local.cf
修改/usr/local/etc/mail/spamassassin/local.cf

  1. report_safe             1
  2. use_bayes               0
  3. auto_learn              0
  4. bayes_auto_expire       1
  5. skip_rbl_checks         1
  6. use_razor2              0
  7. use_dcc                 0
  8. use_pyzor               0
  9. dns_available           no
  10. lock_method             flock
复制代码


使用Chinese_rules.cf
fetch得到这个规则后可以看到,他从2006年10月2日以来,都没有再更新过了,因此是否仍然使用该规则取决于您自己。如果仍然想继续使用,按照如下的操作即可。
-rw-r--r-- 1 root wheel 55342 Oct 2 2006 Chinese_rules.cf
编辑脚本/var/cron/sa.sh

  1. #!/bin/sh
  2. cd /tmp/
  3. fetch -q [url]http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf[/url]
  4. mv Chinese_rules.cf /usr/local/share/spamassassin/
  5. /usr/local/etc/rc.d/amavisd forcerestart > /dev/null
复制代码


增加执行权限
chmod +x /var/cron/sa.sh
编辑/etc/crontab,增加一行如下,每周6执行一次
0 0 * * 6 root /var/cron/sa.sh

测试杀毒/内容过滤
测试杀毒。在做该测试之前,你需要确保你的clamd,amavisd,postfix都正常启动。可以通过如下脚本来启动他们。
/usr/local/etc/rc.d/clamav-clamd restart
/usr/local/etc/rc.d/amavisd restart
/usr/local/etc/rc.d/postfix restart

安装邮件列表软件mailman
Mailman是一个比较好的邮件列表程序,功能非常强大,提供完美的Web端,权限可以分散管理,多个开源组织都在使用。

安装mailman
cd /usr/ports/mail/mailman && make MAIL_GID=mailman CGI_GID=vmail install clean
安装时选择: POSTFIX   CHINESE

在此使用mailman做为MAIL_GID是为了避免在后期的维护中使用check_perms -f修复权限的时候,mailman会自动默认修改为mailman这个用户来转发邮件。而使用 CGI_GID=vmail作为mailman的CGI执行权限是为了跟extmail/extman执行cgi时的权限一致。

配置/etc/rc.conf
增加一行
mailman_enable="YES"
配置postfix支持

  1. touch /usr/local/mailman/data/aliases
  2. touch /usr/local/mailman/data/virtual-mailman
  3. /usr/local/sbin/postconf -e 'recipient_delimiter=+'
  4. /usr/local/sbin/postconf -e 'alias_maps=hash:/etc/aliases, hash:/usr/local/mailman/data/aliases'
  5. /usr/local/sbin/postalias /usr/local/mailman/data/aliases
  6. /usr/local/sbin/postconf -e 'virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf, hash:/usr/local/mailman/data/virtual-mailman'
  7. /usr/local/sbin/postalias /usr/local/mailman/data/aliases
  8. /usr/local/sbin/postmap /usr/local/mailman/data/virtual-mailman
  9. /usr/local/sbin/postconf -e 'default_privs = mailman'
  10. /usr/local/sbin/postfix reload
复制代码


配置mailman

  1. cd /usr/local/mailman
  2. /usr/local/mailman/bin/genaliases
  3. chown -R vmail:mailman /usr/local/mailman/data/aliases*
  4. chown -R vmail:mailman /usr/local/mailman/data/virtual-mailman*
  5. chmod 664 /usr/local/mailman/data/aliases*
  6. chmod 664 /usr/local/mailman/data/virtual-mailman*
  7. cp -Rfp /usr/local/mailman/icons/ cgi-bin/icons
  8. cp /usr/local/www/icons/powerlogo.gif cgi-bin/icons/
复制代码


修改管理员密码,在这里我默认为123qwe98
/usr/local/mailman/bin/mmsitepass
编辑/usr/local/mailman/Mailman/mm_cfg.py,增加如下内容

  1. MTA = 'Postfix'
  2. POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.extmail.org']
  3. add_virtualhost('lists.extmail.org','lists.extmail.org')

  4. DEFAULT_EMAIL_HOST = 'lists.extmail.org'
  5. DEFAULT_URL_HOST = 'lists.extmail.org'
  6. DEFAULT_SERVER_LANGUAGE = 'zh_CN'
复制代码


创建一个邮件列表mailman
mailman列表为必须创建的,管理员邮箱使用root@extmail.org,密码使用12345678
/usr/local/mailman/bin/newlist mailman
配置apache支持mailman
在文件/usr/local/etc/apache22/Includes/extmail.conf中添加如下内容。

  1. <VirtualHost *:80>
  2.     ServerName lists.extmail.org
  3.     DocumentRoot /usr/local/mailman/cgi-bin/
  4.     ScriptAlias /mailman "/usr/local/mailman/cgi-bin/"
  5.     Alias /pipermail /usr/local/mailman/archives/public/
  6.     <Directory "/usr/local/mailman/archives/public/">
  7.         AddDefaultCharset Off
  8.     </Directory>
  9.     <Directory "/usr/local/mailman">
  10.         Options FollowSymLinks ExecCGI
  11.         AllowOverride None
  12.         Order allow,deny
  13.         Allow from all
  14.     </Directory>
  15. </VirtualHost>
复制代码


重启APACHE
/usr/local/sbin/apachectl restart

默认密码root@extmail.org  extmail*123*
默认数据库位置/var/db/mysql/extmail
修改数据库位置/home/db/mysql/extmail
/usr/local/etc/apache22/extra/httpd-vhosts.conf

测试以及通过web使用mailman
你能通过如下链接管理和查看相关信息,使用密码12345678登陆mailman系统。也可以通过系统管理密码123qwe98创建新的邮件列表。
http://lists.extmail.org/mailman/admin/mailman
http://lists.extmail.org/mailman/listinfo/mailman
http://lists.extmail.org/mailman/create

更强大的功能在登陆列表的web管理界面后你能看到,比如调整显示界面为中文等等。

到这里邮件配置就全部结束,一台服务器只做邮件未免有些浪费,可以增加WEB的配置

[ 本帖最后由 ppabc 于 2009-12-21 10:14 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-12-19 16:14 |只看该作者
安装php
# cd /usr/ports/lang/php5
# make config
[X] CLI        Build CLI version
[X] CGI        Build CGI version
[X] APACHE     Build Apache module
[ ] DEBUG      Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6       Enable ipv6 support
[ ] REDIRECT   Enable force-cgi-redirect support (CGI only)
[ ] DISCARD    Enable discard-path support (CGI only)
[X] FASTCGI    Enable fastcgi support (CGI only)
[X] PATHINFO   Enable path-info-check support (CGI only)
# make install clean
#cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

# cd /usr/ports/lang/php5-extensions/
# make config 

#我选择了这些,你看你的需要增加了
  1. [X] BZ2 bzip2 library support
  2. [X] CALENDAR    calendar conversion support  
  3. [X] CTYPE       ctype functions      
  4. [X] DOM DOM support  
  5. [X] FILTER      input filter support
  6. [X] GD  GD library support   
  7. [X] GETTEXT     gettext library support
  8. [X] HASH  HASH Message Digest Framework
  9. [X] ICONV       iconv support
  10. [X] JSONJavaScript Object Serialization support      
  11. [X] MYSQL       MySQL database support
  12. [X] PCRE  Perl Compatible Regular Expression support  这个没 不过默认会有   
  13. [X] PDO PHP Data Objects Interface (PDO)      
  14. [X] PDO_SQLITE  PDO sqlite driver   
  15. [X] POSIX       POSIX-like functions
  16. [X] SESSION     session support      
  17. [X] SIMPLEXML   simplexml support
  18. [X] SPL Standard PHP Library
  19. [X] SQLITE      sqlite support        
  20. [X] TIDY TIDY support
  21. [X] TOKENIZER   tokenizer support   
  22. [X] XML XML support  
  23. [X] XMLREADER   XMLReader support   
  24. [X] XMLWRITER   XMLWriter support      
  25. [X] YAZ YAZ support (/NISO Z39.50)        
  26. [X] ZIP ZIP support  
  27. [X] ZLIBZLIB support  
  28. 也可以增加
  29. MHash哈稀计算
  30. MCrypt加密处理
  31. Socket支持
复制代码
# make install clean

安装Zend Optimizer
# cd /usr/ports/devel/ZendOptimizer/
make install clean
//你会看到以下提示:
  1. //You have installed the ZendOptimizer package.
  2. //Edit /usr/local/etc/php.ini and add:
  3. //[Zend]
  4. //zend_optimizer.optimization_level=15
  5. //zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
  6. //zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
  7. //zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
  8. //zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
  9. //********************************************************************************
复制代码
# ee /usr/local/etc/php.ini
//如果你打开是空白.那一定是忘了
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
//然后再
# ee /usr/local/etc/php.ini
//在最下边加上.
  1. [Zend]
  2. zend_optimizer.optimization_level=15
  3. zend_extension_manager.optimizer="/usr/local/lib/php/20060613-zts/Optimizer"
  4. zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613-zts/Optimizer_TS"
  5. zend_extension="/usr/local/lib/php/20060613-zts/ZendExtensionManager.so"
  6. zend_extension_ts="/usr/local/lib/php/20060613-zts/ZendExtensionManager_TS.so"
复制代码
//先不要急着测试apache mysql php

编辑httpd.conf

#ee /usr/local/etc/apache22/httpd.conf

ServerAdmin ppabc@qq.com

//再往下找..
Options Indexes FollowSymLinks
//改为Options FollowSymLinks
//防止被黑客目录浏览到配置文件

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>


//再往下找 怎么着?烦了...烦了睡觉去吧.这儿你不看别想解析php!

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
//再下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

//最下面
Include etc/apache22/extra/httpd-mpm.conf //把#去掉
Include etc/apache22/extra/httpd-vhosts.conf //把#去掉
//ESC退出保存

#ee /usr/local/etc/apache22/extra/httpd-mpm.conf
  1. <IfModule mpm_worker_module>
  2. ServerLimit 3000
  3. StartServers 5
  4. MaxClients 5000
  5. MinSpareThreads 75
  6. MaxSpareThreads 300
  7. ThreadsPerChild 50
  8. MaxRequestsPerChild 80000
  9. </IfModule>
复制代码
绑定其他域名
#ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
  1. <VirtualHost *:80>
  2.     ServerAdmin [email]ppabc@qq.com[/email]
  3.     DocumentRoot "/home/ftp/web001"
  4.     ServerName web001.zhank.com
  5. #    ServerAlias [url]www.web001.zhank.com[/url]
  6.     ErrorLog "/home/log/dummy-host.example.com-error_log"
  7.     CustomLog "/home/log/dummy-host.example.com-access_log" common
  8. </VirtualHost>

  9. <VirtualHost *:80>
  10.     ServerAdmin [email]ppabc@qq.com[/email]
  11.     DocumentRoot "/home/ftp/web002"
  12.     ServerName web002.zhank.com
  13.     ErrorLog "/home/log/dummy-host2.example.com-error_log"
  14.     CustomLog "/home/log/dummy-host2.example.com-access_log" common
  15. </VirtualHost>
复制代码
到这里WEB配置就全部结束,其他设置根据自己的情况设置优化
有啥不对的地方和有更好的方法也请大家指出或补充,共同进步!

内网邮件VMware测试系统2.0发布 (基于FreeBSD8.0)
给需要测试或体验FB下构建邮件服务器的朋友使用

http://bbs3.chinaunix.net/thread-1631264-1-1.html


115网络U盘  分流下载
http://u.115.com/file/f483817b3f
ports.tar
http://u.115.com/file/f4a0f78cc4
效果和hosts.rar

[ 本帖最后由 ppabc 于 2010-1-6 09:28 编辑 ]

conf.rar

60 KB, 下载次数: 187

mailetc.rar

1.8 KB, 下载次数: 154

FreeBSD8.0+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装.rar

2.05 KB, 下载次数: 209

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
4 [报告]
发表于 2009-12-19 16:58 |只看该作者
很长时间没有这么强的帖子了,支持楼主,辛苦了。

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
5 [报告]
发表于 2009-12-19 21:27 |只看该作者
原帖由 lsstarboy 于 2009-12-19 16:58 发表
很长时间没有这么强的帖子了,支持楼主,辛苦了。



确实

论坛徽章:
0
6 [报告]
发表于 2009-12-19 22:29 |只看该作者
哎,感动啊。浮躁的年代静下心来发技术贴的人真少。 顶楼主。

论坛徽章:
0
7 [报告]
发表于 2009-12-21 09:07 |只看该作者
这么辛苦 修改了好些错误 那给个精华吧 呵呵

共享网络资源 高效利用网络
发挥网络效应 提高技术水平
你不奉献我不奉献 谁来奉献
你也索取我也索取 向谁索取   --- splinxus

论坛徽章:
2
狮子座
日期:2013-08-26 15:25:32金牛座
日期:2013-09-05 15:45:36
8 [报告]
发表于 2009-12-21 09:57 |只看该作者
楼主如果弄个pdf或者txt说不定就精了

论坛徽章:
0
9 [报告]
发表于 2009-12-21 10:08 |只看该作者
原帖由 kisswen 于 2009-12-21 09:57 发表
楼主如果弄个pdf或者txt说不定就精了




不支持 txt  附件

论坛徽章:
0
10 [报告]
发表于 2009-12-22 08:26 |只看该作者
lz maildrop性能不行吧 dovecot还不错 配置也简单
另外ExtMan还支持nginx cgi 性能和安全性应该好点 可以顺便研究下

[ 本帖最后由 wosl2001 于 2009-12-22 08:28 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP