Solr安装部署

1.下载Solr(可官网下载最新版)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.1.0/solr-7.1.0.zip

2.解压

unzip solr-7.1.0.zip

3.安装


mkdir -p /opt/solr-7.1.0/installation/
mkdir -p /opt/solr-7.1.0/installation/
cd solr-7.1.0/bin
./install_solr_service.sh /opt/solr-7.1.0.zip -d /opt/solr-7.1.0/data/ -i /opt/solr-7.1.0/installation/ -p 8080 -s solr -u solr

-d solr数据数据目录,比如存放logs,pid文件,core目录等等。默认在/var/solr
-i solr程序安装目录,默认在/opt。安装目录必须先创建好。
-p 执行solr绑定的端口,默认是8983端口。
-s solr服务的名称,默认是solr。可以指定别的,比如上面的 lcsolr
-u solr服务运行或者solr文件拥有者的用户,默认是solr。也只可以指定别的,如果指定的不存在怎会先创建相关用户
-n solr安装完毕之后不启动solr服务

安装完成后可以用service solr status查看运行情况,浏览器打开http://ip:8080查看运行结果

4.给服务添加登录权限:默认solr是通过http://ip:8080直接打开,这样不是很安全,我们需要加个用户名和密码做权限验证。

  • cd solr-7.1.0/installation/solr/server/etc && vi role.properties,内容如下:#
    # 这个文件定义用户名,密码和角色
    #
    # 格式如下
    # : [, …]
    #
    #userName: password,role
    test: 123,admin
  • cd solr-7.1.0/installation/solr/server/contexts && vi solr-jetty-context.xml,文件中插入安全处理程序设置标签
    <!-- 安全处理程序设置 -->
      <Get name="securityHandler">
        <Set name="loginService">
          <New class="org.eclipse.jetty.security.HashLoginService">
            <Set name="name">Role</Set>
            <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/role.properties</Set>
          </New>
        </Set>
      </Get>
    
  • cd solr-7.1.0/installation/solr/server/solr-webapp/webapp/WEB-INF && vi web.xml,文件中插入标签
    <!-- Rule -->
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Solr</web-resource-name>
          <url-pattern>/</url-pattern>
        </web-resource-collection>
        <auth-constraint>
          <role-name>admin</role-name><!-- 验证的角色,别写成用户名,如有多个角色可以写多个role-name 标签-->
        </auth-constraint>
      </security-constraint>
      <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Role</realm-name>
      </login-config>
    

5.新建一个core

cd /opt/solr-7.1.0/data/data
mkdir -p station_snapshot/data
mkdir -p station_snapshot/conf
cd station_snapshot/conf
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/solrconfig.xml .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/stopwords.txt .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/synonyms.txt .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/managed-schema schema.xml

schema.xml里定义了字段类型和字段,可以根据需要自行修改
6.打开http://ip:8080,Core Admin中Add Core

一句shell命令搞定代码行数统计

最粗略版
find . -name “*.java”|xargs wc -l|grep “total”|awk ‘{print $1}’
find . -name “*.java”|xargs cat|wc -l #Output:37634

去除空行版
find . -name “*.java”|xargs cat|grep -v ^$|wc -l #Output:36335

去除注释版
# exclude the lines begin with //
find . -name “*.java”|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l #Output:36064

confluence wiki 安装破解汉化

说明:此文在confluence-wiki-5.6.5版本亲测通过
附件:http://pan.baidu.com/s/1sjulMBr (包括了wiki的程序以及破解汉化需要的所有文件)


一、附件文件说明

1.atlassian-confluence-5.6.5.tar.gz    confluence wiki官方程序

2.mysql-connector-java-5.1.25-bin.jar    如果使用mysql需要此驱动

3.confluence5.x-crack.zip    破解工具

4.atlassian-extras-2.4.jar    破解需要的jar包

5.Confluence-Language-STD-CN.jar    汉化包

二、安装官方程序

1.tar -zxvf atlassian-confluence-5.6.5.tar.gz

2.vi atlassian-confluence/WEB-INFO/class/confluence-init.properties;修改confluence.home参数为自定一个目录,便于升级管理,license信息也在这个目录。

3.cd atlassian-confluence/bin && ./atlassian-confluence-start.sh(具体名字忘记了)
说明:当然我们可以自己装个tomcat,然后把atlassian-confluence下的confluence目录拿出来,然后配置下tomcat的server.xml(我就是这么做的)

4.启动成功后,浏览器打开,在出来的页面选右边这个选项,然后就进入要求输入license key的界面。这样我们官方程序以及安装成功

