AlmaLinux、Rocky 和 RHEL
在 AlmaLinux、Rocky Linux、RHEL 和 CentOS Stream 8/9 上安装 HWD POS,以及与 Ubuntu 的不同之处。
AlmaLinux 9 和 8、Rocky Linux、RHEL 以及 CentOS Stream 均受到完整支持。它们使用专用的安装程序 install-almalinux.sh,其提问、模式和最终摘要与 Ubuntu 上的相同。
推荐:网络安装
网络安装会自动检测 dnf 并运行 install-almalinux.sh:
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo bash如果要改为从 .zip 软件包安装,请按照 Ubuntu 的说明操作,但使用 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为什么需要单独的安装程序
在 AlmaLinux 上,这并不只是“换了个包管理器的同一回事”。共有五处不同,其中第三处正是手动安装失败的根源:
PHP 以模块形式提供。 PHP 通过 dnf module enable php:8.2 安装,而不是带版本号的软件包。如果系统不提供 8.1 或更高版本,安装程序会添加 Remi 软件源。
服务名为 httpd(而不是 apache2),其全部配置都位于同一个目录 /etc/httpd/conf.d/。没有 sites-available,也没有 a2ensite。
SELinux 默认启用。 如果没有为 storage/ 和 public/uploads 设置写入上下文,也没有允许联网的权限,系统虽然能安装,但无法写入、无法自行更新、无法发送邮件,也无法验证许可证,而且没有任何错误信息会提到 SELinux。安装程序会完成配置,并在摘要中进行验证。
防火墙是 firewalld,而不是 ufw。
PHP-FPM 以 apache 用户身份运行,安装程序会在独立的套接字上创建专用进程池(/etc/php-fpm.d/hwpos.conf),因此不会改动服务器上其他站点的进程池。
SELinux
安装程序会应用文件上下文(semanage + restorecon),使 Web 服务器能够写入 storage/ 和 public/uploads,并开启允许 PHP 访问网络和数据库的布尔值:
httpd_unifiedhttpd_can_network_connecthttpd_can_network_connect_dbhttpd_execmem
最终摘要会增加三行 SELinux 检查。如果都是 ✓,则无需任何操作。
SELinux 未配置时的症状
一切看起来正常,但什么都保存不了,更新失败,邮件也发不出去。可用以下命令确认:
sudo ausearch -m avc -ts recent解决方法是再次运行 install-almalinux.sh:它会重新应用上下文和布尔值,且不会删除数据。不要禁用 SELinux。
防火墙和端口
安装程序会在 firewalld 中开放站点端口。如果手动更改端口,相关文件是 /etc/httpd/conf.d/hwpos.conf 和 /etc/httpd/conf.d/hwpos-listen.conf,服务是 httpd,防火墙命令为:
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload带上 WEB_PORT= 再次运行安装程序更简单。参见 Web 服务器。
在 AlmaLinux 上打印
A4 PDF 渲染器使用发行版软件包中的 Chromium。如果 A4 单据无法打印,请安装它:
sudo dnf install -y chromium参见打印。
在 AlmaLinux 上诊断
check.sh 适用于两个系统家族。在 AlmaLinux、Rocky、RHEL 和 CentOS 上,它使用 rpm 检查软件包(只有一个 php-fpm 软件包,pdo_mysql 包含在 php-mysqlnd 中),并通过运行 install-almalinux.sh 进行修复,同时也会恢复 SELinux 和防火墙的配置。
sudo bash /var/www/HWDPOS/deploy/check.sh如果 bootstrap.sh 在 Rocky/Alma/CentOS 上一启动就停止,或者 check.sh 将所有项都标记为 ✗,说明你使用的是旧版脚本(它调用了 apt-get 或 dpkg,而这些系统上并不存在)。请用本页顶部的命令重新下载。