如何使用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-xml
和 php-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
,然后按 Y
和 ENTER
确认。
接下来,您需要重新加载 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 服务器详细信息部分的 Login 和 Password 字段中,输入您在步骤 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 页面。