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.
MODE | Qué instala en ESE servidor |
|---|---|
all (predeterminado) | Servidor web + PHP + MariaDB, todo junto. |
web | Solo servidor web + PHP + la aplicación; se conecta a una base de datos remota (DB_HOST). No instala MariaDB. |
db | Solo 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 bashDB_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 bashAquí 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.shSeguridad
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=noen el servidor de base de datos: no imprime. check.shdetecta el modo automáticamente. En un servidor solo web no marca como error la falta de MariaDB local y prueba la base remota conDB_HOST=<ip>; en uno solo de base de datos revisa MariaDB y que escuche en el puerto 3306. Puede forzarlo conMODE=web|db|all. Vea Diagnóstico con check.sh.