dp2标准版服务器安装 - DigitalPlatform/dp2 GitHub Wiki

一、概述

dp2系统的标准版服务器部署,一般包含环境准备-部署dp2kernel-部署dp2library-部署dp2opac-部署公众号 五大步骤。这里的部署公众号是指为数字平台的认证用户在数字平台的公众号大家庭中部署公众号,如果用户不需要在数字平台的公众号大家庭中部署,此步可以忽略。

由于整套标准版部署的服务器比较多,步骤繁杂,容易出错。所以在学习部署或者实际部署时建议一定要参考部署清单和文档来进行,以免出错。

部署清单下载地址:http://dp2003.com/workingfile/stardardserverinstall

服务器安装环境准备

详见 新服务器环境准备

模块层次关系及数据目录规划

在正式部署操作之前,需要先规划数据目录的存放地点。

dp2图书馆系统服务器基础部分由3个模块组成:dp2kernel、dp2library、dp2OPAC。
dp2kernel模块是dp2library的底层模块,可以将两者看为一个整体。数据目录规划时,dp2kernel数据目录和dp2library数据目录应放在同一上级目录下。
同样OPAC模块也属于服务器端模块,dp2OPAC访问dp2library,OPAC数据目录也应放在一起。一般数据目录规则为如下层次结构:

dp2(最上级目录)   
--lib1(第一个图书馆实例名)   
----kernel_data(dp2library实例的数据目录)   
----library_data(dp2kernel实例的数据目录)   
----opac_data(dp2opac实例的数据目录)   
--lib2(第二个图书馆实例名)   
----kernel_data   
----library_data   
----opac_data   

上述服务器端的3个模块的数据目录,应放在空间充足的磁盘上。

规划好存放地点之后,要将上一级路径拷贝到安装清单里,以便实际部署时直接拷贝。

二、 安装 dp2Installer安装实用工具

1.dp2服务器模块通过dp2Installer安装和进行实例配置,所以首先要安装dp2Installer安装实用工具。 dp2Installer安装地址:http://dp2003.com/dp2Installer/v3/publish.htm

2.在浏览器中输入上述安装地址,然后出现下图安装界面,点“安装”按钮
在页面下方弹出“你想怎么处理setup.exe”的提示,点击“运行”。也可以点“保存”,先将setup.exe保存到在本地目录,再运行setup.exe。

三、安装 数据库内核(dp2kernel)

每套服务器至少包含dp2kernel,dp2library,dp2OPAC(如果不需要使用公共查询可以不安装dp2OPAC)。

多实例服务器部署时每增加一个实例都要从dp2kernel开始依次安装dp2kernel,dp2library,dp2OPAC。

1.安装dp2Kernel

打开dp2Installer,点击菜单 dp2Kernel/安装dp2Kernel,系统开始安装dp2kernel数据内核,dp2instlaler框架窗口中的背景上显示安装的一些文件,然后弹出 实例设置 界面。(如果以前已经安装过dp2Kernel,可以直接点击菜单 dp2Kernel/配置实例 进入实例设置界面。)

2.配置kernel实例

2.1 设置实例名

在实例设置界面点【新增】按钮,弹出创建一个新实例的界面。这里需要填写实例名,实例名只能设置为英文模式,不能设置为中文,因为URL地址会根据所设置的实例名来设置的。如果同一台服务器上要部署多套图书馆系统,需要为每套系统设置易于辨识实例名称。

设置好实例名之后最好把设置的名称记录下来,以便后续部署dp2library的时候直接抄录

2.2 设置数据目录

为了方便后续管理,设置数据目录时,一般先建一个总目录,然后下级是各实例的数据目录。每一个实例要有一个以实例名称为目录名的总目录,下面存放dp2kernel,dp2library,dp2opac的相关子目录。

用户需要根据实际情况来设置,建议设置为类似“c:\dp2\实例名\kernel_data”的形式,

