OpenEMR là giải pháp quản lý hồ sơ sức khỏe và hoạt động y tế nguồn mở. Đây là giải pháp quản lý hồ sơ sức khỏe điện tử và hoạt động y tế, lập lịch, thanh toán điện tử và hỗ trợ quốc tế hóa được tích hợp đầy đủ. OpenEMR được ONC chứng nhận, nghĩa là OpenEMR đáp ứng các tiêu chuẩn của Văn phòng Điều phối viên Quốc gia về Công nghệ Thông tin Y tế (ONC).
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt OpenEMR trên máy chủ Ubuntu 24.04 với LEMP Stack (Linux, Nginx, MariaDB và PHP-FPM). Chúng tôi cũng sẽ chỉ cho bạn cách bảo mật OpenEMR bằng HTTPS từ Let's Encrypt và mở các cổng HTTP và HTTPS thông qua UFW (Tường lửa đơn giản).
Để bắt đầu, hãy chạy lệnh 'apt' bên dưới để cập nhật chỉ mục gói Ubuntu của bạn và cài đặt các gói LEMP Stack (Linux, Nginx, MariaDB và PHP-FPM). Nhập 'Y' để xác nhận cài đặt.
Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ 'nginx' bằng lệnh 'systemctl' bên dưới. Đảm bảo Nginx đang chạy và được bật.
Bây giờ hãy kiểm tra dịch vụ 'mariadb' bằng lệnh sau. Bạn sẽ thấy máy chủ MariaDB đang chạy và được bật trên máy chủ Ubuntu của bạn.
Cuối cùng, hãy kiểm tra dịch vụ 'php8.3-fpm' bằng lệnh bên dưới. Bạn sẽ thấy dịch vụ PHP-FPM đã hoạt động.
Chỉnh sửa tệp 'php.ini' bằng trình chỉnh sửa 'nano'.
Thay đổi cấu hình mặc định bằng lệnh sau. Đảm bảo điều chỉnh 'memory_limit' với RAM hiện tại của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Tiếp theo, chạy lệnh 'chgrp' bên dưới để thay đổi quyền sở hữu thư mục '/var/lib/php/sessions' thành người dùng 'www-data'.
Cuối cùng, khởi động lại dịch vụ 'php8.3-fpm' bằng lệnh bên dưới. Thao tác này sẽ áp dụng các thay đổi của bạn vào cài đặt PHP-FPM.
Trước tiên, hãy chạy lệnh 'mariadb-secure-installation' bên dưới để bảo mật máy chủ MariaDB của bạn.
Bây giờ bạn sẽ được hỏi về các cấu hình sau:
Đăng nhập vào máy chủ MariaDB bằng lệnh 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho OpenEMR. Trong ví dụ này, bạn sẽ tạo cơ sở dữ liệu mới 'openemr' với người dùng 'openemruser' và mật khẩu là 'password'. Bạn có thể điều chỉnh thông tin chi tiết về cơ sở dữ liệu bằng thông tin của mình.
Bây giờ hãy chạy truy vấn bên dưới để kiểm tra quyền cho 'openemruser'. Đảm bảo rằng người dùng có thể truy cập cơ sở dữ liệu 'openemr'.
Cuối cùng, nhập 'quit' để thoát khỏi máy chủ MariaDB.
Đi đến thư mục '/var/www' và tải xuống mã nguồn OpenEMR bằng lệnh 'wget' bên dưới.
Sau khi tải xuống, hãy chạy lệnh 'tar' bên dưới để giải nén mã nguồn OpenEMR và đổi tên thư mục mới thành 'openemr'. Với lệnh này, mã nguồn OpenEMR sẽ được lưu trữ trong thư mục '/var/www/openemr'.
Cuối cùng, hãy chạy lệnh 'chown' bên dưới để thay đổi quyền sở hữu thư mục '/var/www/openemr' thành người dùng 'www-data'.
Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/sites-available/openemr' bằng lệnh biên tập 'nano' sau.
Chèn cấu hình và đảm bảo thay đổi tùy chọn 'server_name' bằng tên miền của bạn tên.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh bên dưới để kích hoạt khối máy chủ 'openemr' và xác minh cú pháp Nginx của bạn. Nếu cú pháp Nginx của bạn đúng và phù hợp, bạn sẽ thấy đầu ra như sau 'test is successful - syntax is ok'.
Cuối cùng, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ web Nginx và áp dụng changes.
Trước khi thiết lập SSL, hãy chạy lệnh 'ufw' bên dưới để mở cả dịch vụ HTTP và HTTPS trên máy chủ của bạn. Bạn sẽ thấy đầu ra là 'thành công'.
Bây giờ hãy cài đặt plugin 'certbot' và 'python3-certbot-nginx' bằng lệnh 'apt' sau. Nhập 'Y' để xác nhận cài đặt.
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'certbot' bên dưới để tạo chứng chỉ SSL và bảo mật cài đặt OpenEMR của bạn.
Sau khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có trong thư mục '/etc/letsencrypt/live/domain.com'. Ngoài ra, cài đặt OpenEMR của bạn sẽ được bảo mật bằng HTTPS.
Đầu tiên, trình cài đặt sẽ kiểm tra quyền của mã nguồn OpenEMR, vì vậy hãy đảm bảo bạn có quyền thích hợp.
Chọn tùy chọn 'Tôi đã tạo cơ sở dữ liệu' để thiết lập tích hợp cơ sở dữ liệu của bạn.
Nhập thông tin chi tiết về cơ sở dữ liệu và quản trị viên mới cho OpenEMR.
Quá trình khởi tạo cơ sở dữ liệu sẽ diễn ra và người dùng quản trị của bạn sẽ được tạo.
Tiếp theo, hãy đảm bảo cấu hình PHP của bạn đáp ứng các yêu cầu của OpenEMR.
Sau khi cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập OpenEMR. Nhập tên người dùng quản trị và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.
Nếu thành công, bạn sẽ thấy bảng điều khiển OpenEMR sau.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt OpenEMR trên máy chủ Ubuntu 24.04 với LEMP Stack (Linux, Nginx, MariaDB và PHP-FPM). Chúng tôi cũng sẽ chỉ cho bạn cách bảo mật OpenEMR bằng HTTPS từ Let's Encrypt và mở các cổng HTTP và HTTPS thông qua UFW (Tường lửa đơn giản).
Điều kiện tiên quyết
Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có:- Máy chủ Ubuntu 24.04
- Người dùng không phải root có quyền quản trị viên
- Tên miền trỏ đến địa chỉ IP của máy chủ
Cài đặt LEMP Dependencies
OpenEMR là ứng dụng dựa trên web được viết bằng PHP và MySQL. Để cài đặt ứng dụng, bạn phải đảm bảo rằng cả PHP và MySQL đều được cài đặt. Trong hướng dẫn này, bạn sẽ chạy OpenEMR với LEMP Stack (Linux, Nginx, MariaDB và PHP). Vì vậy, hiện tại, bạn sẽ cài đặt các gói đó thông qua kho lưu trữ APT.Để bắt đầu, hãy chạy lệnh 'apt' bên dưới để cập nhật chỉ mục gói Ubuntu của bạn và cài đặt các gói LEMP Stack (Linux, Nginx, MariaDB và PHP-FPM). Nhập 'Y' để xác nhận cài đặt.
Mã:
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

