如何使用LAMP堆栈(Apache、MySQL、PHP)在Ubuntu20.04上安装OpenEMR

来自菜鸟教程
跳转至:导航、​搜索

介绍

OpenEMR 是一个开源的电子健康记录和医疗实践管理工具。 医生和医疗保健机构使用它来管理电子病历、处方、患者人口统计跟踪、日程安排、报告和电子账单。 在本文发布时,OpenEMR 支持 30 多种语言。

在本教程中,您将在运行 LAMP 环境的 Ubuntu 20.04 服务器上安装 OpenEMR(Linux、Apache、MySQL、P[ X151X]HP)。

先决条件

  • 具有非 root sudo 启用的用户帐户和基本防火墙的 Ubuntu 20.04 服务器。 这可以使用我们的 Ubuntu 20.04 初始服务器设置指南进行配置。
  • 完全安装的 LAMP 堆栈,包括 Apache、MySQL 和 PHP,防火墙设置已调整为允许 HTTP 流量。 安装 LAMP 堆栈的说明可以在我们的指南 如何在 Ubuntu 20.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈的步骤 1 到 3 中找到。 请注意,LAMP 指南的第 4 步到第 6 步是可选的,因为它们用于测试目的,对于本教程来说是不必要的。

第 1 步 — 安装额外的 PHP 扩展

在设置我们的 LAMP 堆栈时,需要一组最小的扩展来让 PHP 与 MySQL 通信。 OpenEMR 需要两个额外的 PHP 扩展,您需要安装它们才能使其正常工作。 使用 apt 更新服务器的包列表并安装 php-xmlphp-mbstring 扩展:

sudo apt update
sudo apt install php-xml php-mbstring

安装两个扩展后,您需要重新加载 Apache Web 服务器以使更改生效:

sudo systemctl reload apache2

当您的网络服务器重新加载后,您应该准备好继续下一步。

第 2 步 — 为 OpenEMR 创建 MySQL 数据库

您现在将在 MySQL 中为 OpenEMR 创建一个数据库。 首先,以 数据库 root 用户身份登录 MySQL:

sudo mysql

数据库根 用户身份登录 MySQL 后,使用以下命令创建一个名为 openemr 的数据库:

CREATE DATABASE openemr;

接下来,创建一个新用户并为他们分配一个密码,方法是将下面的 PASSWORD 替换为您选择的强密码:

CREATE USER 'openemr_user'@'localhost' IDENTIFIED BY 'PASSWORD';

接下来,授予新用户对 openemr 数据库的权限:

GRANT ALL PRIVILEGES ON openemr.* TO 'openemr_user'@'localhost';

要启用这些更改,请输入以下命令:

FLUSH PRIVILEGES;

刷新权限后,您现在可以退出 MySQL:

exit

您现在已准备好进行下一步。

第 3 步 — 为 OpenEMR 配置 PHP

在此步骤中,您将按照 OpenEMR 文档的建议对 php.ini 文件进行一些更改。 如果您在新的 Ubuntu 20.04 服务器中遵循了所有先决条件,则适用于 Apache Web 服务器的 php.ini 应位于 /etc/php/7.4/apache2/php.ini。 如果您有不同的 PHP 版本,此路径可能会略有不同。 根据需要进行调整并使用您选择的文本编辑器打开文件。 在这里,我们将使用 nano

sudo nano /etc/php/7.4/apache2/php.ini

进入 php.ini 文件后,您将按照 OpenEMR 的建议更改几个选项的值。 如果您使用 nano,您可以使用 CTRL + W 搜索这些选项。 如果您正在调整的选项前面有一个分号;,请务必将其删除,因为分号用于注释掉一个选项。

应更改以下选项的值:

最大输入变量

此选项限制您的服务器可以在单个函数中使用的变量数量。 OpenEMR 要求此选项具有值 3000

/etc/php/7.4/apache2/php.ini

