Docs
指南安装

系统要求

HWD POS 会安装哪些组件、支持哪些操作系统,以及所需的硬件和网络条件。

HWD POS 是一个原生 PHP 系统:不使用框架、Composer、Node 或 Docker。因此安装只需三个必需组件和少量可选组件。安装程序会为你完成全部配置;本页说明每个组件的用途,便于你规划服务器并看懂安装程序最后输出的摘要。

必需组件

组件版本在 HWD POS 中的作用
PHP8.2 或更高(8.1 可以运行,但安装向导要求 8.2)这就是系统本身。同一个 PHP 会安装两种形态:FPM,负责提供浏览器打开的页面;CLI,负责运行两个后台服务(打印和插件)以及维护任务。
MariaDB10.4 或更高(或 MySQL 8)存储所有数据:商品、库存、客户、报价单、发票、收银、赊账和审计日志。系统更新会使用 ADD COLUMN IF NOT EXISTS,MySQL 5.x 不支持该语法,因此低于 10.4 时更新会中途失败。
Web 服务器Apache 2.4 或 Nginx 1.18+接收请求,并将应用的请求转交给 PHP-FPM。其文档根目录必须指向 public/ 文件夹,绝不能指向项目根目录。

为什么是 public/ 而不是项目根目录

项目文件夹中包含配置(含数据库密码)、备份和源代码。将文档根目录设为 public/ 后,即使有人猜到文件名,也无法通过网络访问这些内容。安装程序会按此方式配置,并且还会显式屏蔽 .env、.sql、.md、.sh 和 .lock 文件。

PHP 扩展

安装程序会安装以下全部扩展。浏览器中的安装向导会再次检查,并在允许继续之前显示 ✓ / ✗。

扩展是否必需缺少时哪些功能失效
pdo_mysql是一切都无法工作:它就是数据库连接。
mbstring是带重音符号和 ñ 的文本会被截断或损坏(客户和商品名称、搜索)。
curl是所有需要访问互联网的功能:许可证激活、更新检查、电子发票、Yappy、SMTP 邮件和帮助助手。
zip推荐安装和更新插件、应用系统更新、从电子表格导入客户和商品,以及导出到 Excel。
gd推荐A4 单据上的水印以及送货时客户的签名。
xml推荐读取客户和商品的导入电子表格。
opcache推荐不会出错,但系统明显变慢:每个页面在每次请求时都会重新编译。
sodium推荐验证许可证签名。缺少时会使用内置的备用实现:功能相同,只是更慢。
pcntl(仅 CLI)推荐缺少时,两个后台服务在更新后无法自行加载新代码;需要手动重启。

可选组件

组件用途缺少时
CUPS在 A4 打印机(喷墨或激光)以及通过 IPP/AirPrint 的网络打印机上打印。热敏打印机(ESC/POS,80 mm 和 58 mm)仍可正常工作:它们不经过 CUPS。
Google Chrome(或 Chromium)将完整的 A4 单据(设计好的发票和报价单)渲染为 PDF。在 Ubuntu/Debian(amd64)上,安装程序会从官方软件包安装 Google Chrome,因为 Ubuntu 的 chromium-browser 只是指向 Snap 的桥接程序,没有 snapd 就无法运行,尽管该命令存在。小票式打印仍然可用;无法生成设计好的 A4 单据。
Typesense为所有搜索提供容错拼写搜索。参见 Typesense 搜索。使用常规的 SQL 搜索。无需配置。

使用 WITH_PRINTING=no 时,安装程序会跳过 CUPS 和 Chrome/Chromium。适用于不打印的服务器,例如只承载数据库的服务器。

后台服务

安装程序会保留两个运行中的服务:

服务作用检查方法
hwpos-print逐个打印系统放入队列的单据。systemctl status hwpos-print
hwpos-plugins运行插件的后台任务(例如由服务器向客户发送邮件,收银员无需等待)。systemctl status hwpos-plugins