三、破解

1.解压附件中的confluence5.x-crack.zip,不用理会里面的atlassian-extras-2.4.jar,这个应该是其它版本用的。

2.我们直接进入iNViSiBLE,根据自己的系统运行keygen.sh或keygen.bat(需要有java运行环境)

3.在出来的程序界面中随便输入name,Server ID为《二、安装官方程序》第四步中的Server ID

4.点击path,选择附件中的atlassian-extras-2.4.jar,此时会生成一个新的atlassian-extras-2.4.jar,原来的jar变为了atlassian-extras-2.4.bak,将atlassian-extras-2.4.jar再重命名为atlassian-extras-3.2.jar,至此,我们最终需要的破解文件atlassian-extras-3.2.jar准备好了

5.点击gen,生成的key复制下,等下需要用到

6.进入confluence服务器的atlassian-confluence/confluence/WEB-INF/lib包下,把那6个atlassian-extras开头的jar包全部删掉,替换为我们刚刚生成好的atlassian-extras-3.2.jar。另外需要注意,如果使用mysql需要吧附件中的mysql-connector-java-5.1.25-bin.jar也放到这个目录里

7.重启confluence

8.重启后进入《二、安装官方程序》第四步界面,需要填入key,这个就是上面第五步中复制的key。

9.复制后下一步进入选择数据库连接。根据自己情况选择。貌似暂时不支持CentOS7 Mariadb,反正这里我搞了挺久,后来还是换成了Postgresql数据库。

10.OK,其它就一步步下去很简单了

四、注意点

1.由于我使用的是CentOS7,已经不再支持Mysql数据库,取而代之的是Mysql的一个分组Mariadb,找了很多文档说不支持Mariadb什么的,但是试了下,表倒是创建了几张出来,但是由于其它原因没有成功,后来也就放弃了尝试,直接换成了postgresql。

2.confluence-wiki对系统内存要求比较高,建议内存2G+,我用的2G,装完后只剩了几百兆的内存了。512G、1G的内存在配置完数据库连接后的下一步容易卡死,然后Tomcat报内存溢出

Tomcat配置多域名等

1.Tomcat配置多域名

      <Host name="www.qunmenghui.com" appBase="vhost_qunmh"
        unpackWARs="true" autoDeploy="false"
        xmlValidation="false" xmlNamespaceAware="false">
        <Alias>xn--lswx9to4g.com</Alias>
        <Alias>www.xn--lswx9to4g.com</Alias>
        <Alias>xn--6oq728go1f.com</Alias>
        <Alias>www.xn--6oq728go1f.com</Alias>
      </Host>

2.中文域名解析
中文域名归根结底其实还是英文域名,只不过走了层国内的DNS,吧中文解析成了英文在走国际
1)吧中文域名转为punycode 链接:http://www.cnkuai.cn/zhuanma.asp
2)同英文域名一样解析

3.配置系统根目录为根目录,主要没有ROOT目录

     <Host name="file01.dalitodo.net" appBase="/data/todo_html"
        autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="." debug="0" reloadable="true" /> 
     </Host>

4.虚拟目录

     <Host name="file01.dalitodo.net" appBase="vhost_dltd"
        autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
        <Context path="/uploads" docBase="/data/uploads" debug="0" reloadable="true" /> 
     </Host>

这样在tomcat里可以通过/uploads来访问/data/uploads功能,在图片文件上传时候特别有用

linux下删除乱码文件

根据inode 来修改或删除linux 下乱码的文件

1. 创建测试文件:
touch 1?.txt

2. 查询inode :
[oracle@test]$ ll -i
total 14694452
17956913 -rw-r–r– 1 oracle oinstall          0 Jan 18 20:24 1?.txt

3. 修改测试文件名:
find . -inum 17956913 -exec mv {} file.txt \;

4. 检查修改结果
[oracle@test]$ ll
total 14694452
….
-rw-r–r– 1 oracle oinstall          0 Jan 18 20:24 file.txt

记录:删除乱码的文件可使用 find . -inum 17956913 -exec rm {} \;

Linux unzip解压后中文名乱码

1.vi uzip文件
2.复制一下内容(Python)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# uzip.py

import os
import sys
import zipfile

print "Processing File " + sys.argv[1]

file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
    utf8name=name.decode('gbk')
    print "Extracting " + utf8name
    pathname = os.path.dirname(utf8name)
    if not os.path.exists(pathname) and pathname!= "":
        os.makedirs(pathname)
    data = file.read(name)
    if not os.path.exists(utf8name):
        fo = open(utf8name, "w")
        fo.write(data)
        fo.close