Sau khi cài đặt hoàn tất, hãy kiểm tra trạng thái dịch vụ 'nginx' bằng lệnh 'systemctl' bên dưới. Đảm bảo Nginx đang chạy và được bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx

Bây giờ hãy kiểm tra dịch vụ 'mariadb' bằng lệnh sau. Bạn sẽ thấy máy chủ MariaDB đang chạy và được bật trên máy chủ Ubuntu của bạn.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Cuối cùng, hãy kiểm tra dịch vụ 'php8.3-fpm' bằng lệnh bên dưới. Bạn sẽ thấy dịch vụ PHP-FPM đã hoạt động.
Mã:
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

Cấu hình PHP-FPM
Sau khi LEMP Stack được cài đặt, hãy cấu hình cài đặt PHP-FPM bằng cách chỉnh sửa 'php.ini', sau đó khởi động lại dịch vụ PHP-FPM và áp dụng thay đổi.Chỉnh sửa tệp 'php.ini' bằng trình chỉnh sửa 'nano'.
Mã:
sudo nano /etc/php/8.3/fpm/php.ini
Mã:
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
Tiếp theo, chạy lệnh 'chgrp' bên dưới để thay đổi quyền sở hữu thư mục '/var/lib/php/sessions' thành người dùng 'www-data'.
Mã:
sudo chgrp -R www-data /var/lib/php/sessions
Mã:
sudo systemctl restart php8.3-fpm
Cấu hình máy chủ MariaDB
Bây giờ PHP đã được cấu hình, hãy cấu hình máy chủ MariaDB và tạo cơ sở dữ liệu mới cho OpenEMR. Trong phần này, bạn sẽ bảo mật máy chủ MariaDB bằng tiện ích 'mariadb-secure-installation' và tạo cơ sở dữ liệu và người dùng mới thông qua máy khách 'mariadb'.Trước tiên, hãy chạy lệnh 'mariadb-secure-installation' bên dưới để bảo mật máy chủ MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
- Nhấn ENTER để tiếp tục và cấu hình máy chủ MariaDB
- Nhập 'Y' để thiết lập mật khẩu gốc MariaDB, sau đó nhập và lặp lại mật khẩu của bạn
- Nhập 'Y' để vô hiệu hóa đăng nhập từ xa cho người dùng 'root'
- Nhập 'Y' để xóa cơ sở dữ liệu 'test' và các đặc quyền của nó
- Nhập 'Y' để hoàn tất cấu hình
Đăng nhập vào máy chủ MariaDB bằng lệnh 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE openemr;
CREATE USER 'openemruser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON openemr.* TO 'openemruser'@'localhost';
FLUSH PRIVILEGES;