两者都必须处于 active(运行中)和 enabled(开机自动启动)状态。安装程序的最终摘要会检查这两项。

支持的操作系统

每个系统家族对应一个安装程序,提问相同、模式相同、最终摘要也相同。

系统版本安装程序
Ubuntu Server (推荐)24.04 LTS(推荐)、22.04 LTSinstall-ubuntu.sh
Debian12install-ubuntu.sh
AlmaLinux9(推荐)、8install-almalinux.sh
Rocky Linux / RHEL / CentOS Stream9、8install-almalinux.sh

表中的所有系统都能正常运行,最终功能完全相同。

尽管如此,我们仍推荐 Ubuntu Server 24.04 LTS,因为 HWD POS 主要在该系统上配置和测试。它的官方软件源自带 PHP 8.3,所需手动步骤更少,出现问题时也更容易诊断。实用原则:如果还能选择服务器的操作系统,就选 Ubuntu。如果服务器已经存在且运行的是 AlmaLinux、Rocky、RHEL 或 CentOS,也可以放心安装;它们受支持且有专用的安装程序。请先阅读 AlmaLinux 说明。

不支持: Windows Server(系统依赖 systemd 服务、Linux 打印路径和 pcntl),以及任何 PHP 版本低于 8.1 的 Linux。

硬件

最低配置推荐配置(有 3–8 台终端的门店)
CPU2 核4 核
内存2 GB4 GB 或以上
磁盘20 GB40 GB SSD
系统64 位64 位

内存决定了服务器能同时处理多少笔销售。 安装程序按每个进程约 60 MB 来确定 PHP 进程数,最少 10 个、最多 80 个,并始终低于数据库连接上限(300)。2 GB 内存约可运行 33 个进程;4 GB 约 68 个。之后可以在 «Sistema → Capacidad de conexiones»(系统 → 连接容量)中以及通过 hwdpanel(选项 19)查看和调整。

磁盘占用主要随三类内容增长:数据库备份、商品照片以及送货照片和签名。对于典型的五金店,40 GB 足够使用多年。

虚拟机(Proxmox 等)

  • 虚拟机(KVM)还是 LXC 容器: LXC 容器更轻量,但要将 USB 打印机传入 LXC,需要特权容器并绑定挂载 /dev/usb/lp0。在虚拟机中则使用 USB 直通(在 Proxmox 中:Hardware → Add → USB Device)。
  • 最简单的方案:网络(IP)打印机。 完全不需要 USB 直通:打印服务通过 9100 端口套接字(热敏)或 IPP/AirPrint 队列(A4)打印。推荐用于虚拟化环境。
  • 单个门店的典型资源:2 个 vCPU、2–4 GB 内存、20 GB 磁盘。
  • 为虚拟机或容器在局域网中分配固定 IP,以便终端和平板能够访问。

网络

要求说明
局域网固定 IP终端、平板和打印机通过 IP 指向服务器。IP 变化后需要重新配置它们。可在服务器上设置,或在路由器中保留该地址。
出站互联网访问激活许可证、检查更新和发送邮件时需要。服务器不需要能从互联网访问。
在局域网中开放站点端口默认为 80 端口。参见网络安装。
3306 端口仅当数据库运行在另一台服务器上时需要。只对 Web 服务器的 IP 开放。

无需将服务器发布到互联网:所有功能在局域网内即可工作。只有在需要从门店外部访问时才需要发布,此时应添加 HTTPS(例如使用 Let's Encrypt)。安装程序不会配置 HTTPS。

安装前准备

  1. 一台运行受支持系统的全新服务器。
  2. root 权限或具有 sudo 权限的用户。
  3. 服务器本身能够访问互联网(用 ping -c2 3r.com.pa 测试)。
  4. 供应商提供的激活密钥和客户代码。

然后继续进行网络安装。

本页目录