= 安装 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数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从 而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进 的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大 语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。