Ubuntu 和 Debian
在 Ubuntu Server 22.04/24.04 和 Debian 12 上安装 HWD POS,包括从 .zip 软件包安装。
Ubuntu Server 24.04 LTS 是 HWD POS 的推荐系统。Ubuntu 22.04 LTS 和 Debian 12 同样受支持,并使用同一个安装程序 install-ubuntu.sh。
推荐:网络安装
在 Ubuntu 和 Debian 上,网络安装会自动检测 apt 并为你运行 install-ubuntu.sh:
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo bash安装程序在 Ubuntu 上配置的内容
| 组件 | 说明 |
|---|---|
| Web 服务器 | 使用已安装的 Apache 或 Nginx。如果两者都没有,则安装 Apache。站点配置将文档根目录指向 /var/www/HWDPOS/public。 |
| PHP-FPM + CLI | 默认 PHP 8.3(也支持 PHP_VER=8.2),并安装系统要求中列出的全部扩展。 |
| MariaDB | 创建 hwd_pos 数据库和 hwdpos_manager 用户,密码自动生成并保存在 /var/www/HWDPOS/deploy/DB-CREDENTIALS.txt 中。 |
| 打印 | CUPS 以及来自官方 .deb 软件包(amd64)的 Google Chrome,除非设置了 WITH_PRINTING=no。 |
| 后台服务 | hwpos-print 和 hwpos-plugins,设置为开机启动。 |
| 防火墙 | 在 ufw 中开放站点端口。 |
| 服务器面板 | hwdpanel 命令。 |
| 权限 | 代码归 Web 用户 www-data 所有,该用户可写入 storage/ 和 public/uploads/。www-data 会被加入 lp(USB 打印机)和 lpadmin(IPP 队列)组。 |
为什么用 Google Chrome 而不是 chromium-browser
在 Ubuntu 上,chromium-browser 只是指向 Snap 软件包的桥接程序。没有 snapd 时(容器、许多 VPS 和 LXC 环境),该命令存在却无法运行。因此安装程序会从官方 .deb 安装 Google Chrome,摘要也会以 Web 用户身份实际运行它来检查,而不是只查找命令是否存在。
从 .zip 软件包安装
当服务器无法通过互联网下载系统,或供应商向你提供了特定软件包时,使用此方法。将 .zip 复制到服务器(通过 USB 或 SCP),然后运行对应系统家族的安装程序。
安装脚本不包含在软件包中。请单独获取,并将它们全部复制到同一个文件夹(例如 /root/hwdpos-inst/)。安装程序会把三个配套脚本复制到 /var/www/HWDPOS/deploy/;缺少这些脚本时,不会安装后台服务和 hwdpanel。
| 文件 | 是否必需 |
|---|---|
install-ubuntu.sh | 是。 |
install-workers.sh | 是:安装两个后台服务。 |
hwdpanel.sh | 是:服务器面板。 |
check.sh | 推荐:诊断和修复。 |
将软件包解压到 /var/www(会生成 /var/www/HWDPOS):
cd /var/www && sudo unzip -q /root/HWDPOS-v1.5.0.zip运行安装程序,并将其指向代码目录:
sudo APP_DIR=/var/www/HWDPOS bash /root/hwdpos-inst/install-ubuntu.sh阅读最终摘要,打开其中显示的地址,继续进行安装向导。
如果未设置 APP_DIR,且安装程序不在代码文件夹内,则会使用 /var/www/HWDPOS;它会拒绝在系统文件夹(/、/tmp、/var…)上操作。如果缺少某个配套脚本且服务器无法联网,摘要会指出这一点,并且不会提供 hwdpanel。
另外,如果服务器可以联网,也可以使用带 HWPOS_ZIP 的 bootstrap.sh,它会为你解压软件包并下载安装程序:
curl -fsSL https://3r.com.pa/hwdpos_inst/bootstrap.sh | sudo HWPOS_ZIP=/root/HWDPOS-v1.5.0.zip bash即使代码来自 .zip,激活也需要互联网。
自定义安装
任何安装程序变量都可以放在命令前面。例如:
sudo DOMAIN=pos.mystore.com PHP_VER=8.3 WITH_PRINTING=no bash /var/www/HWDPOS/deploy/install-ubuntu.sh使用官方 .zip 时,deploy/ 文件夹由首次安装创建。在此之前,请使用带 HWPOS_ZIP 的 bootstrap.sh,或 /root/hwdpos-inst/ 中的副本。
Ubuntu 专项说明
- 软件源标签变更。 如果
apt-get update失败并提示类似Repository '…ondrej/php…' changed its 'Label' value的信息,脚本已通过--allow-releaseinfo-change自动处理。如需手动修复,请运行sudo apt-get update --allow-releaseinfo-change。 - PHP 扩展检查。 脚本会检测实际使用的 PHP-FPM 版本,并用
dpkg -s phpX.Y-<extension>检查软件包,因此结果不受终端中php指向哪个版本的影响。 - 手动更改端口。 参见 Web 服务器。带上
WEB_PORT=再次运行安装程序更简单。
检查安装
sudo bash /var/www/HWDPOS/deploy/check.sh参见 check.sh 诊断。