AlmaLinux, Rocky and RHEL
Installing HWD POS on AlmaLinux, Rocky Linux, RHEL and CentOS Stream 8/9, and what is different from Ubuntu.
AlmaLinux 9 and 8, Rocky Linux, RHEL and CentOS Stream are fully supported. They use their own installer, install-almalinux.sh, with the same questions, modes and final summary as on Ubuntu.
Recommended: network install
The network install detects dnf automatically and runs install-almalinux.sh:
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo bashTo install from a .zip package instead, follow the Ubuntu instructions using 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.shWhy there is a separate installer
On AlmaLinux it is not just "the same thing with a different package manager". There are five differences, and the third one is what ruins an installation done by hand:
PHP comes as modules. PHP is installed with dnf module enable php:8.2, not as versioned packages. If the system does not offer 8.1 or later, the installer adds the Remi repository.
The service is called httpd (not apache2) and all its configuration lives in a single directory, /etc/httpd/conf.d/. There is no sites-available and no a2ensite.
SELinux is enabled out of the box. Without a write context on storage/ and public/uploads, and without permission to connect to the network, the system installs but cannot write, update itself, send email or validate the license, and no error message mentions SELinux. The installer configures it and verifies it in the summary.
The firewall is firewalld, not ufw.
PHP-FPM runs as the apache user, and the installer creates a dedicated pool (/etc/php-fpm.d/hwpos.conf) on its own socket, so it does not change the pool of any other site on the server.
SELinux
The installer applies the file contexts (semanage + restorecon) so the web server can write to storage/ and public/uploads, and turns on the booleans that let PHP reach the network and the database:
httpd_unifiedhttpd_can_network_connecthttpd_can_network_connect_dbhttpd_execmem
The final summary adds three SELinux lines. If they are ✓, you do not need to do anything.
Symptoms of SELinux not configured
Everything looks fine but nothing is saved, updates fail and no email is sent. Confirm it with:
sudo ausearch -m avc -ts recentThe fix is to run install-almalinux.sh again: it reapplies the contexts and booleans without deleting data. Do not disable SELinux.
Firewall and port
The installer opens the site port in firewalld. If you change the port by hand, the files are /etc/httpd/conf.d/hwpos.conf and /etc/httpd/conf.d/hwpos-listen.conf, the service is httpd, and the firewall command is:
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reloadRunning the installer again with WEB_PORT= is simpler. See Web server.
Printing on AlmaLinux
The A4 PDF renderer is Chromium from the distribution packages. If A4 documents do not print, install it:
sudo dnf install -y chromiumSee Printing.
Diagnostics on AlmaLinux
check.sh works on both families. On AlmaLinux, Rocky, RHEL and CentOS it checks packages with rpm (a single php-fpm package, with pdo_mysql included in php-mysqlnd) and repairs by running install-almalinux.sh, which also puts SELinux and the firewall back in order.
sudo bash /var/www/HWDPOS/deploy/check.shIf bootstrap.sh stops right away on Rocky/Alma/CentOS, or check.sh marks everything with ✗, you have an older version of the script (it called apt-get or dpkg, which do not exist there). Download it again with the command at the top of this page.