Docs
GuíasInstalación

AlmaLinux, Rocky y RHEL

Instalación de HWD POS en AlmaLinux, Rocky Linux, RHEL y CentOS Stream 8/9, y en qué se diferencia de Ubuntu.

AlmaLinux 9 y 8, Rocky Linux, RHEL y CentOS Stream están plenamente admitidos. Usan su propio instalador, install-almalinux.sh, con las mismas preguntas, los mismos modos y el mismo resumen final que en Ubuntu.

Recomendado: instalación por red

La instalación por red detecta dnf automáticamente y ejecuta install-almalinux.sh:

curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo bash

Para instalar desde un paquete .zip, siga las instrucciones de Ubuntu usando install-almalinux.sh:

cd /var/www && sudo unzip -q /root/HWDPOS-v1.5.0.zip
sudo APP_DIR=/var/www/HWDPOS bash /root/hwdpos-inst/install-almalinux.sh

Por qué hay un instalador aparte

En AlmaLinux no es «lo mismo con otro gestor de paquetes». Hay cinco diferencias, y la tercera es la que arruina una instalación hecha a mano:

PHP viene por módulos. Se instala con dnf module enable php:8.2, no por paquetes versionados. Si el sistema no ofrece 8.1 o superior, el instalador agrega el repositorio Remi.

El servicio se llama httpd (no apache2) y toda su configuración va en un único directorio, /etc/httpd/conf.d/. No existen sites-available ni a2ensite.

SELinux está activo de fábrica. Sin contexto de escritura en storage/ y public/uploads, y sin permiso para salir a la red, el sistema queda instalado pero no puede escribir, ni actualizarse, ni enviar correo, ni validar la licencia, y ningún mensaje de error menciona SELinux. El instalador lo configura y lo verifica en el resumen.

El cortafuegos es firewalld, no ufw.

PHP-FPM funciona con el usuario apache, y el instalador le crea un grupo de procesos propio (/etc/php-fpm.d/hwpos.conf) en su propio socket, para no alterar el de otro sitio que ya exista en el servidor.

SELinux

El instalador aplica los contextos de archivo (semanage + restorecon) para que el servidor web pueda escribir en storage/ y public/uploads, y activa los booleanos que permiten a PHP salir a la red y conectarse a la base de datos:

  • httpd_unified
  • httpd_can_network_connect
  • httpd_can_network_connect_db
  • httpd_execmem

El resumen final agrega tres líneas de SELinux. Si salen con ✓, no hay que hacer nada.

Síntomas de SELinux sin configurar

Todo parece bien, pero no se guarda nada, las actualizaciones fallan y no se envía correo. Confírmelo con:

sudo ausearch -m avc -ts recent

La solución es volver a ejecutar install-almalinux.sh: vuelve a aplicar los contextos y los booleanos sin borrar datos. No desactive SELinux.

Cortafuegos y puerto

El instalador abre el puerto del sitio en firewalld. Si cambia el puerto a mano, los archivos son /etc/httpd/conf.d/hwpos.conf y /etc/httpd/conf.d/hwpos-listen.conf, el servicio es httpd, y el comando del cortafuegos es:

sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload

Es más sencillo volver a ejecutar el instalador con WEB_PORT=. Vea Servidor web.

Impresión en AlmaLinux

El generador de PDF A4 es el Chromium de los paquetes de la distribución. Si los documentos A4 no se imprimen, instálelo:

sudo dnf install -y chromium

Vea Impresión.

Diagnóstico en AlmaLinux

check.sh funciona en las dos familias. En AlmaLinux, Rocky, RHEL y CentOS consulta los paquetes con rpm (un único paquete php-fpm, y pdo_mysql viene dentro de php-mysqlnd) y repara ejecutando install-almalinux.sh, que además deja SELinux y el cortafuegos en su sitio.

sudo bash /var/www/HWDPOS/deploy/check.sh

Si bootstrap.sh se corta enseguida en Rocky/Alma/CentOS, o check.sh marca todo con ✗, tiene una versión anterior del script (usaba apt-get o dpkg, que ahí no existen). Vuelva a descargarlo con el comando del principio de esta página.

En esta página