OpenEMR 是一款开源的健康档案和医疗实践管理解决方案。它集成了电子健康档案、实践管理、排程、电子账单以及国际化支持等功能。OpenEMR 通过了 ONC 认证,这意味着它符合美国国家卫生信息技术协调办公室(ONC)的标准。

本指南将介绍如何在 Ubuntu 24.04 服务器上,结合 LEMP 技术栈(Linux、Nginx、MariaDB 和 PHP-FPM)安装 OpenEMR。同时还会介绍如何使用 Let's Encrypt 的 HTTPS 来保护 OpenEMR,以及通过 UFW(简单防火墙)开放 HTTP 和 HTTPS 端口。

前提条件

在开始本指南之前,请确保你具备以下条件:

  • 一台 Ubuntu 24.04 服务器
  • 一个具有管理员权限的非 root 用户
  • 一个指向服务器 IP 地址的域名

安装 LEMP 依赖项

OpenEMR 是一个基于 PHP 和 MySQL 开发的 Web 应用程序。要安装它,必须确保 PHP 和 MySQL 都已安装。本指南将使用 LEMP 技术栈(Linux、Nginx、MariaDB 和 PHP)来运行 OpenEMR。现在,你将通过 APT 仓库安装这些软件包。

首先,运行以下 apt 命令来更新 Ubuntu 软件包索引并安装 LEMP 技术栈(Linux、Nginx、MariaDB 和 PHP-FPM)。输入 Y 确认安装。

sudo apt update
sudo apt install nginx mariadb-server php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-intl php-cli php-soap imagemagick libtiff-tools php-ldap

Ubuntu 24.04服务器安装OpenEMR教程

安装完成后,使用以下 systemctl 命令检查 nginx 服务状态。确保 Nginx 正在运行且已启用。

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Ubuntu 24.04服务器安装OpenEMR教程

接下来,使用以下命令检查 mariadb 服务。你会看到 MariaDB 服务器在 Ubuntu 服务器上正在运行且已启用。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Ubuntu 24.04服务器安装OpenEMR教程

最后,使用以下命令检查 php8.3-fpm 服务。你会看到 PHP-FPM 服务正在运行。

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

Ubuntu 24.04服务器安装OpenEMR教程

配置 PHP-FPM

LEMP 技术栈安装完成后,接下来通过编辑 php.ini 文件来配置 PHP-FPM,然后重启 PHP-FPM 服务使更改生效。

使用 nano 编辑器编辑 php.ini 文件。

sudo nano /etc/php/8.3/fpm/php.ini

将以下默认配置替换为以下内容。确保根据你的实际内存调整 memory_limit 的值。

max_execution_time = 60
max_input_time = -1
memory_limit = 512M
post_max_size = 30M
upload_max_filesize = 30M
max_input_vars = 3000
mysqli.allow_local_infile = On

保存文件并退出编辑器。

接下来,运行以下 chgrp 命令,将 /var/lib/php/sessions 目录的所属组更改为 www-data 用户。

sudo chgrp -R www-data /var/lib/php/sessions

最后,使用以下命令重启 php8.3-fpm 服务。这将使你对 PHP-FPM 安装的更改生效。

sudo systemctl restart php8.3-fpm

配置 MariaDB 服务器

PHP 配置完成后,接下来配置 MariaDB 服务器并为 OpenEMR 创建新的数据库。在本节中,你将使用 mariadb-secure-installation 工具来安全配置 MariaDB 服务器,并通过 mariadb 客户端创建新的数据库和用户。

首先,运行以下 mariadb-secure-installation 命令来安全配置你的 MariaDB 服务器。

sudo mariadb-secure-installation

你将被要求进行以下配置:

  • 按 Enter 键继续配置 MariaDB 服务器
  • 输入 Y 设置 MariaDB root 密码,然后输入并重复你的密码
  • 输入 Y 禁止 root 用户的远程登录
  • 输入 Y 删除 test 数据库及其权限
  • 输入 Y 完成配置

MariaDB 服务器安全配置完成后,你需要创建一个新的数据库和用户,供 OpenEMR 安装使用。

使用以下 mariadb 命令登录 MariaDB 服务器。在提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

运行以下查询语句来为 OpenEMR 创建新的数据库和用户。在本例中,你将创建一个名为 openemr 的新数据库,用户名为 openemruser,密码为 password。你可以根据自己的信息调整数据库详情。

CREATE DATABASE openemr;
CREATE USER 'openemruser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON openemr.* TO 'openemruser'@'localhost';
FLUSH PRIVILEGES;

Ubuntu 24.04服务器安装OpenEMR教程

现在运行以下查询语句来检查 openemruser 的权限。确保该用户可以访问 openemr 数据库。

SHOW GRANTS FOR openemruser@localhost;

最后,输入 quit 退出 MariaDB 服务器。

Ubuntu 24.04服务器安装OpenEMR教程

下载 OpenEMR 源代码

现在你已经配置好了 PHP-FPM 和 MariaDB 服务器,下一步是下载 OpenEMR 源代码并设置正确的权限和所有权。

