Saltar al contenido

Cómo instalar OpenEMR en Ubuntu 20.04 con una pila LAMP (Apache, MySQL, PHP)

Introducción

OpenEMR es una herramienta de gestión de prácticas médicas y registros de salud electrónicos de código abierto. Es utilizado por médicos y centros de salud para administrar registros médicos electrónicos, recetas, seguimiento demográfico de pacientes, programación, informes y facturación electrónica. En el momento de esta publicación, OpenEMR admite más de 30 idiomas.

En este tutorial, instalará OpenEMR en un servidor Ubuntu 20.04 que ejecuta un entorno LAMP (Linux, UNApache, METROySQL, PAGHP).

    • Un servidor Ubuntu 20.04 con un servidor no root sudo-cuenta de usuario habilitada y un firewall básico. Esto se puede configurar usando nuestra guía de configuración del servidor inicial para Ubuntu 20.04.
    • Una pila LAMP completamente instalada, que incluye Apache, MySQL y PHP, con configuraciones de firewall ajustadas para permitir el tráfico HTTP. Las instrucciones para instalar una pila LAMP se pueden encontrar en los Pasos 1 a 3 en nuestra guía Cómo instalar la pila Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 20.04. Tenga en cuenta que los pasos 4 a 6 de la guía LAMP son opcionales, ya que son para fines de prueba e innecesarios para este tutorial.

Paso 1: instalación de extensiones PHP adicionales

Al configurar nuestra pila LAMP, se requirió un conjunto mínimo de extensiones para que PHP se comunicara con MySQL. OpenEMR requiere dos extensiones PHP adicionales que necesitará instalar para que funcione correctamente. Utilizar apt para actualizar la lista de paquetes de su servidor e instalar el php-xml y php-mbstring extensiones:

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

Después de instalar ambas extensiones, deberá volver a cargar el servidor web Apache para que los cambios surtan efecto:

 $ sudo systemctl reload apache2

Cuando su servidor web se haya recargado, debería estar listo para continuar con el siguiente paso.

Paso 2: crear una base de datos MySQL para OpenEMR
Ahora creará una base de datos en MySQL para OpenEMR. Primero, inicie sesión en MySQL como usuario raíz de la base de datos:

 $ sudo mysql

Una vez que haya iniciado sesión en MySQL como usuario raíz de la base de datos, cree una base de datos llamada openemr con el siguiente comando:

mysql> CREATE DATABASE openemr;
A continuación, cree un nuevo usuario y asígnele una contraseña reemplazando PASSWORD a continuación con una contraseña segura de su elección:
mysql>CREATE USER 'openemr_user'@'localhost' IDENTIFIED BY 'PASSWORD';
A continuación, conceda permiso al nuevo usuario para la base de datos de openemr:
mysql> GRANT ALL PRIVILEGES ON openemr.* TO 'openemr_user'@'localhost';
Para habilitar estos cambios, ingrese el siguiente comando:
mysql> FLUSH PRIVILEGES;
Una vez que haya vaciado los privilegios, ahora puede salir de MySQL:
mysql> exit

Ahora está listo para continuar con el siguiente paso.

Paso 3: configuración de PHP para OpenEMR

En este paso, realizará algunos cambios en el php.ini archivo según lo recomendado por la documentación de OpenEMR. Si siguió todos los requisitos previos dentro de un servidor Ubuntu 20.04 nuevo, el php.ini que se aplica a su servidor web Apache debe estar ubicado en /etc/php/7.4/apache2/php.ini. En caso de que tenga una versión de PHP diferente, esta ruta puede ser ligeramente diferente. Ajuste según sea necesario y abra el archivo con un editor de texto de su elección. Aquí usaremos nano:

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

Una vez que esté en el archivo php.ini, cambiará los valores de varias opciones según lo recomendado por OpenEMR. Si está usando nano, puede buscar estas opciones usando CTRL + W. Si hay un punto y coma; delante de la opción que está ajustando, asegúrese de eliminarla, ya que se utiliza un punto y coma para comentar una opción.

Deben cambiarse los valores de las siguientes opciones:

max_ input_vars
Esta opción limita la cantidad de variables que su servidor puede usar en una sola función. OpenEMR requiere que esta opción tenga el valor 3000:

/etc/php/7.4/apache2/php.ini
max_input_vars = 3000
max_execution_time
Esta opción limita la cantidad de tiempo (en segundos) que se permite que un script se ejecute antes de finalizar. OpenEMR requiere que esta opción tenga el valor 60:

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


max_execution_time = 60
max_input_time
Esta opción limita el tiempo en segundos que se permite a un script analizar los datos de entrada. OpenEMR requiere que esta opción tenga el valor -1, lo que significa que en su lugar se usa max_execution_time:

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

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

post_max_size
Esta opción limita el tamaño de una publicación, incluidos los archivos cargados. OpenEMR requiere que esta opción tenga un valor de 30M:

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

post_max_size = 30M
limite de memoria
Esta opción limita la cantidad de memoria que se le permite asignar a un script. OpenEMR requiere que esta opción tenga un valor de 256M:

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

memory_limit = 256M
mysqli.allow_local infile
Esta opción permite el acceso a archivos locales con sentencias LOAD DATA. OpenEMR requiere que esta opción esté activada:

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

mysqli.allow_local_infile = On
Cuando haya terminado de ajustar las opciones, guarde y salga del archivo. Si está utilizando nano, puede hacerlo presionando CTRL + X, luego Y y ENTER para confirmar.

A continuación, deberá volver a cargar el servidor web Apache para que los cambios surtan efecto:

 $ sudo systemctl reload apache2

Cuando su servidor web se haya recargado, debería estar listo para continuar con el siguiente paso.
Paso 4: descarga de OpenEMR
En este paso, descargará OpenEMR y preparará sus archivos para la instalación. Para comenzar, descargue OpenEMR usando el comando wget, que recupera archivos de Internet:

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

A continuación, extraiga los archivos con el comando tar. El argumento xvzf se usa para decirle al shell que extraiga los archivos (x), nombre los archivos extraídos (v), descomprima los archivos con gzip (z) y use el archivo nombrado en el comando (f).

 $ tar xvzf openemr*.tar.gz

Cuando termine de extraer los archivos, debe tener un directorio llamado openemr-5.0.2. Cambie el nombre del directorio a openemr usando el comando mv:

 $ mv openemr-5.0.2 openemr

A continuación, mueva el directorio a su directorio HTML:

 $ sudo mv openemr /var/www/html/

Ahora debe cambiar la propiedad del directorio. Use el comando chown y el indicador R para establecer el propietario de todos los archivos y el grupo asociado con openemr en www-data:

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

Para el proceso de instalación, OpenEMR también requiere que cambie los permisos del archivo sqlconf.php para que todos los usuarios puedan leer y escribir el archivo pero no puedan ejecutarlo. Una vez finalizada la instalación, cambiaremos estos permisos una vez más para asegurar su configuración. Estos permisos se pueden otorgar con el comando chmod usando 666 como argumento:

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

Después de cambiar los permisos para el archivo sqlconf.php, está listo para continuar con el siguiente paso.
Paso 4: Instalación de OpenEMR
En este paso, instalará OpenEMR a través de un navegador web y configurará el servidor web Apache. Abra un navegador web y navegue hasta http: // server_ip / openemr, reemplazando server_ip con la dirección IP de su servidor.

Si todo funciona correctamente, el navegador debería mostrar la página de configuración de OpenEMR:

Página de configuración de OpenEMR

Haga clic en Continuar con el paso 1. Ahora debería ser dirigido a una nueva página de configuración de OpenEMR para el paso 1 del proceso de instalación:

Página de configuración de OpenEMR - Paso 1

En la nueva página, seleccione Ya he creado una base de datos, ya que ya creó una base de datos OpenEMR en el paso 3 de este tutorial. Luego haga clic en Continuar con el paso 2.

Su navegador ahora debería mostrar el paso 2 de la configuración de OpenEMR:

Página de configuración de OpenEMR - Paso 2

En los campos de Inicio de sesión y Contraseña en la sección Detalles del servidor MySQL, ingrese el nombre de usuario y la contraseña que eligió en el Paso 3.

En la sección Detalles de usuario inicial de OpenEMR, cree un nombre de inicio de sesión de usuario inicial y una contraseña.

Si desea habilitar la autenticación de 2 factores para el usuario inicial, haga clic en la opción Habilitar 2FA.

