= 安装 Evergreen 服务器 = :toc:
== 前言:引用的用户账户 ==
在后续章节中,我们会引用几个不同的账户,如下所示:
su - 命令并在提示时输入 root 账户的密码,从 user 账户切换到该账户。在 Ubuntu 上,您可以使用 sudo su - 命令并在提示时输入 user 账户的密码,从 user 账户切换到该账户。
** opensrf Linux 账户是您在安装 OpenSRF 时创建的账户。您可以通过执行 su - opensrf 命令从 root 账户切换到该账户。
** postgres Linux 账户在您安装 PostgreSQL 数据库服务器时自动创建。您可以通过执行 su - postgres 命令从 root 账户切换到该账户。== 前言:开发者说明 ==
[注意] 如果您使用从 http://evergreen-ils.org/egdownloads 下载的官方发布 tarball,请跳过本节
直接使用 Git 仓库中源代码而非官方发布 tarball 的开发者,在进行 ./configure 步骤之前必须执行一个步骤。
作为 user Linux 账户,在 Evergreen 源目录中执行以下命令以生成配置脚本和 Makefile:
== 安装先决条件 ==
Evergreen 有许多先决条件包,必须在成功配置、编译和安装 Evergreen 之前安装这些包。
Makefile.install 先决条件安装程序安装先决条件,将下面的 <osname> 替换为 debian-bookworm、debian-bullseye、debian-buster、ubuntu-jammy 或 ubuntu-noble:[[optional_developer_additions]] 3. 可选:开发者附加内容 + 要从 Git 源代码检出执行某些开发者任务,需要额外的包。以 root Linux 账户身份: +
== Web 员工客户端的额外步骤 ==
[注意] 如果您使用从 http://evergreen-ils.org/downloads 下载的官方发布 tarball,请跳过本节。否则,请确保您已安装xref:#optional_developer_additions[可选的开发者附加内容]后再继续。
[[install_files_for_web_staff_client]] === 为 Web 员工客户端安装 AngularJS 文件 ===
/usr/bin/chromium:[[install_files_for_angular_web_staff_client]] === 为 Web 员工客户端安装 Angular 文件 ===
/usr/bin/chromium:[[install_opac_deps]] === 安装 OPAC 皮肤依赖项 ===
请注意,这里没有构建步骤。
== 配置和编译说明 ==
目前,我们仍将所有内容安装在 /openils/ 目录中。从 Evergreen 源目录,以 user Linux 账户身份执行以下命令来配置和构建 Evergreen:
这些说明假设您也已经在 /openils/ 下安装了 OpenSRF。
如果没有,请根据需要调整 PATH,以便 Evergreen 的 configure 脚本可以找到 osrf_config。
== 安装说明 ==
/openils/conf。== 更改 Evergreen 文件的所有权 ==
/openils/ 目录及其子目录中的所有文件必须由 opensrf 用户拥有。以 root Linux 账户身份执行以下命令来更改文件的所有权:
== 运行 ldconfig ==
在 Ubuntu 或 Debian 上,以 root 用户身份运行以下命令:
== 开发者附加说明 ==
[注意] 如果您使用从 http://evergreen-ils.org/egdownloads 下载的官方发布 tarball,请跳过本节
== 配置Apache Web服务器 ==
cp Open-ILS/examples/apache_24/eg_24.conf /etc/apache2/sites-available/eg.conf cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf cp Open-ILS/examples/apache_24/eg_startup /etc/apache2/
openssl命令为Apache服务器生成一个新的SSL密钥。对于生产服务器,您应该购买一个签名的SSL证书,但在测试和开发过程中,您可以使用自签名证书并接受浏览器中的警告。以Linux的root用户执行以下命令为Apache服务器创建SSL密钥:
+
[source,bash]. 以Linux的root用户身份编辑您复制的eg.conf文件。
a. 要从任何网络上的任何工作站启用对离线上传/执行接口的访问,请进行以下更改(注意,您必须对生产实例进行安全设置):
* 将Require host 10.0.0.0/8替换为Require all granted
. 更改Apache服务器的用户。
/etc/apache2/envvars。将export APACHE_RUN_USER=www-data更改为
export APACHE_RUN_USER=opensrf。
. 以Linux的root用户身份,为Evergreen配置适当的KeepAlive设置。
更高的值可以通过允许在同一TCP连接上发送多个请求来提高单个客 户端的性能,但会增加使用所有可用Apache子进程和内存的风险。/etc/apache2/apache2.conf。
a. 将KeepAliveTimeout更改为1。
b. 将MaxKeepAliveRequests更改为100。
. 以Linux的root用户身份,配置prefork模块以启动并保持足够的Apache服务器可用,以便快速响应客户端而不会耗尽内存。以下设置是向Web公开默认Evergreen目录的站点的良好起点:/etc/apache2/mods-available/mpm_prefork.conf
[source,bash]在以下章节中了解更多关于其他Apache选项的信息:
== 为Evergreen应用程序配置OpenSRF ==
在/openils/conf/中有许多OpenSRF配置文件示例,您可以将其用作Evergreen安装的模板。以Linux的opensrf用户执行以下命令:
当您安装OpenSRF时,您在两个单独的域上创建了四个Jabber用户,并相应地编辑了opensrf_core.xml文件。请参考OpenSRF README,并以Linux的opensrf用户身份,使用与安装和测试OpenSRF时相同的Jabber用户和域编辑Evergreen版本的opensrf_core.xml文件。
=== 可选:为OpenSRF+Redis配置Evergreen
如果使用OpenSRF的Redis变体,请修改/openils/conf/opensrf_core.xml 以使用Redis设置而不是Ejabberd设置。
文件的几个部分有2个配置块,一个用于Ejabberd, 一个用于Redis。例如:
<passwd>password</passwd>
<port>5222</port>
对于每次出现这样的块,注释掉Ejabberd部分 并取消注释Redis部分。例如:
<passwd>456fc340-beba-4489-9070-0d6b49e9952b</passwd>
<port>6379</port>
[注意]
-b标志告诉cp命令创建目标文件的备份版本。目标文件的备份版本的文件名后附加了波浪号(~),因此如果您忘记了Jabber用户和域,可以从文件的备份版本中检索设置。
eg_db_config,在xref:#creating_the_evergreen_database[创建Evergreen数据库]中描述,会为您在opensrf.xml中设置数据库连接信息。
=== 为Evergreen应用程序配置操作触发器 ===
_操作触发器_为系统提供钩子,以便在发生给定事件时执行操作;例如,要生成提醒或逾期通知,
系统会处理checkout.due钩子,如果没有还书时间,则会触发潜在操作的事件。
要启用默认的钩子集,请以Linux的opensrf用户执行以下命令:
有关配置和运行操作触发器的更多信息,请参阅 xref:admin:actiontriggers_process.adoc#processing_action_triggers[通知/操作触发器]。
[[creating_the_evergreen_database]] == 创建Evergreen数据库 ==
=== 设置PostgreSQL服务器 ===
对于生产使用,大多数图书馆在专用机器上安装PostgreSQL数据库服务器。因此,默认情况下,Makefile.install先决条件安装程序不安装每个Evergreen系统所需的PostgreSQL数据库服务器。您可以使用以下命令在您选择的机器上安装Debian或Ubuntu所需的包,以Linux的root用户执行:
.安装PostgreSQL服务器包
每个操作系统构建目标都提供了每个操作系统所需的postgres服务器安装包。要安装Postgres服务器包,请使用make目标'postgres-server-<OSTYPE>-<POSTGRESVERSION>'。根据您的操作系统和所需的PostgreSQL版本,选择下面最合适的命令。
以下第一个命令将安装PostgreSQL 10,这是最低支持版本,也是推荐用于Evergreen生产环境的版本:
要安装PostgreSQL 12版本,请根据您的操作系统使用以下命令:
要安装PostgreSQL 13版本,请根据您的操作系统使用以下命令:
要安装PostgreSQL 14版本,请根据您的操作系统使用以下命令:
要安装PostgreSQL 15版本,请根据您的操作系统使用以下命令:
要安装PostgreSQL 16版本,请根据您的操作系统使用以下命令:
创建Evergreen PostgreSQL用户
您需要创建一个PostgreSQL超级用户来创建和访问数据库。以postgres Linux账户身份执行以下命令,创建一个名为evergreen的新PostgreSQL超级用户。当提示时,输入新用户的密码:
启用与PostgreSQL数据库的连接
您的PostgreSQL数据库可能默认配置为阻止连接,例如,它可能拒绝通过TCP/IP或来自其他服务器的连接尝试。要启用来自localhost的TCP/IP连接,请检查您的pg_hba.conf文件,该文件在Debian和Ubuntu上位于/etc/postgresql/目录中。
一个简单的方法是通过密码认证启用来自localhost到所有数据库的TCP/IP连接,这适用于在单台服务器上测试安装Evergreen,确保文件在任何"host ... ident"条目之前包含以下条目:
当您更改pg_hba.conf文件时,您需要重新加载PostgreSQL以使更改生效。有关配置PostgreSQL连接的更多信息,请参阅
http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html
=== 创建Evergreen数据库和模式 ===
创建evergreen PostgreSQL账户后,您还需要创建数据库和模式,并配置您的配置文件以指向数据库服务器。以root Linux账户身份从Evergreen源目录内执行以下 命令,将<user>、<password>、<hostname>、<port>和<dbname>替换为您的PostgreSQL数据库的适当值(其中<user>和<password>是您刚刚创建的evergreen PostgreSQL账户的值),并将<admin-user>和<admin-pass>替换为您想要为egadmin Evergreen管理员账户设置的值:
这将创建数据库和模式,并配置您的/openils/conf/opensrf.xml配置文件中的所有服务以指向该数据库。它还创建Evergreen cgi-bin管理脚本所需的配置文件,并将egadmin Evergreen管理员账户的用户名和密码设置为您请求的值。
您可以通过传递--help参数获取eg_db_config的完整选项列表。
=== 加载示例数据 ===
如果您在eg_db_config命令中添加--load-all-sample参数,一组权威记录和书目记录、索书号、副本、工作人员和普通用户以及交易将被加载到您的目标数据库中。这个示例数据集通常被称为_concerto_示例数据,可用于测试Evergreen功能,并为开发人员创建可以轻松重现的问题报告,他们可以使用自己的_concerto_示例数据副本。
如果您不介意多等一会儿,可以安装_enhanced_ concerto数据集。使用这个标志:--load-concerto-enhanced。这包括_concerto_中的所有数据。主要区别包括:
. 组织单位有友好的名称 . 采购数据 . 更多的计费场景 . 更多的架位位置和架位位置设置 . 权威数据 . 日语、西班牙语、法语和捷克语书目记录 . 元记录预约 . 馆藏统计类别 . 预订数据 . 预创建的OPAC轮播 . 期刊数据
=== 在远程服务器上创建数据库 ===
在Evergreen的生产实例中,您的PostgreSQL服务器应该安装在专用服务器上。
要在远程数据库服务器上创建数据库实例,只需在eg_db_config上使用--create-database标志。
== 启动Evergreen ==
memcached和ejabberd服务(如果它们尚未运行):-l标志仅在需要强制Evergreen将主机名视为localhost时才需要;如果您使用perl -ENet::Domain 'print Net::Domain::hostfqdn() . "\n";'返回的真实机器主机名配置了opensrf.xml,则不应使用-l标志。** 如果收到错误消息bash: osrf_control: 未找到命令,则表示您的环境变量PATH中不包含/openils/bin目录;这应该已在opensrf Linux账户的.bashrc配置文件中设置。要手动设置PATH变量,请以opensrf Linux账户编辑配置文件~/.bashrc并添加以下行:
如果在启动OpenSRF服务时Apache Web服务器正在运行,您可能无法成功登录OPAC或Web工作人员客户端,直到重启Apache Web服务器。
== 测试与Evergreen的连接 ==
安装并启动Evergreen后,通过srfsh测试与Evergreen的连接。作为Linux的opensrf用户,执行以下命令启动srfsh,并尝试使用您通过eg_db_config命令设置的egadmin Evergreen管理员用户名和密码登录Evergreen服务器:
您应该看到类似以下的结果:
Received Data: "250bf1518c7527a03249858687714376"
------------------------------------
Request Completed Successfully
Request Time in seconds: 0.045286
------------------------------------
Received Data: {
"ilsevent":0,
"textcode":"SUCCESS",
"desc":" ",
"pid":21616,
"stacktrace":"oils_auth.c:304",
"payload":{
"authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
"authtime":420
}
}
------------------------------------
Request Completed Successfully
Request Time in seconds: 1.336568
------------------------------------
如果这不起作用,就该进行一些故障排除了。
settings-tester.pl脚本,查看是否发现任何系统配置问题。该脚本位于Evergreen源代码树中的Open-ILS/src/support-scripts/settings-tester.pl。== 获取帮助 ==
需要安装或使用Evergreen的帮助?加入http://evergreen-ils.org/communicate/mailing-lists/的邮件列表,或在Freenode IRC网络的#evergreen频道联系我们。
== 许可证 ==
本作品采用知识共享署名-相同方式共享3.0未本地化版本许可协议授权。要查看该许可证的副本,请访问http://creativecommons.org/licenses/by-sa/3.0/或致信Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号