max_input_vars = 3000

max_execution_time

此选项限制脚本在终止之前允许运行的时间量(以秒为单位)。 OpenEMR 要求此选项具有值 60

/etc/php/7.4/apache2/php.ini

max_execution_time = 60

最大输入时间

此选项限制允许脚本解析输入数据的时间(以秒为单位)。 OpenEMR 要求此选项具有值 -1,这意味着使用 max_execution_time 代替:

/etc/php/7.4/apache2/php.ini

max_input_time = -1

post_max_size

此选项限制帖子的大小,包括上传的文件。 OpenEMR 要求此选项的值为 30M

/etc/php/7.4/apache2/php.ini

post_max_size = 30M

内存限制

此选项限制允许脚本分配的内存量。 OpenEMR 要求此选项的值为 256M

/etc/php/7.4/apache2/php.ini

memory_limit = 256M

mysqli.allow_local 文件

此选项允许使用 LOAD DATA 语句访问本地文件。 OpenEMR 要求打开此选项:

/etc/php/7.4/apache2/php.ini

mysqli.allow_local_infile = On

完成调整选项后,保存并退出文件。 如果您使用的是 nano,您可以按 CTRL+X,然后按 YENTER 确认。

接下来,您需要重新加载 Apache Web 服务器以使更改生效:

sudo systemctl reload apache2

当您的网络服务器重新加载后,您应该准备好继续下一步。

第 4 步 — 下载 OpenEMR

在此步骤中,您将下载 OpenEMR 并准备其文件以进行安装。 首先,使用命令 wget 下载 OpenEMR,该命令从 Internet 检索文件:

wget https://downloads.sourceforge.net/project/openemr/OpenEMR%20Current/5.0.2.1/openemr-5.0.2.tar.gz

接下来,使用 tar 命令提取文件。 xvzf 参数用于告诉 shell 提取文件(x),将提取的文件命名为(v),使用 gzip 解压缩文件(z),并使用命令中命名的文件 (f)。

tar xvzf openemr*.tar.gz

文件解压完成后,您应该有一个名为 openemr-5.0.2. 的目录,使用 mv 命令将目录名称更改为 openemr

mv openemr-5.0.2 openemr

接下来,将目录移动到您的 HTML 目录:

sudo mv openemr /var/www/html/

您现在需要更改目录的所有权。 使用 chown 命令和 R 标志将与 openemr 关联的所有文件和组的所有者设置为 www-data

sudo chown -R www-data:www-data /var/www/html/openemr

在安装过程中,OpenEMR 还要求您更改 sqlconf.php 文件的权限,使所有用户都可以读写该文件,但不能执行该文件。 安装完成后,我们将再次更改这些权限以保护您的设置。 这些权限可以通过使用 666 作为参数的 chmod 命令授予:

sudo chmod 666 /var/www/html/openemr/sites/default/sqlconf.php

更改 sqlconf.php 文件的权限后,您就可以进行下一步了。

第 4 步 — 安装 OpenEMR

在此步骤中,您将通过 Web 浏览器安装 OpenEMR 并配置 Apache Web 服务器。 打开 Web 浏览器并导航到 http://server_ip/openemr,将 server_ip 替换为服务器的 IP 地址。

如果一切正常,浏览器应该会显示 OpenEMR 设置页面:

单击 Proceed to Step 1。 您现在应该被引导至安装过程第 1 步的新 OpenEMR 设置页面:

在新页面上,选择我已经创建了一个数据库,因为您已经在本教程的第 3 步中创建了一个 OpenEMR 数据库。 然后单击 继续执行步骤 2

您的浏览器现在应该显示 OpenEMR 设置的第 2 步:

在 MySQL 服务器详细信息部分的 LoginPassword 字段中,输入您在步骤 3 中选择的用户名和密码。

在 OpenEMR 初始用户详细信息部分,创建初始用户登录名和密码。

