Docs
GuíasInstalación

Base de datos en otro servidor

Ejecute el servidor web y la base de datos MariaDB en dos máquinas distintas.

Por omisión el instalador pone el servidor web y la base de datos en el mismo equipo (MODE=all). Puede separarlos en dos servidores, por ejemplo para repartir la carga o porque la base de datos ya está en otra máquina. Instale cada servidor por su cuenta, eligiendo su modo.

MODEQué instala en ESE servidor
all (predeterminado)Servidor web + PHP + MariaDB, todo junto.
webSolo servidor web + PHP + la aplicación; se conecta a una base de datos remota (DB_HOST). No instala MariaDB.
dbSolo MariaDB abierto a la red (escuchando en 0.0.0.0, puerto 3306) más la base y el usuario. Sin servidor web ni código.

Si no indica MODE, el instalador pregunta (todo en uno / solo web / solo base de datos).

Ejemplo

En este ejemplo el servidor de base de datos es 10.0.0.5 y el servidor web es 10.0.0.4. Instálelos en este orden.

Servidor de base de datos

En 10.0.0.5, autorizando solo al servidor web:

curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo MODE=db DB_ALLOW=10.0.0.4 bash

DB_ALLOW es la IP del servidor web autorizado. Si lo omite, se permite cualquier IP (%).

El instalador configura bind-address, abre el puerto 3306 en el cortafuegos (solo desde DB_ALLOW si lo indicó), crea la base y el usuario, y al terminar imprime host, base, usuario y contraseña. Anótelos. También quedan en /root/HWDPOS-DB-CREDENTIALS.txt, porque en un servidor de solo base de datos no hay carpeta de la aplicación.

Servidor web

En 10.0.0.4, apuntando al servidor de base de datos:

curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo MODE=web DB_HOST=10.0.0.5 bash

Aquí no se instala MariaDB. El instalador pone el cliente de base de datos para diagnóstico y prueba la conexión con DB_HOST:3306.

Asistente del navegador

Abra http://10.0.0.4/install. En el paso Base de datos, ponga como Host la IP del servidor de base de datos (10.0.0.5, no 127.0.0.1) y use el usuario y la contraseña del paso 1. Vea Asistente del navegador.

Si ejecuta los scripts directamente en lugar del comando por red, se usan las mismas variables:

sudo MODE=db DB_ALLOW=10.0.0.4 bash install-ubuntu.sh
sudo MODE=web DB_HOST=10.0.0.5 HWPOS_ZIP=/root/HWDPOS.zip bash bootstrap.sh

Seguridad

Exponga el puerto 3306 solo a la IP del servidor web (DB_ALLOW), nunca a internet. Lo ideal es que ambos servidores estén en la misma LAN o VLAN privada.

Consejos

  • Acepte también la pregunta de zona horaria en el servidor de base de datos, para que las horas coincidan.
  • Use WITH_PRINTING=no en el servidor de base de datos: no imprime.
  • check.sh detecta el modo automáticamente. En un servidor solo web no marca como error la falta de MariaDB local y prueba la base remota con DB_HOST=<ip>; en uno solo de base de datos revisa MariaDB y que escuche en el puerto 3306. Puede forzarlo con MODE=web|db|all. Vea Diagnóstico con check.sh.

En esta página