Luego haga clic en Crear base de datos y usuario. Es posible que la página siguiente demore unos minutos en cargarse. Esta página verificará la creación exitosa del usuario y la base de datos:

Página de configuración de OpenEMR - Paso 3

Haga clic en Continuar con el paso 4 para continuar. La siguiente página confirmará la creación y configuración de la Lista de control de acceso:

Página de configuración de OpenEMR - Paso 4

Haga clic en Continuar con el paso 5 para continuar. La siguiente página le mostrará las configuraciones PHP requeridas para OpenEMR. Su configuración actual debe coincidir con sus requisitos, ya que los ajustó en el Paso 4.

Página de configuración de OpenEMR - Paso 5

Haga clic en Continuar con el paso 6 para continuar. La siguiente página le mostrará cómo configurar su servidor web Apache para OpenEMR:

Página de configuración de OpenEMR - Paso 6

Para configurar el servidor web Apache para OpenEMR, cree un nuevo archivo de configuración llamado openemr.conf. Puedes hacerlo desde tu terminal usando el editor nano:

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

Dentro del archivo, pegue las siguientes directivas:

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

AllowOverride FileInfo
Requerir todo concedido


AllowOverride Ninguno


Requerir todo denegado

Guarde y cierre el archivo. Luego, reinicie Apache para que se carguen los cambios:

 $ sudo systemctl restart apache2

A continuación, regrese al navegador y haga clic en Continuar para seleccionar un tema. En la página siguiente, seleccione un tema y haga clic en Continuar con el paso final:

Página de configuración de OpenEMR - Paso 7

Ahora debería ser dirigido a la página de configuración final con los detalles de confirmación con respecto a su instalación:

Página de configuración de OpenEMR - Paso final

Esta página también le proporcionará el nombre de usuario y la contraseña de su usuario inicial. Asegúrese de tener estos detalles disponibles antes de salir de la página. Cuando esté listo, haga clic en el enlace en la parte inferior para comenzar a usar OpenEMR.

Aparecerá una ventana que le preguntará si desea registrar su instalación. Después de hacer su elección, inicie sesión en OpenEMR con sus credenciales de usuario iniciales. Una vez que haya iniciado sesión, su navegador debería mostrar el panel de OpenEMR:

Panel de OpenEMR

Antes de continuar, asegúrese de cambiar los permisos del archivo como se indica en el siguiente paso.

Paso 5: cambiar los permisos del sistema de archivos
Para mejorar la seguridad del sistema, OpenEMR aconseja a los usuarios que cambien los permisos de varios archivos después de la instalación. En este paso, cambiará los permisos de estos archivos para restringir aún más el acceso de lectura y escritura.

Primero, cambiará los permisos del archivo sqlconf.php cuyos permisos modificó en el Paso 3 para otorgar al propietario acceso de lectura y escritura y a los miembros del grupo solo acceso de lectura.

Estos permisos se pueden otorgar con el comando chmod usando 644 como argumento:

 $ sudo chmod 644 openemr/library/sqlconf.php

A continuación, cambiará los permisos de varios otros archivos para permitir que solo el propietario del archivo lea y escriba el archivo.

Otorgue estos permisos mediante el comando chmod con el argumento 600 en los siguientes archivos:

 $ 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

Sus archivos ahora deberían tener una configuración de permisos más segura.

Además de cambiar los permisos de archivos, la documentación de OpenEMR recomienda encarecidamente pasos adicionales para proteger cada uno de los componentes de OpenEMR. Estos pasos incluyen eliminar scripts en OpenEMR después de la instalación, hacer cumplir contraseñas seguras, habilitar el tráfico solo HTTPS, ajustar el firewall y fortalecer Apache. Asegúrese de visitar la documentación de seguridad de OpenEMR para obtener más información sobre cómo puede proteger mejor su instalación de OpenEMR.

Conclusión
Ahora ha instalado OpenEMR en un servidor Ubuntu 20.04 usando Apache, MySQL y PHP. Para obtener instrucciones sobre cómo apuntar un nombre de dominio a su servidor, puede seguir nuestra guía Cómo apuntar a servidores de nombres de DigitalOcean desde registradores de dominio comunes. Para obtener documentación de OpenEMR, puede visitar la página Wiki de OpenEMR.