file.close()

3.chmod +x uzip
4../uzip xxxx.zip

Tomcat中文路径/文件名问题

原因:Tomcat Connector所用的URI解码默认用的是 ISO-8859-1,而一般浏览器默认用的发送编码为UTF-8,这样问题就出现了
解决:
在server.xml中类似如下配置:

<Connector port=”8080″ maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″ enableLookups=”false” redirectPort=”8443″ acceptCount=”100″ debug=”0″ connectionTimeout=”20000″ disableUploadTimeout=”true” URIEncoding=”UTF-8″ />

其中关键是 URIEncoding=”UTF-8″ 这项,其含义是指定URI的编码为:UTF-8

postfix 实现 tls smtps pop3s

先安装好 postfix openssl courier-imap

mkdir /etc/postfix/etc/tls
cd /etc/postfix/etc/tls

openssl req -new -x509 -nodes -out cert.pem

———————————————-
Generating a 1024 bit RSA private key
…………………………………………………………………………….++++++
……++++++
writing new private key to ‘privkey.pem’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:CN                               ←此处为国家名称代码
State or Province Name (full name) [Some-State]:GD                   ←此处为地域(省)名称
Locality Name (eg, city) []:SZ                                      ←此处为城市名称
Organization Name (eg, company) [Internet Widgits Pty Ltd]:test     ←此处为单位名称
Organizational Unit Name (eg, section) []:IT                           ←此处为部分名称                                                                             
Common Name (eg, YOUR name) []:test                        ←此处为你名称或服务器名字或省略
Email Address []:test@test.com                              ←此处为管理邮件

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:123456                              ←输入密码
———————————–

#chown root:postfix *
#chmod 640 *
cd ..

配置文件main.cf 添加

#smtpd-tls
smtpd_tls_cert_file = $config_directory/tls/cert.pem
smtpd_tls_key_file = $config_directory/tls/privkey.pem
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom

启动smtps的守护进程
配置文件master.cf

#===================================================
smtps     inet  n       –       n       –       –       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

注意“-o”前面的空格

重新加载Postfix配置文件

#postfix reload

检查并测试TLS是否启动成功
Smtp默认SSL端口是465
[root@mail ~]# netstat -nat |grep 465
tcp        0      0 0.0.0.0:465                 0.0.0.0:*                   LISTEN

#telnet localhost 25    #测试是否启动TLS加密

Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
220 Welcome to our mail.test.com ESMTP,Warning:Version not Available!
ehlo lanexpert.local
250-mail.lanexpert.local
250-PIPELINING
250-SIZE 14336000
250-VRFY
250-ETRN
250-STARTTLS      #多出一行
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Starttls        #手动输入
220 2.0.0 Ready to start TLS     #显示此字样为成功启用
quit
quit
Connection closed by foreign host.

二、启用POP3及IMAP加密功能
1.设置POP3s  (Port:995)证书产生的配置文件

# vi /usr/local/courier-imap/etc/pop3d.cnf

根据自己的实据情况作出相应的修改

RANDFILE = /usr/local/courier-imap/share/pop3d.rand

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

[ req_dn ]
C=CN      #国家代码
ST=GD    #地域或省名称
L=SZ      #城市名称
O=test    #组织名称
OU=IT               #单位名称
CN=localhost   
emailAddress=test@test.com      #管理邮件

[ cert_type ]
nsCertType = server

2.设置IMAPs(Port:993)证书产生的配置文件

# nano /usr/local/courier-imap/etc/imapd.cnf


RANDFILE = /usr/local/courier-imap/share/imapd.rand

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

[ req_dn ]
C=CN
ST=GD
L=sz
O=test
OU=IT
CN=localhost
emailAddress=test@test.com


[ cert_type ]
nsCertType = server

3.        运行以下命令生成安全登陆认证的金钥imapd.pem和pop3d.pem文件,存放于/usr/local/courier-imap/share/目录下

#/usr/local/courier-imap/sbin/mkimapdcert
#/usr/local/courier-imap/sbin/mkpop3dcert

# ll /usr/local/courier-imap/share/*.pem
-rw——- 1 root root 1999 Jul 14 12:24 /usr/local/courier-imap/share/imapd.pem
-rw——- 1 root root 2003 Jul 14 12:24 /usr/local/courier-imap/share/pop3d.pem

4.        修改imapd-ssl及pop3d-ssl配置文件,启用imapd-ssl及pop3d-ssl

