一、首先安装apache+mysql+php,
         在本文档中假设服务器的ip地址为172.16.27.23,域名为test.com,主机名为mail.test.com
   二、安装courier-imap,courier-imap主要提供Pop3及IMAP服务。

1.ports安装courier-imap

cd /usr/ports/mail/courier-imap
make install clean

选择mysql

[X] AUTH_MYSQL   MySQL support

2.在/etc/rc.conf 加入

courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"

3.设置/usr/local/etc/authlib/authdaemonrc

cd /usr/local/etc/courier-imap
cp imapd.cnf.dist imapd.cnf
cp pop3d.cnf.dist pop3d.cnf
chmod -R  +x /var/run/authdaemond/
cd /usr/local/etc/authlib/
mv authdaemonrc authdaemonrc.bak

编辑authdaemonrc文件,输入如下内容:

authmodulelist="authmysql"
authmodulelistorig="authmysql"
version="authdaemond.mysql"
daemons=5
authdaemover=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"

上面DEBUG_LOGIN=2 是为了调试方便,等系统完全测试完成,可改为 0,即不显示调试信息。

/usr/local/etc/rc.d/courier-authdaemond start

authdaemond 启动完成后,检查/var/run/authdaemond 下面是否产生socket 文件,因为认证时是通过这个文件读取密码的。
      
      4.设置/usr/local/etc/authlib/authmysqlrc

cd /usr/local/etc/authlib/
mv authmysqlrc authmysqlrc.bak

创建authmysqlrc文件输入以下内容:

MYSQL_SERVER            localhost
MYSQL_USERNAME          extmail
MYSQL_PASSWORD          extmail
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          extmail
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         1000
MYSQL_GID_FIELD         1000
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        homedir
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\
                        CONCAT('/services/data/domains/',homedir),       \
                        CONCAT('/services/data/domains/',maildir),      \
                        quota,                                          \
                        name                                            \
                        FROM mailbox                                    \
                        WHERE username = '$(local_part)@$(domain)'

要注意,我的邮件保存的目录是/services/data/domains ,你可以跟据你的需要改为自己的目录。用户名和密码是extmail 这个具体需要看extman 软件包中的docs 目录中的extmail.sql,很多人无法通上发信认证,很可能以上面两个文件配置有关。

三、安装配置cyrus-sasl2

1.ports安装cyrus-sasl2

cd /usr/ports/security/cyrus-sasl2
make install WITH_AUTHDAEMON=yes
make clean

2.创建 /usr/local/lib/sasl2/smtpd.conf 加入下面的内容

pwcheck_method:authdaemond
log_level:3
mech_list:PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket

至此,认证部分基本完成。

四、安装配置Postfix
        
    1.ports安装postfix

cd /usr/ports/mail/postfix
make install clean

2.编译选项选择

[X] VDA       VDA (Virtual Delivery Agent)
[X] MySQL     MySQL map lookups (choose version with WITH_MYSQL_VER)
[X] TLS       SSL and TLS
[X] SASL2     Cyrus SASLv2 (Simple Authentication and Security Layer)

安装过程中有两个提问,直接按回车,使用系统默认的回答。

3.配置postfix

echo postfix:root >> /etc/aliases
/usr/local/bin/newaliases
ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail

如果出现ln: /usr/sbin/sendmail: File exists 提示,把/usr/sbin/sendmail改名再链接。

设置postfix 随系统启动,在/etc/rc.conf中添加如下内容:

postfix_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

创建/etc/periodic.conf 加入下面的内容:

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

配置/usr/local/etc/postfix/main.cf

cd /usr/local/etc/postfix/
mv main.cf main.cf.bak

创建main.cf文件输入如下内容:

###################BASE##################
myhostname=mail.test.com
mydomain = test.com
mydestination = $myhostname
#mydestination =
local_recipient_maps =
command_directory = /usr/local/sbin
#local_transport = virtual
smtpd_banner = test.com ESMTP Mail System
message_size_limit = 14680064
#mailbox_size_limit = 512000000
#################MySQL################
virtual_alias_maps =mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
#virtual_gid_maps = static:125
#virtual_gid_maps = static:1000
virtual_mailbox_base = /services/data/domains
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
#virtual_mailbox_limit = 512000000
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
#virtual_minimum_uid = 125
#virtual_minimum_uid = 1000
#virtual_transport = virtual
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1

strict_rfc821_envelopes = no
#virtual_uid_maps = static:125
#virtual_uid_maps = static:1000
################Quota################
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry,the user's Maildir has overdrawn his diskspace quota ,please tray again later.
virtual_overquota_bounce = yes

##############SASL####################
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination,
  reject_unauth_pipelining,
  reject_invalid_hostname,

readme_directory = no
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
html_directory = no
setgid_group = maildrop
manpage_directory = /usr/local/man
daemon_directory = /usr/local/libexec/postfix
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

以下几个文件在extman软件包的docs目录下直接拷到/usr/local/etc/postfix下即可

mysql_virtual_alias_maps.cf
mysql_virtual_domains_maps.cf
mysql_virtual_limit_maps.cf
mysql_virtual_mailbox_maps.cf
mysql_virtual_sender_maps.cf

至此postfix 基本设置完成,但还不能收发邮件。

五、安装配置maildrop

我们在设置邮件服务器时MTA 部分还是使用posfix 本身的帐户进行处理邮件,由于maildrop 不能和postfix 与同一用户身份处理邮件,所以我们新开一个用户用户maildrop 处理。

pw groupadd vgroup -g 1000
pw useradd vuser -g 1000 -u 1000 -s /sbin/nologin -d /sbin/nologin -c "virtual mail user"

1.ports安装maildrop

cd /usr/ports/mail/maildrop
make install WITH_AUTHLIB=yes

选择

[X] AUTH_MYSQL   MySQL support
make clean

2.配置maildrop
   修改/usr/local/etc/postfix/master.cf ,把maildrop 原先已有的记录注译(即删除旧记录),加上下面的内容

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vuser argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}

3.设置邮件存储目录

mkdir -p /services/data/domains/test.com/test
chown -R 1000:1000 /services/data/domains/
chmod -R 700 /services/data

确保data目录为700权限以及所属的用户和组为vuser和vgroup

至此,我们的邮件系统基础部分已经安装完成了。重启系统,开始进行测试。

六、安装extmail和extman
    
      1.解压extmail和extman

tar xzvf extmail-1.2.tar.gz
tar xzvf extman-1.1.tar.gz
mkdir -p /services/extsuite
mv extman-1.1 /services/extsuite/extman
mv extmail-1.2 /services/extsuite/extmail

2.修改httpd.conf文件,在末尾增加如下内容:

<VirtualHost *:80>
    ServerName 172.16.27.23
    DocumentRoot /services/extsuite/extmail/html
    ScriptAlias /extmail/cgi /services/extsuite/extmail/cgi
    Alias /extmail /services/extsuite/extmail/html
    <Directory "/services/extsuite/extmail">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    #SuexecUserGroup postfix postfix
</VirtualHost>

#<VirtualHost *:80>
    DocumentRoot /services/extsuite/extman/html
    ScriptAlias /extman/cgi /services/extsuite/extman/cgi
    Alias /extman /services/extsuite/extman/html
    <Directory "/services/extsuite/extman">
#     Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
#</VirtualHost>

用户和组修改为

User vuser
Group vgroup

3.配置webman.cf和webmail.cf

修改/services/extsuite/extman/webman.cf文件,参考内容如下:

