该方案与之前开发阶段部署方案的不同之处在于,所有支撑系统运行的环境都需要一步一步的安装和配置,不是采用vagrant方式直接还原开发环境进行部署。
运行环境
1.操作系统
本方案基于64位centos7.4实施部署。
注意开放端口如下表:
应用 | 端口 |
---|---|
dataverse | 8080 |
galssfish | 4848 |
postgres | 5432 |
solr | 8983 |
防火墙相关命令:
# systemctl start firewalld
启动(临时,重启后失效)
# systemctl stop firewalld
关闭(临时,重启后失效)
# systemctl status firewalld
查看防火墙状态
# systemctl disable firewalld
禁止开机启动
# systemctl enable firewalld
启用开机启动
2. Java
安装JDK1.8版本,可以是oracle或openJDK。
下载oracle-jdk安装包(jdk-8u181-linux-x64.rpm)放至服务器,进入文件目录执行命令:
# yum localinstall jdk-8u181-linux-x64.rpm
安装openjdk:
# yum install java-1.8.0-openjdk-devel
验证查看版本:
# java -version
3.Glassfish
我使用的dataverse4.8.6版本,官方建议选择glassfish4.1版本运行。
- 下载zip包解压到/usr/local
# wget http://dlc-cdn.sun.com/glassfish/4.1/release/glassfish-4.1.zip
# unzip glassfish-4.1.zip
# mv glassfish4 /usr/local
- 更新补丁包:
# cd /usr/local/glassfish4/glassfish/modules
# rm weld-osgi-bundle.jar
# wget http://central.maven.org/maven2/org/jboss/weld/weld-osgi-bundle/2.2.10.SP1/weld-osgi-bundle-2.2.10.SP1-glassfish4.jar
- 更新配置文件:
# vim /usr/local/glassfish4/glassfish/domains/domain1/config/domain.xml
将<jvm-options>-client</jvm-options>
中的-client
改为-server
。 - 启动并验证Weld版本:
# /usr/local/glassfish4/bin/asadmin start-domain
# /usr/local/glassfish4/bin/asadmin osgi lb | grep 'Weld OSGi Bundle'
- 开启远程访问
# cd home/glassfish/glassfish4/glassfish/
# ./bin/asadmin stop-domain
# ./bin/asadmin change-admin-password
# ./bin/asadmin start-domain
# ./bin/asadmin enable-secure-admin
控制台默认访问地址 :http://Sever_IP:4848
4.PostgreSQL
dataverse4.8.6版本,官方建议安装9.6版本。
- 安装并设置系统服务:
# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum makecache fast
# yum install -y postgresql96-server
# /usr/pgsql-9.6/bin/postgresql96-setup initdb
# /usr/bin/systemctl start postgresql-9.6
# /usr/bin/systemctl enable postgresql-9.6
- 配置:
如果postgresql与glassfish安装在同一台服务器,则可以将pg_hba.conf文件中内容调整:
host all all 127.0.0.1/32 trust
否则,不在同一服务器则增加:
host all all [Glassfish-IP-Address] 255.255.255.255 md5
需要开启远程访问增加:
host all all [Guest-IP] trust
如图所示,允许局域网内,192.168.1.0段的IP访问postgresql。
还需要开启listen_address,在postgresql.conf文件中,修改配置:
listen_addresses='*'
重启postgresql,使配置生效:
# systemctl restart postgresql-9.6
5.solr
安装solr,请先创建一个solr用户,dataverse4.8.6版本官方建议安装solr4.6.0。
从dataverse官网下载dvinstall.zip至/usr/local/src解压备用。
-
新建用户和目录:
# useradd solr
# mkdir /usr/local/solr
# chown solr:solr /usr/local/solr
-
安装:
# su - solr
# cd /usr/local/solr
# wget https://archive.apache.org/dist/lucene/solr/4.6.0/solr-4.6.0.tgz
# tar xvzf solr-4.6.0.tgz
# cd solr-4.6.0
-
配置:
将dvinstall.zip中解压出来的根目录下schema.xml覆盖至solr下的原始文件。
# cp /usr/local/src/dvinstall/schema.xml /usr/local/solr/solr-4.6.0/example/solr/collection1/conf
安装配置完成后,可以进入目录/usr/local/solr/solr-4.6.0/example执行启动服务测试。
# java -jar start.jar
默认访问地址 :http://Server_IP:8983/solr
- 创建开机启动服务:
创建启动脚本文件 solr,文件内容如下 :
#!/bin/sh
# Starts, stops, and restarts Apache Solr.
#
# chkconfig: 35 92 08
# description: Starts and stops Apache Solr
#服务具体位置
SOLR_DIR="/usr/local/solr/solr-4.6.0/example"
#服务启动命令
JAVA_OPTIONS="-Xmx1024m -DSTOP.PORT=8079 -DSTOP.KEY=mustard -jar start.jar"
#服务日志文件位置
LOG_FILE="/usr/local/solr/solr-4.6.0/example/logs/solr.log"
#JAVA运行环境
JAVA="/usr/bin/java"
case $1 in
start)
echo "Starting Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS 2> $LOG_FILE &
;;
stop)
echo "Stopping Solr"
cd $SOLR_DIR
$JAVA $JAVA_OPTIONS --stop
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac
将脚本文件放至/etc/init.d目录下,授权读写权限 :
# chown 755 solr
测试脚本执行效果 :
# /etc/init.d/solr start
如果执行报错,提示… … /bin/sh^M: bad interpreter: No such file or directory,则是因为你在windows下创建并编辑的脚本文件,默认fileformat为dos,需要通过vi命令修改为unix:
#vi solr
# :set ff
查看fileformat
# :set ff=unix
设置为unix
# :wq!
保存退出文件编辑
创建开机启动服务 :
# chkconfig --add solr
查看服务列表 :
# chkconfig --list
6.jq
安装并验证是否成功 :
# cd /usr/bin
# wget http://stedolan.github.io/jq/download/linux64/jq
# chmod +x jq
# jq --version
7.ImageMagick
安装:
# yum install ImageMagick
默认安装位置是/usr/bin/convert,如果不在这里请将convert所在路径更新至Glassfish的jvm配置中
<jvm-options>-Ddataverse.path.imagemagick.convert=/opt/local/bin/convert</jvm-options>
8.部署Dataverse
进入dvinstall.zip解压目录 :
# cd /usr/local/src/dvinstall
# ./install
开始数据库初始化及系统初始化配置,基本都使用默认值,具体配置官方列表如下:
Internet Address of your host: localhost
Glassfish Directory: /usr/local/glassfish4
Glassfish User: current user running the installer script
Administrator email address for this Dataverse: (none)
SMTP (mail) server to relay notification messages: localhost
Postgres Server Address: [127.0.0.1]
Postgres Server Port: 5432
Postgres ADMIN password: secret
Name of the Postgres Database: dvndb
Name of the Postgres User: dvnapp
Postgres user password: secret
Remote Solr indexing service: LOCAL
Rserve Server: localhost
Rserve Server Port: 6311
Rserve User Name: rserve
Rserve User Password: rserve
Administration Email address for the installation;
注意,如果SMTP验证不通过,可以将install脚本中的校验SMTP部分注释掉直接跳过即可。
elsif ($ENTRY eq 'MAIL_SERVER')
{
# my $smtp_server = "";
# while (! &validate_smtp_server() )
# {
# print "Enter a valid SMTP (mail) server:\n";
# print "(Or ctrl-C to exit the installer): ";
# $smtp_server = <>;
# chop $smtp_server;
# $CONFIG_DEFAULTS{'MAIL_SERVER'} = $smtp_server unless $smtp_server eq '';
# }
}
}
print "\n";
}
遇到问题需要部署Dataverse,先删除dvndb数据库后,再重新执行install脚本。
数据库删除过程:
# su - postgres
# psql
# DROP DATABASE dvndb;
\q
exit