您的位置:首页 > 运维架构 > Apache

FreeBSD邮件系统安装 Step by Step

2008-04-10 11:20 405 查看
 1.  系统配置a)         安装cvsup#cd /usr/ports/net/cvsup-without-gui#make install clean#reboot#cvsup -gL 2 -h cvsup4.freebsdchina.org /usr/share/examples/cvsup/ports-supfile              这个过程大概要40分钟b)        配置主机名编辑/etc/rc.conf,修改文件中以下内容ifconfig_em0="inet 61.186.252.144  netmask 255.255.255.224"defaultrouter="61.186.252.129"hostname="mail2.csdn.net"
 2.  安装Mysql、Apache、PHP、FTPa)         安装Mysql#cd /usr/ports/databases/mysql41-server#make install clean#在/etc/rc.conf 中加入下面内容,以便msyql 在开机时随系统启动。mysql_enable=”YES”cp /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf在my.cnf 里增加地址的绑定,以提高安全性。(如果你的数据库只限在本地操作)[mysqld]bind_address=127.0.0.1测试Mysql#mysql#mysqladmin -u root password ******b)        安装Apache2#cd /usr/ports/www/apahce2#make install clean在
4000
/etc/rc.conf 中加入下面内容。apache2_enable=”YES”c)        安装mod_php4#cd /usr/ports/www/mod_php4#make install clean安装完成后,在/usr/local/etc/apahce2/httpd.conf 加入下面的内容DirectoryIndex index.html index.html.var index.phpAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps#/usr/local/etc/rc.d/apache2.sh restart
 d)        安装php4-extensions#cd /usr/ports/lang/php4-extensions#make install clean我选择了下面的模块:[X]BCMATH[X]BZ2[X]CRACK[X]CTYPE[X]CURL[X]FTP[X]GETTEXT[X]IMAP[X]LDAP[X]MCRYPT[X]MYSQL (注一定要选上)[X]OVERLOAD[X]PCRE[X]POSIX[X]SESSION[X]TOKENIZER[X]XML[X]XMLRPC[X]ZIP[X]ZLIBPHP 支持的模块可以参考/usr/local/etc/php/extensions.ini
 e)         安装Zend由于版权问题, 系统不会自动下载该软件包。需要到zend 的网站(https://www.zend.com/store/free_download.php?pid=13)下载FreeBSD 的版本,放到/usr/ports/distfiles 中,再进行安装。#cd /usr/ports/devel/ZendOptimizer#make install clean安装完成后在/usr/local/etc/php.ini 添加下面的内容。[Zend]zend_optimizer.optimization_level=15zend_extension_manager.optimizer="/usr/local/lib/php/20020429/Optimizer"zend_extension_manager.optimizer_ts="/usr/local/lib/php/20020429/Optimizer_TS"zend_extension="/usr/local/lib/php/20020429/ZendExtensionManager.so"zend_extension_ts="/usr/local/lib/php/20020429/ZendExtensionManager_TS.so"
 f)         安装openssl#cd /usr/ports/security/openssl-beta#make install clean
 g)        安装phpmyadmin#cd /usr/ports/databases/phpmyadmin#make fetch下载完成后,进入/usr/port/distfiles 目录解压,并移动或复制到/usr/local/www/data 目录中#cd /usr/ports/distfiles#tar jxvf phpMyAdmin-2.6.4-pl3.tar.bz2# mv phpMyAdmin-2.6.4-pl3 /usr/local/www/data/phpmyadmin配置phpmyadmin 打开/usr/local/www/data/phpmyadmin/config.inc.php 修改$cfg['Servers'][$i]['auth_type'] = 'http';
 h)        测试PHP 与apache安装完成后,在/usr/loca/www/data/目录中建立phpinfo.php 以测试apache 与php的安装是否成功。#cd /usr/local/www/data/# echo '<?phpinfo()?>'>phpinfo.php 打开浏览器输入http://61.186.252.144/phpinfo.php为了安全成见,测试完后把此文件删除i)          安装pure-ftp在系统中常常需要使用到FTP 进行上传文件,所以加进来,当成平时的笔记吧。#cd /usr/ports/ftp/pure-ftpd#make install clean#在/etc/rc.conf 添加pureftpd_enable=”YES”复制配置文件,此配置使用的是系统用户。上传文件的位置在/home/你自己的帐号中#cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf#下面的网址有详细的pure-ftp + mysql 安装教程http://machiel.generaal.net/index.php?subject=pureftpd&language=eng
 3.  安装邮件系统软件a)         设置数据库本系统使用extman 作为系统数据库,将Extman 上传到机器中解压后执行下面命令。Extman 下载地址:http://www.extmail.org/cgi-bin/download.cgi# tar xzfv extman-0.12.tar.gz #cd extman-0.12-20051216/docs导入数mysql 数据#mysql –u root –p < extmail.sql#mysql –u root –p 打开phpmyadmin 可看到多了一个数据库,并有一条记录Extman 密码在用户名和密码在init.sql 可以打开修改。
 b)        安装courier-imap
 # cd /usr/ports/mail/courier-imap/# make install clean只选择 OPENSSL 及 AUTH_MYSQL在/etc/rc.conf 加入courier_authdaemond_enable="YES"courier_imap_pop3d_enable="YES"courier_imap_imapd_enable="YES"复制配置文件#cd /usr/local/etc/courier-imap#cp imapd.cnf.dist imapd.cnf#cp pop3d.cnf.dist pop3d.cnf启动authdaemond#/usr/local/etc/rc.d/courier-authdaemond.sh start注意如果你在/etc/rc.conf 配置文件中写错了服务名,执行脚本会出现 no found关于服务名可以打开 /usr/local/etc/rc.d/ 下对应的sh 文件,查找name 这一项。如 name="courier_imap_imapd"#authdaemond 运行后会在/var/run/authdaemond/下产生socket,如果没有产生,则认证无法通过。#chmod +x /var/run/authdaemond
 c)        安装cyrus-sasl#cd /usr/ports/security/cyrus-sasl2#make install WITH_AUTHDAEMON=yes创建/usr/local/lib/sasl2/smtpd.conf 输入下面的内容pwcheck_method:authdaemondlog_level:3mech_list:PLAIN LOGINauthdaemond_path:/var/run/authdaemond/socket
 d)        安装postfix
 #cd /usr/ports/mail/postfix# make install clean选择SASL2 TLS MYSQL VDA回答下面的问题You need user "postfix" added to group "mail".(你必须将用户postfix 加入到mail 组里)Would you like me to add it [y]? y (你希望添加吗?)Would you like to activate Postfix in /etc/mail/mailer.conf