数据目录的位置要一次性设置到位,如果设置错误后面修改的话,会比较麻烦。

在设置之前,建议在计算机上找到预期存放目录的位置,手动创建与实例名相同的用于存放数据目录的子目录,然后将路径拷贝下来后,设置时直接黏贴,并在后面加上“\kernel_data”这一段。

2.3 设置SQL服务器(以MySQL Serval为例)

在SQL服务器一栏选择“MySQL Serval”,然后点后面【…】按钮
输入SQL服务器名:127.0.0.1;pipe=MYSQL;protocol=NamedPipe

SQL服务器名下面的SSL模式:选择 None
输入MySQL帐户信息:用户名和密码(使用MYSQL的用户名root和安装时设置的密码)

内核实例名:一般使用系统默认名
(注:如果使用SQL SERVER 详情请看 https://github.com/DigitalPlatform/dp2/issues/416)

2.4 设置root账户信息

点击root文本框右边的【…】按钮,系统弹出【root账户】对话框:此处需要给dp2kernel创建一个账户,这个账户是数据库内核层面的账户,这也是数据库内核的第一个账户,创建好它,是为了在数据库内核安装好以后,利用它进行必要的管理操作(注意,这里不再是指SQL Server里面的账户了)。 这个账户的用户名可以不叫root,而取成其他名字。但是从管理便利性考虑,没有特别的原因,不要修改这个用户名。

在这里设定的root帐户密码,一定要记住。如果忘记了密码,今后就没法对数据库内核进行管理了。所以强烈建议为这个账户设置密码。如果没有密码,意味着随便谁都可以对数据库内核进行管理操作,这是非常不安全的。

按【确定】按钮。 这就回到了“创建一个新实例”对话框。root账户已经设置好了。

2.5 设置协议绑定信息

点击右边的【…】按钮:
这里需要为当前这个实例选择一个及其以上协议绑定方式,点击选择协议。以下是几个协议的使用场合和区别:

NET.PIPE方式:如果数据库内核仅提供给位于本机的前端或其他服务器模块(例如图书馆应用服务器dp2Library)访问,可以选择NET.PIPE,也就是命名管道方式;这也是缺省选择的协议,无特殊原因不要修改。

NET.TCP方式:如果数据库内核仅提供给位于局域网内部的机器访问,可以选择NET.TCP方式。

HTTP方式:http族包含三种方式,以“http”开头、以“rest.http”开头、以“basic.http”开头。供外部访问。

由于dp2kernel是dp2系统最底层的数据库,具有很高的保密性,所以我们一般只勾选默认的“NET.PIPE方式”。只让本机访问dp2kernel。

绑定好协议后,直接将已绑定的协议复制出来存放在一个记事本里面,以便部署dp2library的时候直接粘贴使用。

选好协议绑定方式后,按【确定】按钮。这就回到了“创建一个新实例”对话框。协议绑定已经设置好了。

2.6 证书

一般情况下不需要为实例设置数字签名证书。

点【修改一个实例】对话框上的【确定】按钮: 这就回到了“实例设置”对话框,这样第一个实例已经创建好了。

最后,按“实例设置”对话框的【关闭】按钮,退出 按“实例设置”对话框。

安装完成后,数据库内核的Windows Service模块已经自动启动起来。用Windows操作系统的“管理工具/服务”可以看到它:dp2 kernel Service。

四、安装 图书馆应用服务器(dp2library)

4.1 安装 dp2library

打开dp2Installer,点击菜单 dp2library/安装dp2library,系统开始安装dp2library数据内核,dp2instlaler框架窗口中的背景上显示安装的一些文件,然后弹出 实例设置 界面。 (如果以前已经安装过dp2library,可以直接点击菜单 dp2library/配置实例 进入实例设置界面。)

4.2 新增配置实例

实例设置界面点【新增】按钮,弹出“创建一个新实例”对话框,这里需要填写实例名,实例名一定要设置为英文模式
如果云服务器管理多套图书馆系统,需要为每套系统设置易于辨识的实例名称,而且需要与对应的dp2kernel和dp2opac的实例名一致。

4.3 设置数据目录

根据经验一般为一套图书馆系统先建一个总的目录,然后下级是各实例的数据目录。
这里建议设置为类似c:\dp2\实例名\library_data 的形式

注意,library_data子目录一定要和前面创建的kernel_data放在同一个目录下

4.4 设置dp2Kernel服务器

需要点击"dp2Kernel服务器:右边的【…】按钮,系统弹出“请指定安装参数”对话框:在这里需要指定关于先前已经安装的数据库内核kernel的一些参数。
“数据库内核服务器URL”文字框中需要输入已安装好的数据库内核的WebService URL,该URL就是dp2Kernel配置实例中“绑定协议”的地址。

如果数据库内核已经(和应用服务器)安装在同一台机器上,那么窗口中的初始值可能就正好是恰当的值(如果服务器上部署了多个实例,这里需要注意确认,必要时手动设置)。

如果数据库内核安装在(和应用服务器不同的)另一台机器上,那么就需要根据实际情况指定其WebService URL。

配置代理账户:代理账户指存储在dp2kernel里面,用于接收dp2Library内的各种操作并在dp2kernel内核进行的实际操作的账号。该可以采用dp2kernel的root账号,也可以临时创建。设置后需要记录下来,以备后用。

设置完毕后按【确定】按钮,回到“创建一个新实例”对话框,dp2Kernel服务器已经设置好了。

4.5 设置supervisor账户信息。

点击“supervisor”右边的【…】按钮,进入“创建超级用户”对话框。
这里的超级用户是图书馆应用服务器层的超级用户,而不是数据库内核层面的账户。这是图书馆应用服务器安装好以后的少数几个初始账户之一。这个超级用户具有全部图书馆业务工作的权限。它有一个重要功能,就是具有创建其他(应用服务器层)账户的能力。
注:其他几个是“public”、“reader”、“opac”等。这几个帐户都是安装程序自动安装好的。

请记下这个账户的用户名和密码,在图书馆前端的日常操作中,系统管理员随时会用到这个账户。不要把这个帐户给普通图书馆工作人员使用,因为这个帐户权限太大,具有创建、删除、初始化数据库等很危险的能力!

创建完后按【确定】按钮。回到“创建一个新实例”对话框。supervisor账户已经设置好了。

4.6 设置协议绑定信息

点击"协议绑定"右边的【…】按钮,系统弹出“请选择服务器通讯协议”对话框:这里需要为当前这个实例选择至少一个协议绑定方式。

以下是几个协议的使用场合和区别:
NET.PIPE方式:当应用服务器仅提供给位于本机的前端或其他服务器模块时(例如公共查询服务器dp2OPAC)访问,可以选择NET.PIPE,也就是命名管道方式。

NET.TCP方式:勾选net.tcp协议时,一般会带有一个端口号,这个端口号一般不用删除(如果删除了就会采用80端口,此时其他http族的协议就不能采用80端口了)。当勾选了net.tcp方式并设置特殊端口后,同时要确保服务器上相应的入站端口要打开,这样前端电脑才可能访问成功(一般情况下,前端电脑不会限制出站端口,可以直接采用特殊端口访问的)

如果服务器上部署了多个实例,各实例net.tcp协议之间的端口号不能重复,tcp.net的端口号与http族协议所用的端口号也不能重复。

HTTP方式:如果应用服务器要提供给Internet上的广泛的机器访问,需要选择HTTP方式。 http族包含三种方式,以“http”开头、以“rest.http”开头、以“basic.http”开头。为了维护的方便,这三种在设置的时候可以直接把系统默认生成的端口号删除,这样就采用常用的80端口来访问(http族对于不同实例不用区分端口。并且80端口在防火墙的入站规则里面一般都是打开的,不需要另外设置)。如果用户需要提高进一步服务器的防护能力,也可以在此设置特殊的端口号,设置之后要注意在服务器的防火墙的入站规则中打开对应的端口号。

另外,http开头的协议是一个加密协议,对安全性做了严格要求。比如前端和服务器的时钟不能相差超过五分钟,还有其他各种检查,一项不符合就不让前端访问。这个加密协议速度比rest.http和basic http开头的协议略慢一些。

rest.http 和 basic.http 差不多。主要是通讯包格式有些风格上的差异。

这里的 “http”是 dp2 系统的词汇,是一个加密的,利用了数字签名证书的加密的 http 协议。因为前端和服务器之间的 Windows 版本差异,Windows 更新的版本采用了 TLS 更高版本的协议,目的是为了防范一些安全性漏洞,但旧版本的 Windows 还不支持 TLS 高版本协议,所以不能确保内务前端用这种加密的 http 协议一定能访问成功。有时候可以访问成功。

即便是刚才提到的“加密的 http 协议”,用的数字签名证书也是一个默认的 dp2003.com 域名的证书,自己创建的证书,理论上如果用户单位安装 dp2library 以后,要启用这个加密协议,要先找可靠的数字证书服务商购买数字证书!是要每年花钱的。然后把数字证书配置到 dp2library 里面,才能实现加密的效果

而用默认的 dp2003.com 域名的证书,安全性已经削弱了不少(核对主机名或者域名的步骤被跳过了)。为啥要用默认的这个证书呢?因为大部分用户单位缺钱,或者不愿意在这种安全性上面投资。

所以一般的用户单位我们建议使用 rest.http 或者 basic.http。这两个也是 http 协议,但只是没有加密而已。

在设置服务器URL地址的时候,需要注意:如果认为系统默认的URL地址内容太复杂,想要简单一些,可以将rest.http或者basic.http协议地址中的“/dp2library”去掉,但是http协议中“/dp2library”不能删除,要是删除的话就可能会与opac地址相冲突,导致opac不能访问。

选好协议绑定方式后,按【确定】按钮,回到“创建一个新实例”对话框。协议绑定已经设置好了。

设定好协议之后,将已经绑定的协议复制到一个记事本里面,以便后面安装dp2opac的时候需要使用时可以直接粘贴,dp2内务前端也是通过已经绑定的协议来访问的。

4.7 设置图书馆名

这个名称将用到一些打印输出的场合。可以设置为中文或英文。设置后按【确定】按钮,回到了“实例设置”对话框。此时dp2instlaler框架窗口中的背景上显示安装一些文件。

4.8 配置MSMQ和MongoDB参数

4.8.1 配置MSMQ

配置MSMQ是为了方便在数字平台微信公众号大家庭中部署公众号后,dp2capo能从所连接的dp2library服务器获得推送的消息(比如,读者收到预约到书和超期提醒相关信息)。如果认证用户单位需要启用MSMQ,由数字平台服务人员启用MSMQ并做好配置。如果是非认证用户,并没有MSMQ需求,此步骤要忽略不做。否则会造成服务器运行错误。

配置MSMQ之前一定要确保已经安装好了微软的MSMQ服务器,如果没有安装MSMQ服务器而这里配置了MSMQ,服务器会无法正常运行。

安装MSMQ服务器步骤

打开 【控制面板】-【程序与功能】,点击左上方的 【启用或关闭windows功能】,找到【microsoft Message Queue】,勾选【MSMQ的服务组件】。

在dp2installer程序中,点击菜单【dp2library】-【工具】-【启动MSMQ】

如何确认MSMQ服务器是否安装完毕:从windows服务里面可以看到“Message Queuing”服务处于运行状态,即表明MSMQ服务器安装完毕。

如何在dp2library配置MSMQ参数

在dp2Installer的dp2Library【创建一个实例】左下角,点击按钮【配置library.xml】,选择【自动配置MSMQ参数】,系统自动在library.xml配置文件里配置MSMQ。

注:如果需要删除library.xml中有关MSMQ的配置,可以在这里点击【自动配置MSMQ参数】的同时,按住ctrl。

有关配置详情请参考文档MSMQ配置具体说明

4.8.2 配置MongoDB参数

dp2系统有四个库都是mongodb数据库:【数据库】属性页的“预约到书”、“违约金”、“出版者”、“消息”四个库。安装mongodb完成后,才能看到这四个库。另外,读者的借阅历史是存储在MongoDB库中的,没有安装MongoDB将无法看到读者借阅历史。

配置MongoDB参数之前要先确保服务器上已经安装了MongoDB。MongoDB安装成功后,可以通过【windows管理工具】-【服务】中看到系统启动了MongoDB Server。具体安装步骤可以参考文档MongoDB的安装

确定MongoDB服务启动后,在dp2Installer的dp2Library【创建一个实例】左下角,点击按钮【配置library.xml】-【自动配置MongoDB参数】, 系统配置MongoDB参数。配置MongoDB的动作实际是library.xml配置文件里面配置访问Mongodb数据库的参数。

如果没有安装mongodb数据,但这里配置了参数,那么dp2library服务器启动时会报错。相关文档请参考不能访问MongoDB时,报ERR002

按【确定】按钮,回到“实例设置”对话框。此时dp2instlaler框架窗口中的背景上显示安装一些文件。

4.9 创建书目库

在实例设置界面配置完实例后,点击【关闭】按钮,系统弹出对话框询问是否自动创建4个书目库,

  • 选择【否】,对话框关闭,dp2instlaler安装完成,系统不会自动创建基础库,此时登录内务查看数据库是空的,没有数据库。如果部署该的目的是通过大备份恢复来迁移数据,这里选择【否】。

  • 如果部署该系统的目的是为了新建实例,这里选择【是】,系统自动创建基础数据库,在创建数据库中,会弹出登录对话框,输入dp2library的supervisor帐号密码 点【确定】,此时dp2instlaler框架窗口会显示正在配置dp2library实例,需要等待一段时间,如果出现【未响应】请耐心等待,一段时间后目录就创建好了,框架窗口会显示“创建初始书目库结 束”。

安装完成后,图书馆应用服务器的Windows Service模块已经自动启动起来。用Windows操作系统的“管理工具/服务”可以看到:dp2 Library Service正在运行。

经过以上配置后,可以通过dp2内务来访问标准版服务器了看看是不是正常。然后在服务器上检查dp2kernel当天的日志是否存在异常信息,在服务器上检查dp2library当天的日志是否存在异常信息(如何查看服务器日志)。如果一切正常,并记录下dp2library的版本号(如何查看版本号

五、安装 公共查询(dp2OPAC)

安装前的准备工作

安装公共查询前,要确保图书馆应用服务器已经安装在某台服务器计算机上。
即将要安装公共查询的计算机上,要已经安装好IIS,并已经安装好Microsoft .NET Framework 4.0或以上版本,如何确认请参见新服务器环境准备相关章节,

安装步骤:

5.1 在dp2Installer点击菜单 dp2OPAC/安装dp2OPAC,弹出“实例设置”对话框,按“新增”按钮。

虚拟目录名一般直接设置为可以辨识的英文形式的图书馆名称;如果服务器上配置了多个实例,虚拟目录名要注意区分,并且最好和对应的dp2kernel和dp2library的实例名相对应,以便后续维护。

5.2 设置数据目录。

如果只有一个实例,建议设置为类似“c:\dp2\实例名\opac_data”的形式。

如果服务器上配置了多个实例,要注意将当前实例的opac_data子目录要与对应的kernel_data和library_data放在同一子目录下。配置的时候建议从实际目录位置拷贝路径来设置。

5.3 设置dp2Library服务器信息

需要按【dp2Library服务器】右边的【...】按钮,在弹出的【请指定安装参数】对话框:

第一行输入dp2library服务器URL地址,这个地址需要从对应的dp2library实例里面拷贝,如果是多实例,要注意确认不要拷贝错误。

代理帐户:dp2library实例安装时,已经自动创建了opac帐户,密码为空,这里直接使用即可。如果想检查确认一下,可以按“检测”按钮
按“确定”按钮,回到“创建一个新实例”界面,信息已经填完整了。
按“确定”按钮,系统创建dp2OPAC实例。
按“关闭”按钮,回到dp2Installer安装实用工具界面,框架信息里显示 安装dp2OPAC结束。

在IIS管理器里面找到【LAPTOP-DOO691N5】-【网站】-【default web site】-右击当前opac名称-【管理应用程序】-【浏览】,默认的浏览器中会自动打开opac地址。记下这个地址。

OPAC地址类形式为http://localhost/dp2OPAC/, “localhost”表示服务器在当前电脑(如果使用与当前部署opac的服务器不同的电脑上访问OPAC,localhost需要更改为部署OPAC机器的IP地址);“dp2OPAC”是当前opac实例的虚拟目录名称。

5.4 在IIS里设定默认页面(2020年4月dp2系统升级后,此步不需手动配置)

详细配置可以参考[文档]:https://github.com/DigitalPlatform/dp2/issues/334

如果没有为opac设定默认网页,需要在地址后面加上“/searchbiblio.aspx”,否则服务器会不知道前端到底要访问哪个页面。

通过以上配置后,就可以通过浏览器访问到opac了。

注:如果访问opac报错码为404,要注意检查opac实例是否正常启动,同时检查IIS管理器里面【default web site】是否正常启动。

5.5 创建书评栏目缓存文件

supervisor帐号登录OPAC,在【书评】界面有文字提示“尚未创建栏目缓存”,点击【创建栏目存储】按钮,并在【是否确定创建栏目缓存】的提示框上点击【确定】,系统跳转显示创建栏目缓存的处理步骤的信息,如下,表示创建完成。

--- begin search ...
search end. hitcount=0, time=00:00:00.1836669
--- begin sort ...
sort end. time=00:00:00.0019316
完成

此步如果跳过,OPAC日志会有装载栏目存储时出错的提示。

装载栏目存储时出错: Attach 文件 C:\标准版服务器\instance3\opac_data\column\comment 和索引失败 :未能找到文件“C:\标准版服务器\instance3\opac_data\column\comment”

5.6 配置计数器

详细配置参见文档OPAC 页面计数功能的实现和重置

5.7 配置OPAC显示名称

打开dp2installer-dp2OPAC-打开数据文件夹 在opac_data目录中找到 webui.xml文件,修改libraries节点如下:

<libraries>
		<library code="" logoText="***图书馆">
			<cssMacroTable>
				<item name="%backgroundColor%">#8599a9</item>
			</cssMacroTable>
		</library>
</libraries>

如果是配分馆名称,code属性值是分馆代码。配置完后要回收应用池。

5.8 再测试访问opac,看看是不是正常访问

再次在浏览器里访问opac地址,确认所配置的计数器,图书馆名称是否显示正常,并点击【书评】标签,看看这个页面是否也正常显示。

5.9 在服务器上检查OPAC日志是否存在异常信息

在dp2Installer工具里,点击菜单【dp2OPAC】-【打开数据文件夹】-选择需要的实例,即可进入对应实例的数据文件夹-【log】-查看最新日期的日志文件就行。如果里面有error信息,则表示系统有异常。

5.10 如果OPAC日志显示opac.xml访问被拒绝,需要给OPAC数据目录添加IIS应用池权限

详情参考文档如何给OPAC数据目录添加IIS应用池权限

六、部署公众号

详细步骤请参考文档如何为图书馆配置微信公众号

⚠️ **GitHub.com Fallback** ⚠️