进入 /var/www 目录,并使用以下 wget 命令下载 OpenEMR 源代码。

cd /var/www/
wget https://sourceforge.net/projects/openemr/files/OpenEMR%20Current/7.0.2/openemr-7.0.2.tar.gz

下载完成后,运行以下 tar 命令解压 OpenEMR 源代码,并将新目录重命名为 openemr。这样,OpenEMR 源代码将存储在 /var/www/openemr 目录中。

tar -pxzf openemr-7.0.2.tar.gz
mv openemr-7.0.2 openemr

最后,运行以下 chown 命令,将 /var/www/openemr 目录的所有权更改为 www-data 用户。

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

设置 Nginx 服务器块

下载 OpenEMR 源代码后,你将创建一个新的 Nginx 服务器块来运行 OpenEMR 安装。请确保你的域名已准备就绪并指向服务器 IP 地址。

使用以下 nano 编辑器命令创建新的 Nginx 服务器块配置文件 /etc/nginx/sites-available/openemr

sudo nano /etc/nginx/sites-available/openemr

插入以下配置,确保将 server_name 选项更改为你的域名。

server {
    listen 80;
    server_name openemr.example.com;

    access_log /var/log/nginx/openemr.access.log;
    error_log /var/log/nginx/openemr.error.log;

    root /var/www/openemr;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php;
    }

    # Pass PHP Scripts To FastCGI Server
    location ~* \.php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Depends On The PHP Version
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        include fastcgi_params;
    }

    # deny access to writable files/directories
    location ~* ^/sites/.*/(documents|edi|era) {
        deny all;
        return 404;
    }

    # deny access to certain directories
    location ~* ^/(contrib|tests) {
        deny all;
        return 404;
    }

    # Alternatively all access to these files can be denied
    location ~* ^/(admin|setup|acl_setup|acl_upgrade|sl_convert|sql_upgrade|gacl/setup|ippf_upgrade|sql_patch)\.php {
        deny all;
        return 404;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        log_not_found off;
        access_log off;
    }

    location ~ /\. {
        deny all;
    }
}

保存文件并退出编辑器。

现在运行以下命令来激活 openemr 服务器块并验证你的 Nginx 语法。如果语法正确无误,你将看到类似 test is successful - syntax is ok 的输出。

sudo ln -s /etc/nginx/sites-available/openemr /etc/nginx/sites-enabled/
sudo nginx -t

Ubuntu 24.04服务器安装OpenEMR教程

最后,运行以下 systemctl 命令重启 Nginx Web 服务器并应用你的更改。

sudo systemctl restart nginx

使用 HTTPS 保护 OpenEMR

在本节中,你将安装 Certbot 并使用 HTTPS 保护 OpenEMR。这需要你使用公共域名和服务器。在本地服务器或开发环境中,你可以使用自签名证书。

在设置 SSL 之前,运行以下 ufw 命令在服务器上开放 HTTP 和 HTTPS 服务。你将看到类似 success 的输出。

sudo ufw allow 'Nginx Full'

现在使用以下 apt 命令安装 certbotpython3-certbot-nginx 插件。输入 Y 确认安装。

sudo apt install certbot python3-certbot-nginx -y

安装完成后,运行以下 certbot 命令来生成 SSL 证书并保护你的 OpenEMR 安装。

sudo certbot --nginx -d openemr.howtoforge.local

过程完成后,你的 SSL 证书将保存在 /etc/letsencrypt/live/domain.com 目录中。同时,你的 OpenEMR 安装将通过 HTTPS 得到保护。

安装 OpenEMR

打开浏览器,通过浏览器访问 https://openemr.howtoforge.local/。

首先,安装程序将检查 OpenEMR 源代码的权限,请确保你拥有正确的权限。

Ubuntu 24.04服务器安装OpenEMR教程

选择 I have created the database 选项来设置你的数据库集成。

Ubuntu 24.04服务器安装OpenEMR教程

输入你的数据库详情以及 OpenEMR 的新管理员账号。

Ubuntu 24.04服务器安装OpenEMR教程

数据库初始化将开始运行,你的管理员用户也将被创建。

Ubuntu 24.04服务器安装OpenEMR教程

接下来,确保你的 PHP 配置满足 OpenEMR 的要求。

Ubuntu 24.04服务器安装OpenEMR教程

安装完成后,你将被重定向到 OpenEMR 登录页面。输入你的管理员用户名和密码,然后点击 Login

Ubuntu 24.04服务器安装OpenEMR教程

如果登录成功,你将看到以下 OpenEMR 仪表盘。

Ubuntu 24.04服务器安装OpenEMR教程

总结

恭喜!你已成功在 Ubuntu 24.04 服务器上完成了 OpenEMR 的安装。OpenEMR 现已在 PHP-FPM、Nginx Web 服务器和 MariaDB 服务器的支持下运行。你还通过 Certbot 和 Let's Encrypt 为 OpenEMR 配置了 HTTPS 安全保护。