#vi /usr/local/courier-imap/etc/imapd-ssl
将 IMAPDSSLSTART=NO
改为:

IMAPDSSLSTART=YES

#vi /usr/local/courier-imap/etc/pop3d-ssl
将POP3_STARTTLS=NO
改为:

POP3_STARTTLS=YES

保存并退出,重启courier-imapd 服务

service courier-imapd restart

检查imapd-ssl及pop3d-ssl启动是否正常:

[root@mail ~]# netstat -nat |grep :99
tcp        0      0 :::993                      :::*                        LISTEN
tcp        0      0 :::995                      :::*                        LISTEN

pop3s服务可能会无法起动,j缺少文件,将couriertls 拷贝到/usr/local/courier-imap/bin下

修改Postfix默认显示邮件大小5M限制

1. 修改/etc/php.ini
max_execution_time = 30 #改为60 (增加处理脚本的时间限制)
memory_limit = 8M #改为50M (这样才能发10M的附件)
post_max_size = 2M #改为50M
upload_max_filesize = 2M #改为50M

2. 修改/etc/postfix/main.cf, 添加如下语句:
message_size_limit = 69120000
postfix的默认值是10M, 但这指的是邮件正文和编码后附件的总和, 经过base64编码,附件的大小会增加35%左右, 因此这里设定可接受邮件的大小为69M
可以使用如下命令查看postfix的有关设定:
# /usr/sbin/postconf | grep size

3. 修改/var/www/extsuite/extmail/webmail.cf
SYS_MESSAGE_SIZE_LIMIT = 51200000

————————————————————-
这个我以前的一个文档,如果你用nginx跑extmail的话,nginx还要设置
例如 client_max_body_size 20m;

如果没有使用php可以忽略步骤1

Linux安装Extmail1.6

系统环境

Linux hzbenhe 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

Red Hat Enterprise Linux Server release 6.2 (Tikanga)

安装过程
根据http://wiki.extmail.org/extmail_solution_for_centos-5安装就可以
yum源:使用EMOS1.6.ISO本地源

安装过程整体来说还是比较简单顺利的。
目前已安装到《拾壹、配置Courier-IMAP》web和客户端邮件都可以正常收发

暂时没有配置安装垃圾邮件过滤。

安装问题
1.安装ExtMail yum install extsuite-webmail时候perl版本哟问题,我本来系统安装的比iso里的perl和要求的版本高,所以我就把系统里的先删了,安装了iso里的perl
2.同意安装cyrus-sasl时候有个cyrus-sasl-lib版本系统已有的比原来的高。
先把原来的删了rpm -e cyrus-sasl-lib,然后在EMOS包里找到cyrus-sasl-lib的rpm包安装上再yum install cyrus-sasl就可以搞定
3.telnet localhost 25错误如下

Oct 31 18:49:40 AY130822170240945887Z postfix/smtpd[10456]: connect from localhost[127.0.0.1]
Oct 31 18:49:40 AY130822170240945887Z postfix/smtpd[10456]: warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
Oct 31 18:49:40 AY130822170240945887Z postfix/smtpd[10456]: fatal: no SASL authentication mechanisms
Oct 31 18:49:41 AY130822170240945887Z postfix/master[10443]: warning: process /usr/libexec/postfix/smtpd pid 10456 exit status 1
Oct 31 18:49:41 AY130822170240945887Z postfix/master[10443]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

安装了cyrus-sasl-plain后就ok

4.Centos5.4安装Emos1.5时候根据文档安装下来没什么大的问题。但是在测试收发邮件时候发现只能发送,不能接受,同域下的可以正常收发。
后来用了客户端,发现不能连上pop3和smtp,这个是应为iptables原因,吧25 110加上白名单就ok
但是用客户端只能拉取服务器邮件不能发送。
正纠结了
后来在远程telnet 25不通,110通,netstat查看是已经开启了25端口,此时一位是阿里云服务器屏蔽了25端口。继续找原因
在服务器端telnet localhost 25通,telnet mail.xxx.com 不通,域名是可以正确解析到本机ip的
这样问题很明显了,是telnet域有问题。
后来netstat发现25端口在监听了127.0.0.1的,而110监听0.0.0.0也就是所有的来路。这就难怪了
好,找到了问题所在。
解决:
修改main.cf
inet_interfaces = localhost 改为 inet_interfaces = all
重启postfix
然后测试下,OK了web,和客户端都能正常收发了。

这个inet_interfaces配置在EMOS1.6中已经取消。