如果您想为初始用户启用 2 Factor Authentication,请单击选项 Enable 2FA

然后点击创建数据库和用户。下一页加载可能需要几分钟。 此页面将验证用户和数据库的成功创建:

单击 继续执行步骤 4 继续。 下一页将确认访问控制列表的创建和配置:

单击 继续执行步骤 5 继续。 下一页将向您展示 OpenEMR 所需的 PHP 配置。 您当前的配置应该符合他们的要求,因为您已经在第 4 步中对其进行了调整。

单击 继续执行步骤 6 继续。 下一页将向您展示如何为 OpenEMR 配置 Apache Web 服务器:

要为 OpenEMR 配置 Apache Web 服务器,请创建一个名为 openemr.conf 的新配置文件。 您可以使用 nano 编辑器从终端执行此操作:

sudo nano /etc/apache2/sites-available/openemr.conf

在文件中,粘贴以下指令:

/etc/apache2/sites-available/openemr.conf

 <Directory "/var/www/html/openemr">
      AllowOverride FileInfo
      Require all granted
  </Directory>
  <Directory "/var/www/html/openemr/sites">
      AllowOverride None
  </Directory>
  <Directory "/var/www/html/openemr/sites/*/documents">
      Require all denied
  </Directory>

保存并关闭文件。 然后,重新启动 Apache 以加载更改:

sudo systemctl restart apache2

接下来,返回浏览器并单击继续选择主题。 在下一页上,选择一个主题并单击Proceed to Final Step

您现在应该被定向到最终设置页面,其中包含有关您的安装的确认详细信息:

此页面还将提供初始用户的用户名和密码详细信息。 在离开页面之前,请确保提供这些详细信息。 准备好后,单击底部的链接开始使用 OpenEMR。

将弹出一个窗口,询问您是否要注册安装。 做出选择后,使用您的初始用户凭据登录 OpenEMR。 登录后,您的浏览器应显示 OpenEMR 仪表板:

在继续之前,请确保按照下一步中的指示更改文件权限。

第 5 步 — 更改文件系统权限

为了提高系统的安全性,OpenEMR 建议用户在安装后更改多个文件的权限。 在此步骤中,您将更改这些文件的权限以进一步限制读写访问。

首先,您将更改您在步骤 3 中修改其权限的 sqlconf.php 文件的权限,以赋予所有者读写权限和组成员只读权限。

这些权限可以通过使用 644 作为参数的 chmod 命令授予:

sudo chmod 644 openemr/library/sqlconf.php

接下来,您将更改其他几个文件的权限,以仅允许文件所有者读取和写入文件。

通过对以下文件使用带有 600 参数的 chmod 命令授予这些权限:

sudo chmod 600 openemr/acl_setup.php
sudo chmod 600 openemr/acl_upgrade.php
sudo chmod 600 openemr/setup.php
sudo chmod 600 openemr/sql_upgrade.php
sudo chmod 600 openemr/gacl/setup.php
sudo chmod 600 openemr/ippf_upgrade.php

您的文件现在应该具有更安全的权限设置。

除了更改文件权限外,OpenEMR 的文档还强烈建议采取其他步骤来保护 OpenEMR 的每个组件。 这些步骤包括在安装后删除 OpenEMR 中的脚本、强制使用强密码、启用仅 HTTPS 流量、调整防火墙和强化 Apache。 请务必访问 OpenEMR 的 [安全文档] (https://www.open-emr.org/wiki/index.php/Securing_OpenEMR) 以了解有关如何最好地保护 OpenEMR 安装的更多信息。

结论

您现在已经使用 Apache、MySQL 和 PHP 在 Ubuntu 20.04 服务器上安装了 OpenEMR。 有关将域名指向您的服务器的说明,您可以按照我们的指南 如何从通用域注册商 指向 DigitalOcean 名称服务器。 对于 OpenEMR 文档,您可以访问 OpenEMR Wiki 页面