Bây giờ hãy chạy truy vấn bên dưới để kiểm tra quyền cho 'openemruser'. Đảm bảo rằng người dùng có thể truy cập cơ sở dữ liệu 'openemr'.
Mã:
SHOW GRANTS FOR openemruser@localhost;

Tải xuống mã nguồn OpenEMR
Bây giờ bạn đã định cấu hình PHP-FPM và MariaDB máy chủ, bước tiếp theo là tải xuống mã nguồn OpenEMR và thiết lập cài đặt với quyền và quyền sở hữu phù hợp.Đi đến thư mục '/var/www' và tải xuống mã nguồn OpenEMR bằng lệnh 'wget' bên dưới.
Mã:
cd /var/www/
wget https://sourceforge.net/projects/openemr/files/OpenEMR%20Current/7.0.2/openemr-7.0.2.tar.gz
Mã:
tar -pxzf openemr-7.0.2.tar.gz
mv openemr-7.0.2 openemr
Mã:
sudo chown -R www-data:www-data /var/www/openemr
Thiết lập Khối máy chủ Nginx
Sau khi tải xuống mã nguồn OpenEMR, bạn sẽ tạo một khối máy chủ Nginx mới sẽ được sử dụng để chạy cài đặt OpenEMR của bạn. Vì vậy, hãy đảm bảo rằng bạn đã chuẩn bị tên miền và trỏ đến địa chỉ IP của máy chủ.Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/sites-available/openemr' bằng lệnh biên tập 'nano' sau.
Mã:
sudo nano /etc/nginx/sites-available/openemr
Mã:
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;
}
}
Bây giờ hãy chạy lệnh bên dưới để kích hoạt khối máy chủ 'openemr' và xác minh cú pháp Nginx của bạn. Nếu cú pháp Nginx của bạn đúng và phù hợp, bạn sẽ thấy đầu ra như sau 'test is successful - syntax is ok'.
Mã:
sudo ln -s /etc/nginx/sites-available/openemr /etc/nginx/sites-enabled/
sudo nginx -t

Cuối cùng, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ web Nginx và áp dụng changes.
Mã:
sudo systemctl restart nginx
Bảo mật OpenEMR bằng HTTPS
Trong phần này, bạn sẽ cài đặt Certbot và bảo mật OpenEMR bằng HTTPS. Điều này sẽ hiệu quả nếu bạn đang sử dụng tên miền công cộng và máy chủ. Trên máy chủ cục bộ hoặc phát triển, bạn có thể sử dụng chứng chỉ Tự ký.Trước khi thiết lập SSL, hãy chạy lệnh 'ufw' bên dưới để mở cả dịch vụ HTTP và HTTPS trên máy chủ của bạn. Bạn sẽ thấy đầu ra là 'thành công'.
Mã:
Sudo ufw allow 'Nginx Full'
Mã:
sudo apt install certbot python3-certbot-nginx -y
Mã:
sudo certbot --nginx -d openemr.howtoforge.local
Cài đặt OpenEMR
Mở trình duyệt web của bạn và truy cậphttps://openemr.howtoforge.local/ thông qua trình duyệt web.Đầu tiên, trình cài đặt sẽ kiểm tra quyền của mã nguồn OpenEMR, vì vậy hãy đảm bảo bạn có quyền thích hợp.

Chọn tùy chọn 'Tôi đã tạo cơ sở dữ liệu' để thiết lập tích hợp cơ sở dữ liệu của bạn.

Nhập thông tin chi tiết về cơ sở dữ liệu và quản trị viên mới cho OpenEMR.

Quá trình khởi tạo cơ sở dữ liệu sẽ diễn ra và người dùng quản trị của bạn sẽ được tạo.

Tiếp theo, hãy đảm bảo cấu hình PHP của bạn đáp ứng các yêu cầu của OpenEMR.

Sau khi cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập OpenEMR. Nhập tên người dùng quản trị và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.

Nếu thành công, bạn sẽ thấy bảng điều khiển OpenEMR sau.
