Cómo instalar OpenEMR en un servidor Ubuntu 24.04

OpenEMR es una solución de código abierto para la gestión de historiales médicos y consultas médicas. Es una historia clínica electrónica totalmente integrada y con gestión de consultas, programación, facturación electrónica y soporte de internacionalización. OpenEMR cuenta con la certificación ONC, lo que significa que cumple las normas de la Oficina del Coordinador Nacional de Tecnología de la Información Sanitaria (ONC).

Esta guía te mostrará cómo instalar OpenEMR en el servidor Ubuntu 24.04 con la pila LEMP (Linux, Nginx, MariaDB y PHP-FPM). También te mostraremos cómo asegurar OpenEMR con HTTPS de Let’s Encrypt y abrir puertos HTTP y HTTPS mediante UFW (Cortafuegos sin complicaciones).

Requisitos previos

Para empezar con esta guía, asegúrate de que tienes

  • Un servidor Ubuntu 24.04
  • Un usuario no root con privilegios de administrador
  • Un nombre de dominio que apunte a la dirección IP del servidor

Instalación de las dependencias de LEMP

OpenEMR es una aplicación web escrita en PHP y MySQL. Para instalarla, debes asegurarte de que tanto PHP como MySQL están instalados. En esta guía, ejecutarás OpenEMR con la pila LEMP (Linux, Nginx, MariaDB y PHP). Así que, por ahora, instalarás esos paquetes a través del repositorio APT.

Para empezar, ejecuta el siguiente comando‘apt‘ para actualizar tu índice de paquetes de Ubuntu e instalar los paquetes de la Pila LEMP (Linux, Nginx, MariaDB y PHP-FPM). Introduce ‘Y’ para confirmar la instalación.

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

instalar deps

Una vez completada la instalación, comprueba el estado del servicio‘nginx‘ con el comando ‘systemctl’ que aparece a continuación. Asegúrate de que Nginx se está ejecutando y está habilitado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

comprobar nginx

Ahora comprueba el servicio‘mariadb‘ con el siguiente comando. Verás que el servidor MariaDB se está ejecutando y está habilitado en tu servidor Ubuntu.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

comprobar mariadb

Por último, comprueba el servicio‘php8.3-fpm‘ con el siguiente comando. Verás que el servicio PHP-FPM está funcionando.

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

comprobar php-fpm

Configurar PHP-FPM

Una vez instalada la pila LEMP, vamos a configurar la instalación de PHP-FPM editando el archivo «php.ini», reiniciando a continuación el servicio PHP-FPM y aplicando los cambios.

Edita el archivo‘php.ini‘ con el editor‘nano‘.

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

Cambia la configuración por defecto por la siguiente. Asegúrate de ajustar el‘memory_limit‘ con tu memoria RAM actual.

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

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando ‘chgrp’ para cambiar la propiedad del directorio‘/var/lib/php/sessions‘ al usuario‘www-data‘.

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

Por último, reinicia el servicio«php8.3-fpm» con el siguiente comando. Esto aplicará tus cambios a tu instalación de PHP-FPM.

sudo systemctl restart php8.3-fpm

Configurar el servidor MariaDB

Ahora que PHP está configurado, vamos a configurar el servidor MariaDB y crear una nueva base de datos para OpenEMR. En esta sección, asegurarás el servidor MariaDB con la utilidad‘mariadb-secure-installation‘ y crearás una nueva base de datos y un nuevo usuario mediante el cliente‘mariadb‘.

En primer lugar, ejecuta el siguiente comando«mariadb-secure-installation» para proteger tu servidor MariaDB.

sudo mariadb-secure-installation

Ahora se te preguntará por las siguientes configuraciones:

  • Pulsa ENTER para continuar y configurar el servidor MariaDB
  • Introduce‘Y‘ para configurar la contraseña de root de MariaDB, luego escribe y repite tu contraseña
  • Introduce‘Y‘ para desactivar el inicio de sesión remoto para el usuario‘root
  • Introduce«Y» para eliminar la base de datos«test» y sus privilegios
  • Introduce«Y» para completar la configuración

Una vez asegurado el servidor MariaDB, tienes que crear una nueva base de datos y un nuevo usuario que utilizará la instalación de OpenEMR.

Accede al servidor MariaDB con el siguiente comando‘mariadb‘. Introduce tu contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

Ejecuta las siguientes consultas para crear una nueva base de datos y un nuevo usuario para OpenEMR. En este ejemplo, crearás una nueva base de datos‘openemr‘ con el usuario‘openemruser‘ y la contraseña es‘password’. Puedes ajustar los detalles de la base de datos con tu información.

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