? n#在/etc/rc.conf 添加下面的内容sendmail_enable="YES" #这一句可以不要。sendmail_flags="-bd"sendmail_pidfile="/var/spool/postfix/pid/master.pid"sendmail_outbound_enable="NO"sendmail_submit_enable="NO"sendmail_msp_queue_enable="NO"做相关连接.#cd /usr/local/etc/rc.d#ln -s /usr/local/sbin/postfix postfix.sh#ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail#注,如果/usr/sbin/sendmail 存在,先删了再做连接.#echo postfix: root >> /etc/aliases#/usr/local/bin/newaliases#chown postfix:postfix /etc/opiekeys4.  配置服务器a)         创建/etc/periodic.confdaily_clean_hoststat_enable="NO"daily_status_mail_rejects_enable="NO"daily_status_include_submit_mailq="NO"daily_submit_queuerun="NO"
 b)        配置postfix修改/usr/local/etc/postfix/main.cf 在文件最后加入下面内容。              smtp_helo_required = yesstrict_rfc821_evelopes = yessmtp_etrn_restrictions = permit_mynetworks,reject###################BASE##################myhostname=mail2.csdn.netmydomain = csdn.netmydestination = $myhostnamelocal_recipient_maps =command_directory = /usr/local/sbinlocal_transport = virtualmessage_size_limit = 10240000
 #################MySQL################virtual_alias_maps =mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cfvirtual_gid_maps = static:125virtual_mailbox_base = /home/domains virtual_mailbox_domains =mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cfvirtual_mailbox_limit = 104857600virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cfvirtual_minimum_uid = 125virtual_transport = virtualvirtual_uid_maps = static:125################Quota################virtual_create_maildirsize = yesvirtual_mailbox_extended = yesvirtual_mailbox_limit_maps =mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cfvirtual_mailbox_limit_override = yesvirtual_maildir_limit_message = Sorry,the user's Maildir has overdrawn his diskspacequota ,please tray again later.virtual_overquota_bounce = yes##############SASL####################smtpd_sasl_auth_enable = yessmtpd_sasl_security_clients = noanonymousbroken_sasl_auth_clients = yessmtpd_delay_reject = yessmtpd_recipient_restrictions = permit_sasl_authenticatedreject_non_fqdn_senderreject_unknown_sender_domainreject_unknown_recipient_domainreject_non_fqdn_recipientreject_unauth_destinationsmtpd_client_restrictions = permit_sasl_authenticated              确认/usr/local/etc/postfix/master.cf 有下面的内容。virtual unix - n n - - virtual将extman docs 目录下mysql_virtual 开头的文件复制到/usr/local/etc/postfix/#cp mysql_virtual_* /usr/local/etc/postfix/修改extman以支持激活及磁盘限额,以下用cat看到的文件内容mail# cat /usr/local/etc/postfix/mysql_virtual_alias_maps.cfuser = extmailpassword = extmailhosts = localhostdbname = extmail#table = alias#select_field = goto#where_field = addressquery = SELECT goto FROM alias WHERE address= '%s' AND active = 1mail# cat /usr/local/etc/postfix/mysql_virtual_domains_maps.cfuser = extmailpassword = extmailhosts = localhostdbname = extmail#table = domain#select_field = description#where_field = domainquery = SELECT description FROM domain WHERE domain ='%s' AND active = 1mail# cat /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cfuser = extmailpassword = extmailhosts = localhostdbname = extmail#table = mailbox#select_field = quota#where_field = username#additional_conditions = and active = '1'query = SELECT quota FROM mailbox WHERE username='%s' AND active = 1mail# cat /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cfuser = extmailpassword = extmailhosts = localhostdbname = extmail#table = mailbox#select_field = maildir#where_field = username#additional_conditions = and active = '1'query = SELECT maildir FROM mailbox WHERE username = '%s' AND active = 1c)        配置Courier-imap修改Courier 相关设置,/usr/local/etc/courier-imap/imapd:IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA"修改/usr/local/etc/courier-imap/pop3dPOP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"修改/usr/local/etc/authlib/authmysqlrc注意中间的是tab 键
 MYSQL_SERVER    localhostMYSQL_USERNAME  extmailMYSQL_PASSWORD  extmailMYSQL_PORT      0MYSQL_OPT       0MYSQL_DATABASE  extmailMYSQL_USER_TABLE     mailboxMYSQL_CRYPT_PWFIELD   passwordMYSQL_UID_FIELD '125'MYSQL_GID_FIELD '125'MYSQL_LOGIN_FIELD     usernameMYSQL_HOME_FIELD        concat('/home/domains/',homedir)MYSQL_NAME_FIELD     nameMYSQL_MAILDIR_FIELD     concat('/home/domains/',maildir)MYSQL_QUOTA_FIELD     quota                        修改/usr/local/etc/authlib/authdaemonrcauthmodulelist="authmysql"authmodulelistorig="authmysql"version="authdaemond.mysql"daemons=5authdaemover=/var/run/authdaemondsubsystem=mailDEBUG_LOGIN=0DEFAULTOPTIONS="wbnodsn=1"至此邮件系统的基本已经安装完成。重启系统后开始测试。5.  测试邮件系统#chown postfix:postfix /home/domainsa)         打开maillogmaillog 是测试邮件是否成功的重要信息。每一个邮件动作都会在maillog 里生成一条记录。
 b)        安装p5-MIME-Base64因为系统在认证时使用的是BASE64 编码,此时需要对用名和密码进行展换。如果你觉得不好用,可以使用下面的网站。http://www.sharesky.cn/base64.php?en=填你要编码的内容。#cd /usr/ports/converters/p5-MIME-Base64/#make install clean进行BASE64 编码,extmail 里有一个测试用户,用户名为test@extmail.org 密码为test#perl -MMIME::Base64 -e 'print encode_base64("test/@extmail.org");'dGVzdEBleHRtYWlsLm9yZw==# perl -MMIME::Base64 -e 'print encode_base64("test");'dGVzdA==#tail –f /var/log/maillog #注意,不要退出来。c)        发送测试以#开头的为要输入的部分#telnet localhost 25#ehlo mail #问候,后面mail 是主机名,可以用localhost 代替250-mail2.csdn.net250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-AUTH LOGIN PLAIN250-AUTH=LOGIN PLAIN250 8BITMIME#auth login #认证334 VXNlcm5hbWU6#dGVzdEBleHRtYWlsLm9yZw== #用户名 test@extmail.org334 UGFzc3dvcmQ6#dGVzdA== #密码 test235 Authentication successful#mail from:test@extmail.org #寄件人250 Ok#rcpt to: test@extmail.org #收件人250 Ok#data #开始输入邮件内容。354 End data with .#this is a test! #邮件内容。. #注意,这个点是结束这封邮件的输入。250 Ok: queued as 491851D #放入到邮件队列里。#quit #发送完成,退出。221 ByeConnection closed by foreign host.d)        收信测试e)         配置extman和extmail#mv extman-0.12 extman#cp extman /usr/home/httpd/mail/extman/              #cd /usr/home/httpd/mail/extman/libs/Ext              #rm CGI.pm Session.pm Config.pm Utils.pm Lang.pm RFC822.pm              下载extmail              #tar xzfv extmail-0.23-20060104.tar.gz              #mv extmail-0.23-20060104 extmail              #mv extmail /home/httpd/mail/              #cd /home/httpd/mail/extmail/libs/Ext/              #cp CGI.pm Session.pm Config.pm Utils.pm Lang.pm RFC822.pm /home/httpd/mail/extman/libs/Ext/              #cd /usr/home/httpd/mail/extman              修改  /home/httpd/mail/extman/webman.cf              #vi webman.cf              SYS_CONFIG = /home/httpd/mail/extman/              SYS_LANGDIR = /home/httpd/mail/extman/lang              SYS_TEMPLDIR = /home/httpd/mail/extman/html                 安装p5-Apache-DBI              #cd /usr/ports/www/p5-Apache-DBI#make install clean安装p5-DBD-mysql #/usr/ports/databases/p5-DBD-mysql41#make install clean配置Apache,编辑 httpd.conf#vi httpd.confServerName mail2.csdn.netCustomLog /dev/null combinedDocumentRoot /home/httpd/mailScriptAlias /extman/cgi/ "/home/httpd/mail/extman/cgi/"Alias /extman/ "/home/httpd/mail/extman/html/"SetHandler cgi-scriptOptions +ExecCGIAllowOverride All
 配置extmail下载extmail 网址:http://www.extmail.org/cgi-bin/download.cgi#cd /home/httpd/mail/extmail/#cp webmail.cf.default webmail.cf#vi webmail.cfSYS_MYSQL_USER = extmailSYS_MYSQL_PASS = your passwordSYS_MYSQL_DB = extmailSYS_MYSQL_HOST = localhostSYS_MYSQL_SOCKET = /tmp/mysql.sock配置apache在httpd.conf 加入下面的内容,记得和刚才配置的extman在一个虚拟主机中#config for ExtMailScriptAlias /extmail/cgi/ "/home/httpd/mail/extmail/cgi/"Alias /extmail/ "/home/httpd/mail/extmail/html/"SetHandler cgi-scriptOptions +ExecCGIAllowOverride All
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息