SYS_CONFIG = /services/extsuite/extman/
SYS_LANGDIR = /services/extsuite/extman/lang
SYS_TEMPLDIR = /services/extsuite/extman/html
SYS_MAILDIR_BASE = /services/data/domains
SYS_SHOW_WARN = 0
SYS_SESS_DIR = /var/tmp/extman/
SYS_CAPTCHA_ON = 0
SYS_CAPTCHA_KEY = r3s9b6a7
SYS_CAPTCHA_LEN = 6
SYS_PURGE_DATA = 0
SYS_PSIZE = 20
SYS_APP_TYPE = ExtMan
SYS_TEMPLATE_NAME = default
SYS_DEFAULT_EXPIRE = 1y
SYS_GROUPMAIL_SENDER = postmaster@test.com
SYS_DEFAULT_SERVICES = webmail,smtpd,smtp,pop3,netdisk
SYS_ISP_MODE = no
SYS_DOMAIN_HASHDIR = yes
SYS_DOMAIN_HASHDIR_DEPTH = 2x2
SYS_USER_HASHDIR = yes
SYS_USER_HASHDIR_DEPTH = 2x2
SYS_MIN_UID = 500
SYS_MIN_GID = 100
SYS_DEFAULT_UID = 1000
SYS_DEFAULT_GID = 1000
SYS_QUOTA_MULTIPLIER = 1048576
SYS_QUOTA_TYPE = courier
SYS_DEFAULT_MAXQUOTA = 500
SYS_DEFAULT_MAXALIAS = 100
SYS_DEFAULT_MAXUSERS = 100
SYS_DEFAULT_MAXNDQUOTA = 500
SYS_USER_DEFAULT_QUOTA = 5
SYS_USER_DEFAULT_NDQUOTA = 5
SYS_USER_DEFAULT_EXPIRE = 1y
SYS_BACKEND_TYPE = mysql
SYS_CRYPT_TYPE = md5crypt
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
SYS_MYSQL_TABLE = manager
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_PASSWD = password
SYS_LDAP_BASE = dc=test.com
SYS_LDAP_RDN = cn=Manager,dc=test.com
SYS_LDAP_PASS = secret
SYS_LDAP_HOST = localhost
SYS_LDAP_ATTR_USERNAME = mail
SYS_LDAP_ATTR_PASSWD = userPassword
SYS_RRD_DATADIR = /var/lib
SYS_RRD_TMPDIR = /tmp/viewlog

修改/services/extsuite/extmail/webmail.cf文件,参考内容如下:

SYS_CONFIG = /services/extsuite/extmail/
SYS_LANGDIR = /services/extsuite/extmail/lang
SYS_TEMPLDIR = /services/extsuite/extmail/html
SYS_HTTP_CACHE = 0
SYS_SMTP_HOST = 127.0.0.1
SYS_SMTP_PORT = 25
SYS_SMTP_TIMEOUT = 5
SYS_SPAM_REPORT_ON = 0
SYS_SPAM_REPORT_TYPE = dspam
SYS_SHOW_WARN = 0
SYS_PERMIT_NOQUOTA = 1
SYS_SESS_DIR = /tmp
SYS_UPLOAD_TMPDIR = /tmp
SYS_LOG_ON = 1
SYS_LOG_TYPE = syslog
SYS_LOG_FILE = /var/log/extmail.log
SYS_SESS_TIMEOUT = 0
SYS_SESS_COOKIE_ONLY = 1
SYS_USER_PSIZE = 10
SYS_USER_SCREEN = auto
SYS_USER_LANG = zh_US
SYS_APP_TYPE = WebMail
SYS_USER_TEMPLATE = default
SYS_USER_CHARSET = utf-8
SYS_USER_TRYLOCAL = 1
SYS_USER_TIMEZONE = +0800
SYS_USER_CCSENT = 1
SYS_USER_SHOW_HTML = 1
SYS_USER_COMPOSE_HTML = 1
SYS_USER_CONV_LINK =1
SYS_USER_ADDR2ABOOK = 1
SYS_MESSAGE_SIZE_LIMIT = 5242880
SYS_MIN_PASS_LEN = 2
SYS_MFILTER_ON = 1
SYS_NETDISK_ON = 1
SYS_SHOW_SIGNUP = 1
SYS_DEBUG_ON = 1
SYS_AUTH_TYPE = mysql
SYS_MAILDIR_BASE = /services/data/domains
SYS_AUTH_SCHEMA = virtual
SYS_CRYPT_TYPE = md5crypt
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
SYS_MYSQL_ATTR_CLEARPW = clearpwd
SYS_MYSQL_ATTR_QUOTA = quota
SYS_MYSQL_ATTR_NDQUOTA = netdiskquota
SYS_MYSQL_ATTR_HOME = homedir
SYS_MYSQL_ATTR_MAILDIR = maildir
SYS_MYSQL_ATTR_DISABLEWEBMAIL = disablewebmail
SYS_MYSQL_ATTR_DISABLENETDISK = disablenetdisk
SYS_MYSQL_ATTR_DISABLEPWDCHANGE = disablepwdchange
SYS_MYSQL_ATTR_ACTIVE = active
SYS_MYSQL_ATTR_PWD_QUESTION = question
SYS_MYSQL_ATTR_PWD_ANSWER = answer
SYS_LDAP_BASE = o=extmailAccount,dc=test.com
SYS_LDAP_RDN = cn=Manager,dc=test.com
SYS_LDAP_PASS = secret
SYS_LDAP_HOST = localhost
SYS_LDAP_ATTR_USERNAME = mail
SYS_LDAP_ATTR_DOMAIN = virtualDomain
SYS_LDAP_ATTR_PASSWD = userPassword
SYS_LDAP_ATTR_CLEARPW = clearPassword
SYS_LDAP_ATTR_QUOTA = mailQuota
SYS_LDAP_ATTR_NDQUOTA = netdiskQuota
SYS_LDAP_ATTR_HOME = homedir
SYS_LDAP_ATTR_MAILDIR = maildir
SYS_LDAP_ATTR_DISABLENETDISK = disablenetdisk
SYS_LDAP_ATTR_DISABLEPWDCHANGE = disablePasswdChange
SYS_LDAP_ATTR_ACTIVE = active
SYS_LDAP_ATTR_PWD_QUESTION = question
SYS_LDAP_ATTR_PWD_ANSWER = answer
SYS_AUTHLIB_SOCKET = /var/run/authdaemon/socket
SYS_G_ABOOK_TYPE = file
SYS_G_ABOOK_LDAP_HOST = localhost
SYS_G_ABOOK_LDAP_BASE = ou=AddressBook,dc=test.com
SYS_G_ABOOK_LDAP_ROOTDN = cn=Manager,dc=test.com
SYS_G_ABOOK_LDAP_ROOTPW = secret
SYS_G_ABOOK_LDAP_FILTER = objectClass=OfficePerson
SYS_G_ABOOK_FILE_PATH = /services/extsuite/extmail/globabook.cf
SYS_G_ABOOK_FILE_LOCK = 1
SYS_G_ABOOK_FILE_CONVERT = 0
SYS_G_ABOOK_FILE_CHARSET = utf-8

初始化extmail数据库,将/services/extsuite/extman/docs/init.sql中

mysql -uroot -p123456 < /services/extsuite/extman/docs/extmail.sql
mysql -uroot -p123456 < /services/extsuite/extman/docs/init.sql

重启apache,登录web邮件系统http://172.16.27.23,出现如下错误

Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /services/extsuite/extmail/libs/Ext/Logger.pm line 86.

ports安装p5-Unix-Syslog

cd /usr/ports/sysutils/p5-Unix-Syslog
make install clean

重新登录,问题解决.
  
  进入http://172.16.27.23/extman出现:

Can't locate DBI.pm in @INC (@INC contains: /services/extsuite/extman/libs /usr/local/lib/perl5/5.10.1/BSDPAN /usr/local/lib/perl5/site_perl/5.10.1/mach /usr/local/lib/perl5/site_perl/5.10.1 /usr/local/lib/perl5/5.10.1/mach /usr/local/lib/perl5/5.10.1 .) at /services/extsuite/extman/libs/Ext/Mgr/MySQL.pm line 13. BEGIN failed--compilation aborted at /services/extsuite/extman/libs/Ext/Mgr/MySQL.pm line 13. Compilation failed in require at /services/extsuite/extman/libs/Ext/Mgr.pm line 37.

解决办法安装,ports安装p5-DBD-mysql

cd /usr/ports/databases/p5-DBD-mysql
make install clean

出现下列错误解决办法:

Can't open /var/tmp/extman//sid_26da75f9aec35f2cbc6b4fa425ab525e, No such file or directory
mkdir /var/tmp/extman
chmor-R 777 /var/tmp/extman    

重新登录,问题解决.

七、测试邮件系统

1.进入 http://172.16.27.23/extman root@extmail.org默认的密码是extmail*123*,添加一个域test.com
   2.进入 http://172.16.27.23 注册新用户
   3.安装p5-MIME-Base64

cd /usr/ports/converters/p5-MIME-Base64/
make install clean

4.通过p5-MIME-Base64来取得用户名和密码的base64编码

perl -MMIME::Base64 -e 'print encode_base64("wq1\@test.com");'
d3ExQHRlc3QuY29t
perl -MMIME::Base64 -e 'print encode_base64("wq1");'
d3Ex

5.测试发送邮件(端口:25):

#telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 test.com ESMTP Mail System
ehlo mail.test.com
250-mail.test.com
250-PIPELINING
250-SIZE 14680064
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login
334 VXNlcm5hbWU6
d3ExQHRlc3QuY29t           //此用户名为:wq1@test.com
334 UGFzc3dvcmQ6
d3Ex                               //此用户密码为:wq1
235 2.7.0 Authentication successful   //验证成功
MAIL FROM:<wq1@test.com>   //告诉服务器发信人Email地址
250 2.1.0 Ok
RCPT TO:<wq2@test.com> //告诉收信人Email地址
250 2.1.5 Ok
DATA                        //告诉服务器开始写信
354 End data with <CR><LF>.<CR><LF>
SUBJECT:test2          //SUBJECT后面是邮件主题
test                         //邮件正文
.                              //换行后输入.后按回车,表示信件内容书写完毕
250 2.0.0 Ok: queued as 42FB742CB
quit
221 2.0.0 Bye
Connection closed by foreign host.

6.测试收取邮件(端口:110):

# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user wq2@test.com
+OK Password required.
pass wq2
+OK logged in.
list
+OK POP3 clients that break here, they violate STD53.
1 397
.
retr 1                        //返回第一封信的全部内容
+OK 397 octets follow.
Return-Path: <wq1@test.com>
Delivered-To: wq2@test.com
Received: from mail.test.com (localhost [127.0.0.1])
        by mail.test.com (Postfix) with ESMTPA id 7254842CB
        for <wq2@test.com> Wed,  9 Mar 2011 11:12:20 +0800 (CST)
SUBJECT:test2
Message-Id: <20110309031256.7254842CB@mail.test.com>
Date: Wed,  9 Mar 2011 11:12:20 +0800 (CST)
From: wq1@test.com
To: undisclosed-recipients:;

test
.
dele 1             //删除第一封信
+OK Deleted.
quit
+OK Bye-bye.
Connection closed by foreign host.

至此,一个简单的邮件服务器搭建完毕。

转载于:https://blog.51cto.com/qq15570453/1161356