crear base de datos y usuario

Ahora ejecuta la siguiente consulta para comprobar los privilegios de ‘openemruser’. Asegúrate de que el usuario puede acceder a la base de datos ‘openemr’.

SHOW GRANTS FOR openemruser@localhost;

Por último, escribe‘quit’ para salir del servidor MariaDB.

mostrar privilegios de usuario

Descargar el código fuente de OpenEMR

Ahora que ya has configurado el servidor PHP-FPM y MariaDB, el siguiente paso es descargar el código fuente de OpenEMR y configurar la instalación con los permisos y la propiedad adecuados.

Ve al directorio‘/var/www‘ y descarga el código fuente de OpenEMR utilizando el siguiente comando‘wget‘.

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

Una vez descargado, ejecuta el comando ‘tar’ que aparece a continuación para extraer el código fuente de OpenEMR y cambia el nombre del nuevo directorio a‘openemr’. Con esto, el código fuente de OpenEMR se almacenará en el directorio‘/var/www/openemr‘.

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

Por último, ejecuta el siguiente comando «chown» para cambiar la propiedad del directorio«/var/www/openemr» al usuario«www-data«.

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

Configurar el bloque del servidor Nginx

Tras descargar el código fuente de OpenEMR, crearás un nuevo bloque de servidor Nginx que se utilizará para ejecutar tu instalación de OpenEMR. Así que asegúrate de que tienes tu nombre de dominio listo y apuntando a la dirección IP del servidor.

Crea una nueva configuración del bloque del servidor Nginx‘/etc/nginx/sites-available/openemr‘ con el siguiente comando del editor‘nano‘.

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

Introduce la configuración y asegúrate de cambiar la opción‘nombre_servidor‘ por el nombre de tu dominio.

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;
}
}

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para activar el bloque de servidor ‘openemr’ y verifica tu sintaxis Nginx. Si la sintaxis de Nginx es correcta y adecuada, verás una salida como‘test is successful – syntax is ok‘.

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

configuración de nginx

Por último, ejecuta el siguiente comando‘systemctl‘ para reiniciar el servidor web Nginx y aplicar tus cambios.

sudo systemctl restart nginx

Asegurar OpenEMR con HTTPS

En esta sección, instalarás Certbot y asegurarás OpenEMR con HTTPS. Esto funcionará si utilizas un nombre de dominio y un servidor públicos. En un servidor local o de desarrollo, puedes utilizar certificados autofirmados.

Antes de configurar SSL, ejecuta el siguiente comando «ufw» para abrir los servicios HTTP y HTTPS en tu servidor. Verás una salida como ‘success’.

Sudo ufw allow 'Nginx Full'

Ahora instala el plugin‘certbot‘ y‘python3-certbot-nginx‘ con el siguiente comando‘apt‘. Introduce «Y» para confirmar la instalación.

sudo apt install certbot python3-certbot-nginx -y

Una vez completada la instalación, ejecuta el siguiente comando «certbot» para generar certificados SSL y proteger tu instalación de OpenEMR.

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

Una vez finalizado el proceso, tus certificados SSL estarán disponibles en el directorio‘/etc/letsencrypt/live/domain.com‘. Además, tu instalación de OpenEMR estará protegida con HTTPS.

Instalación de OpenEMR

Abre tu navegador web y visita https://openemr.howtoforge.local/ a través de un navegador web.

En primer lugar, el instalador comprobará los permisos del código fuente de OpenEMR, así que asegúrate de que tienes los permisos adecuados.

instalación

Selecciona la opción«He creado la base de datos» para configurar la integración de tu base de datos.

tengo la base de datos

Introduce los datos de tu base de datos y el nuevo administrador de OpenEMR.

configuración de la base de datos

Se ejecutará la inicialización de la base de datos y se creará tu usuario administrador.

instalación

A continuación, asegúrate de que tu configuración de PHP cumple los requisitos de OpenEMR.

configuración php

Una vez completada la instalación, serás redirigido a la página de inicio de sesión de OpenEMR. Escribe tu usuario y contraseña de administrador, y haz clic en Iniciar sesión.

inicio de sesión

Si todo va bien, verás el siguiente panel de control de OpenEMR.

salpicadero

Conclusión

¡Enhorabuena! Has completado la instalación de OpenEMR en el servidor Ubuntu 24.04. OpenEMR está funcionando con el PHP-FPM, el servidor web Nginx y el servidor MariaDB. También has asegurado OpenEMR con HTTPS a través de Certbot y Let’s Encrypt.

También te podría gustar...