FreeBSD下安装postfixl邮件系统相关推荐

  1. 在FreeBSD下安装mysql+apache+php

    转自:[url]http://bbs.chinaunix.net/viewthread.php?tid=389832[/url] 在FreeBSD下安装mysql+apache+php ======= ...

  2. FreeBSD下安装配置Hadoop集群(一)

    Hadoop其实本身是Linux下开发的应用,不过得益于虚拟机技术,也可以运行在其他平台.例如FreeBSD. 不过,Linux用的好好的,为什么用FreeBSD呢? 这个问题的回答其实比较复杂,基于 ...

  3. 我在Freebsd下安装帝国CMS系统整合Discuz的服务器环境配置

    编译MYSQL选项:  ./configure --prefix=/home/mysql --enable-assembler --with-charset=gbk --with-extra-char ...

  4. 在Linux系统下载email,LINUX下安装U-MAIL邮件系统

    U-Mail四个管理后台介绍 U-Mail是纯web管理的邮件系统,服务器的配置可以通过web方式来便捷的完成.U-Mail的管理权限分四个级别,分部是:"部门管理后台".&quo ...

  5. freebsd 安装php,FreeBSD下安装PHP5

    本来是一件很简单的事情. cvsup -gL 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfilecd /usr/ports/l ...

  6. 在freebsd下安装vim(Debian下类似)

    1, 首先安装通用的vim pkg_add vim 2,服务器上的vim插件不够丰富,我这里提供了插件包,解压到linux目录下 /Files/kungfupanda/vimsettings.rar ...

  7. FreeBSD下安装配置Hadoop集群(性能调优)

    hadoop的性能调优是个比较艰难的事情,由于这个系统的整个环境比较复杂,对于接触时间不长的人来说,配置都很难,更别说找出性能优化的点了. 性能优化涉及的方面很广,操作系统,网络配置,配置文件,调度器 ...

  8. 在FreeBSD下安装subversion

    与PHP5的安装一样,本来是一件很简单的事情. cvsup -gL 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfilecd / ...

  9. FreeBSD下安装配置Hadoop集群(三)

    先给自己做个广告: 开源Hive管理工具phpHiveAdmin今日更新0.05 beta2 ChangeLog: 1. sql查询页全部重写,复杂查询现在可以用异步非阻塞的方式实时的查看map/re ...

最新文章

  1. 原生js设置div隐藏或者显示_JS实现“隐藏与显示”功能(多种方法)
  2. ELK技术栈—Logstash—基础介绍
  3. 关于Java的一些句子
  4. java treemap_Java TreeMap size()方法与示例
  5. mysql 读写引擎_揭秘MySQL存储引擎spider
  6. MyBatis 在xml文件中处理大于号小于号的方法
  7. jenkins未授权访问漏洞记录(端口:7001,80,8080,50000)
  8. 解决Scrapy-Redis爬取完毕之后继续空跑的问题
  9. Tensorflow API解析 -目录
  10. base64编码 vba_[VBA]Base64编码和Base64解码
  11. java 解析csv_使用Java Scanner类解析CSV文件
  12. Java使用iTextPDF生成PDF文件
  13. We will rock you (我们将震憾你)
  14. Java的重载和重写区别(面试常见)
  15. mysql期中考试题及答案_MySQL数据库考试试题及答案 -
  16. PDM与Excel利用VB脚本进行互导
  17. 2015年终总结-青春如歌
  18. APM32F103 RTC内部时钟源秒中断例程测试
  19. 【java感悟】接口,抽象类的关系
  20. npm模块之opn使用教程(node **.js直接再浏览器中打开相应的文件)

热门文章

  1. Keil C51的库函数
  2. CMD下查询Mysql中文乱码的解决方法
  3. sql更新表的字段和主键
  4. 报错显示从客户端检测到有潜在危险的Request.Form 值
  5. TreeView,TreeNode,TreeNodeCollection 的使用
  6. linux 设置环境变量以及查看环境变量
  7. 命令执行——命令执行漏洞及(四)
  8. java quot;1quot;==quot;1quot;_JAVA: 为什么要使用quot;抽象类quot;? 使用quot;抽象类quot;有什么好处?...
  9. python的xpath用法_Python爬虫杂记 - Xpath高级用法
  10. python文件可以包括任何数据内容_python 文件数据合并(数据行不对应)?