Ubuntu 22.04 安装 Wallos 5.10.2 指南
在 Ubuntu 22.04 上从零部署 Wallos v5.10.2(NGINX 1.18 + PHP 8.3-FPM + SQLite):覆盖 LEMP 环境准备、Release 包与 git clone 两种源码安装方案、NGINX 虚拟主机、10 条 cron 定时任务、首次注册与升级卸载。
Ubuntu 22.04 安装 Wallos 5.10.2 指南
目标:在 Ubuntu 22.04 服务器上从零部署 Wallos v5.10.2(PHP 8.3 + SQLite + NGINX),覆盖 LEMP 运行环境准备、源码部署、NGINX 虚拟主机配置、cron 定时任务及首次账号注册。已在 Ubuntu 22.04.5 LTS + nginx 1.18.0 + php8.3-fpm 实测通过(2026-10-25)。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(Jammy Jellyfish)
- 架构:x86_64
- NGINX:1.18.0(Ubuntu 官方仓库)
- PHP:8.3.36(fpm-fcgi,来自 ppa:ondrej/php)
- 已启用 PHP 扩展:curl、dom、gd、intl、mbstring、openssl、pdo_sqlite、sqlite3、zip、opcache、xml
- Wallos 版本:v5.10.2(GitHub Releases 源码包,sha256:
9f2e7a8fff33dfb150245d791386f7c4588bf110c0489993d72362bcd56d32d0) - 部署路径:/var/www/html
- 数据库:SQLite 单文件 /var/www/html/db/wallos.db
- 演示账号:admin / q1w2e3r4
- Web 端口:80
二、前置条件
本节在服务器上完成 LEMP 运行环境(NGINX + PHP 8.3-FPM)的安装与验证。Wallos 是一款传统 PHP 应用,依赖 NGINX(或 Apache)作为反向代理,依赖 PHP-FPM 解析 .php 请求。
💡 技术拓展:Wallos 支持 NGINX 与 Apache 作为 Web 服务器。二者对 PHP 的集成方式不同——
Web 服务器 PHP 集成方式 特点 NGINX fastcgi_pass 到 php-fpm(Unix socket 或 TCP) 静态资源性能高、配置简洁 Apache mod_php 或 php-fpm + proxy_fcgi .htaccess 支持更直接、模块生态丰富 本文采用 NGINX + php8.3-fpm 组合(官方 README 列出的首推方案)。
2.1 更新系统并安装基础依赖
sudo apt-get update
sudo apt-get install -y curl wget gnupg2 ca-certificates lsb-release software-properties-common
验证包管理器状态:
apt list --installed 2>/dev/null | grep -c "^\S\+/\S\+"
输出节选(实测)
534包数量以实际环境为准,确保
apt update无报错即可。
2.2 安装 NGINX
sudo apt-get install -y nginx
验证版本与状态:
nginx -v
输出(实测):
nginx version: nginx/1.18.0 (Ubuntu)
sudo systemctl is-active nginx
输出(实测):
active
2.3 安装 PHP 8.3-FPM 及 Wallos 所需扩展
💡 技术拓展:Ubuntu 22.04 官方仓库默认提供 PHP 8.1,而 Wallos 官方要求 PHP 8.3。在 Ubuntu 上获取新版 PHP 的主流路径——
来源 PHP 版本 维护方 适用场景 Ubuntu 官方仓库 8.1(Jammy) Canonical 只运行官方默认版本 ppa:ondrej/php 8.3/8.4/… Ondřej Surý 需要新版 PHP 的生产环境(推荐) 源码编译 任意 自行维护 需要定制模块或安全补丁 本文采用 ppa:ondrej/php 获取 PHP 8.3,与实测环境一致。
添加 ondrej PHP PPA 并安装:
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php8.3-fpm php8.3-cli php8.3-curl php8.3-xml php8.3-gd php8.3-intl php8.3-mbstring php8.3-sqlite3 php8.3-zip
验证 PHP-FPM 版本与运行状态:
php-fpm8.3 -v | head -1
输出(实测):
PHP 8.3.36 (fpm-fcgi) (built: Oct 21 2026 14:31:50)
sudo systemctl is-active php8.3-fpm
输出(实测):
active
确认扩展全部加载:
php8.3 -m | grep -E 'curl|dom|gd|intl|mbstring|openssl|sqlite3|zip|pdo'
输出(实测):
curl
dom
gd
intl
mbstring
openssl
pdo_sqlite
sqlite3
zip
⚠️ 注意:
pdo_sqlite是sqlite3在 PDO 模式下的别名,Wallos 的迁移脚本使用 PDO SQLite,因此两项都必须出现。
三、版本选型说明
Wallos 的源码获取方式主要分两类,均对应官方仓库 https://github.com/ellite/Wallos:
| 维度 | Release 源码包(tar.gz) | git clone |
|---|---|---|
| 下载来源 | GitHub Releases 页面 | GitHub 仓库 |
| 典型命令 | wget https://github.com/ellite/Wallos/archive/refs/tags/v5.10.2.tar.gz | git clone --branch v5.10.2 https://github.com/ellite/Wallos.git |
| 压缩体积 | 约 4.0 MB | 仅下载差异,首次与 tar.gz 相当 |
| 升级方式 | 重新下载新版 tar.gz 覆盖 | git pull 拉取更新 |
| 是否需要 git | 否 | 是 |
| 离线可行性 | 可预先下载后 scp 到服务器 | 需联网克隆 |
本文两个方案均基于同一 LEMP 环境,区别仅在于源码获取方式。若服务器可联网且希望后续用 git pull 平滑升级,选方案 B;若偏好稳定包文件或需离线传递,选方案 A。
四、方案 A:官方 Release 源码包安装(推荐)
4.1 方案说明
从 GitHub Releases 下载官方发布的 v5.10.2 源码 tar.gz 包,校验 sha256 后解压到 NGINX Web 根目录。此方案不依赖 git,tar 包即为完整源码快照,适合对交付物有版本固化需求的场景。
4.2 下载 Wallos 5.10.2 源码包
cd /tmp
wget https://github.com/ellite/Wallos/archive/refs/tags/v5.10.2.tar.gz -O wallos-5.10.2.tar.gz
验证文件大小与校验值(实测):
ls -lh wallos-5.10.2.tar.gz
sha256sum wallos-5.10.2.tar.gz
输出(实测):
-rw-r--r-- 1 root root 4.0M Oct 25 00:51 wallos-5.10.2.tar.gz
9f2e7a8fff33dfb150245d791386f7c4588bf110c0489993d72362bcd56d32d0 wallos-5.10.2.tar.gz
4.3 部署到 Web 根目录
Wallos 的源码包解压后目录名为 Wallos-5.10.2/,内含 db/、images/、includes/ 等子目录。将其整体移动到 NGINX 默认根目录 /var/www/html,并初始化数据库种子文件。
sudo tar xzf wallos-5.10.2.tar.gz
sudo mv Wallos-5.10.2 /var/www/html
Wallos 使用 SQLite 单文件数据库,首次运行前需将空库模板重命名为实际数据库文件名:
cd /var/www/html
sudo mv db/wallos.empty.db db/wallos.db
为 Web 进程用户(www-data)赋予目录所有权,确保 PHP-FPM 可读写数据库与上传目录:
sudo chown -R www-data:www-data /var/www/html
验证目录结构:
ls -la /var/www/html/db/
输出(实测):
total 232
drwxr-xr-x 2 www-data www-data 4096 Oct 25 01:00 .
drwxr-xr-x 17 www-data www-data 4096 Oct 25 00:51 ..
-rw-r--r-- 1 www-data www-data 64 Oct 25 00:51 setup_token.db
-rw-r--r-- 1 www-data www-data 225280 Oct 25 01:00 wallos.db
4.4 配置 NGINX 虚拟主机
创建 Wallos 专用站点配置。以下配置与实测环境完全一致,监听 80 端口,FastCGI 通过 Unix socket 转发到 php8.3-fpm。
sudo tee /etc/nginx/sites-available/wallos <<'EOF'
server {
listen 80 default_server;
server_name _;
root /var/www/html;
index index.php index.html;
client_max_body_size 10M;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\. {
deny all;
}
}
EOF
启用配置并移除默认站点:
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/wallos /etc/nginx/sites-enabled/wallos
sudo nginx -t
输出(实测):
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
4.5 启动服务并验证
重新加载 NGINX,确认 php8.3-fpm 已随系统自启:
sudo systemctl reload nginx
sudo systemctl enable nginx
sudo systemctl enable php8.3-fpm
验证服务状态:
sudo systemctl is-active nginx
sudo systemctl is-active php8.3-fpm
输出(实测,两行分别为两条命令的回显):
active
active
通过本地 curl 验证 Wallos 注册页可访问:
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/registration.php
输出(实测):
200
curl -s http://127.0.0.1/registration.php | grep -o '<title>[^<]*</title>'
输出(实测):
<title>Wallos - Subscription Tracker</title>
HTTP 200 且页面标题正确,说明 NGINX 与 PHP-FPM 已将 Wallos 源码正常解析。
五、方案 B:git clone 安装(便于后续 git pull 升级)
5.1 方案说明
通过 git clone 拉取指定 tag 的源码,后续升级时只需 git fetch + git checkout 即可切换到新版本,无需重新下载完整包。适合计划持续跟进官方更新的场景。
5.2 克隆并部署源码
确保服务器已安装 git:
sudo apt-get install -y git
克隆 v5.10.2 tag 到临时目录(使用 --depth 1 减少历史提交体积),再同步到 Web 根目录:
sudo git clone --depth 1 --branch v5.10.2 https://github.com/ellite/Wallos.git /tmp/Wallos-git
输出(实测):
Cloning into '/tmp/Wallos-git'...
Note: switching to 'd799b8faac0c81d0993f52a6a8b5cfed2902086c'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
⚠️ 注意:
detached HEAD提示属正常——我们按 tag(v5.10.2)克隆而非分支,git 以此提示说明当前不在任何分支上,不影响使用与后续按 tag 切换版本。
将源码同步到 Web 根目录并保留 .git(后续升级用):
sudo rsync -a /tmp/Wallos-git/ /var/www/html/
初始化数据库并重设所有权:
cd /var/www/html
sudo mv db/wallos.empty.db db/wallos.db
sudo chown -R www-data:www-data /var/www/html
验证:
ls -la /var/www/html/db/wallos.db
输出(实测):
-rw-r--r-- 1 www-data www-data 61440 Oct 25 01:13 /var/www/html/db/wallos.db
5.3 配置 NGINX 虚拟主机
与方案 A 完全一致,此处不再重复命令。执行:
sudo tee /etc/nginx/sites-available/wallos <<'EOF'
server {
listen 80 default_server;
server_name _;
root /var/www/html;
index index.php index.html;
client_max_body_size 10M;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\. {
deny all;
}
}
EOF
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/wallos /etc/nginx/sites-enabled/wallos
sudo nginx -t
预期输出(实测):
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5.4 启动服务并验证
sudo systemctl reload nginx
sudo systemctl enable nginx
sudo systemctl enable php8.3-fpm
sudo systemctl is-active nginx
sudo systemctl is-active php8.3-fpm
输出(实测,两行分别为两条命令的回显):
active
active
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/registration.php
curl -s http://127.0.0.1/registration.php | grep -o '<title>[^<]*</title>'
输出(实测):
200
<title>Wallos - Subscription Tracker</title>
六、初始化数据库与注册首个账号
Wallos 的 SQLite 数据库迁移由注册页自动触发,无需手动执行 SQL。首次打开站点时,注册首个账号即完成数据库初始化。
6.1 浏览器注册首个管理员
在浏览器中打开服务器地址:
http://服务器IP/registration.php
填写表单:
- 用户名:admin
- 密码:q1w2e3r4
- 确认密码:q1w2e3r4
- 邮箱:admin@example.com(示例邮箱,生产环境请替换为真实地址)
提交后,系统自动执行数据库迁移脚本。验证后端迁移状态:
php8.3 -r '$db=new SQLite3("/var/www/html/db/wallos.db"); $r=$db->query("SELECT * FROM migrations ORDER BY id DESC LIMIT 3"); while($row=$r->fetchArray(SQLITE3_ASSOC)){ echo json_encode($row).PHP_EOL; }'
输出(实测):
{"id":60,"migration":"migrations\/000061.php","migrated_at":"2026-10-25 00:51:45"}
{"id":59,"migration":"migrations\/000060.php","migrated_at":"2026-10-25 00:51:45"}
{"id":58,"migration":"migrations\/000059.php","migrated_at":"2026-10-25 00:51:45"}
migrated_at 时间戳表明迁移已执行。确认用户信息写入:
php8.3 -r '$db=new SQLite3("/var/www/html/db/wallos.db"); $r=$db->query("SELECT id,username,email FROM user"); while($row=$r->fetchArray(SQLITE3_ASSOC)){ echo $row["id"]."|".$row["username"]."|".$row["email"].PHP_EOL; }'
输出(实测):
1|admin|admin@example.com
6.2 验证登录
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/login.php
输出(实测):
200
使用账号 admin / q1w2e3r4 登录后,即可进入设置页配置主币种、支出分类、通知渠道等。
七、配置定时任务(cron)
Wallos 的多项功能依赖定时任务驱动:更新订阅的下次付款日期、更新汇率、发送到期通知、生成 AI 订阅建议、检查版本更新等。这些脚本位于 endpoints/cronjobs/ 目录,需由系统 cron 定期执行。
7.1 创建 cron 配置文件
以下 cron 配置与实测环境完全一致,写入 /etc/cron.d/wallos,由系统 cron 服务统一管理,无需写入个人 crontab。
sudo tee /etc/cron.d/wallos <<'EOF'
# Wallos 定时任务(每天 01:00 更新下次付款日期,02:00 更新汇率,09:00 发送到期通知)
0 1 * * * root php /var/www/html/endpoints/cronjobs/updatenextpayment.php >> /var/log/cron/updatenextpayment.log 2>&1
0 2 * * * root php /var/www/html/endpoints/cronjobs/updateexchange.php >> /var/log/cron/updateexchange.log 2>&1
0 8 * * * root php /var/www/html/endpoints/cronjobs/sendcancellationnotifications.php >> /var/log/cron/sendcancellationnotifications.log 2>&1
0 9 * * * root php /var/www/html/endpoints/cronjobs/sendnotifications.php >> /var/log/cron/sendnotifications.log 2>&1
*/2 * * * * root php /var/www/html/endpoints/cronjobs/sendverificationemails.php >> /var/log/cron/sendverificationemail.log 2>&1
*/2 * * * * root php /var/www/html/endpoints/cronjobs/sendresetpasswordemails.php >> /var/log/cron/sendresetpasswordemails.log 2>&1
0 */6 * * * root php /var/www/html/endpoints/cronjobs/checkforupdates.php >> /var/log/cron/checkforupdates.log 2>&1
30 1 * * 1 root php /var/www/html/endpoints/cronjobs/storetotalyearlycost.php >> /var/log/cron/storetotalyearlycost.log 2>&1
30 3 * * 1 root php /var/www/html/endpoints/cronjobs/generaterecommendations.php weekly >> /var/log/cron/generaterecommendations.log 2>&1
0 4 1 * * root php /var/www/html/endpoints/cronjobs/generaterecommendations.php monthly >> /var/log/cron/generaterecommendations.log 2>&1
EOF
创建日志目录并授权:
sudo mkdir -p /var/log/cron
sudo chmod 755 /var/log/cron
确保 cron 服务已启用:
sudo systemctl enable cron
sudo systemctl is-active cron
输出(实测):
active
7.2 手动验证定时脚本
在 cron 首次自动执行前,可手动运行关键脚本确认无报错。
更新下次付款日期:
cd /var/www/html && php endpoints/cronjobs/updatenextpayment.php
输出(实测):
2026-10-25 01:09:56<br />
UTC<br />
Updated next payment dates
更新汇率(未配置 Fixer API Key 时的预期行为):
cd /var/www/html && php endpoints/cronjobs/updateexchange.php
输出(实测):
2026-10-25 01:09:56<br />
For user: admin<br />Exchange rates update skipped. No fixer.io api key provided<br />
⚠️ 注意:
updateexchange.php需要先在 Wallos 设置页填写 Fixer API Key 才会实际拉取汇率。首次部署无 Key 时跳过更新是正常行为,不影响其他功能。
发送通知(无到期订阅时的正常回显):
cd /var/www/html && php endpoints/cronjobs/sendnotifications.php
输出(实测):
2026-10-25 01:09:56<br />
数据库迁移脚本(升级场景复用):
cd /var/www/html && php endpoints/db/migrate.php
输出(实测):
No migrations to run.
💡 说明:首次安装时迁移已在注册页自动执行,
migrate.php主要用于后续升级时手动触发;详见「十、升级方法」。
八、方案对比与选择建议
| 维度 | 方案 A:Release tar.gz | 方案 B:git clone |
|---|---|---|
| 网络依赖 | 需联网下载一次,可离线缓存 | 需持续联网(git pull) |
| 安装介质 | 4.0 MB 压缩包 | git 对象 + 工作区 |
| 升级方式 | 重新下载新版包覆盖 | git fetch + git checkout <新tag> |
| 回退能力 | 靠本地备份旧包 | git checkout <旧tag> 即可回退 |
| 额外依赖 | 无 | git |
| 适合人群 | 喜欢固定包文件、离线部署 | 计划持续跟进官方更新 |
选型建议:
- 内网服务器或希望交付物版本固化 → 方案 A。
- 可联网、计划随官方发版节奏更新(v5.10 → v5.11 → …)→ 方案 B,升级时只需切换 tag 并执行
migrate.php。
九、配置说明
9.1 文件权限
Wallos 需要 Web 进程用户对以下目录有读写权限:
| 路径 | 权限要求 | 说明 |
|---|---|---|
| /var/www/html/db/ | www-data 读写 | SQLite 数据库目录,备份即复制此目录 |
| /var/www/html/images/uploads/ | www-data 读写 | 用户上传的 Logo、头像等 |
| /var/www/html/images/uploads/logos/ | www-data 读写 | 订阅方 Logo 存储目录 |
验证(实测):
ls -ld /var/www/html/db /var/www/html/images/uploads
输出:
drwxr-xr-x 2 www-data www-data 4096 Oct 25 01:00 /var/www/html/db
drwxr-xr-x 4 www-data www-data 4096 Oct 25 00:51 /var/www/html/images/uploads
9.2 时区设置
Wallos 的 cron 脚本通过 settimezone.php 读取环境变量 TZ 或 PHP 默认时区。服务器未设置时区时,脚本日志中显示 UTC(见 7.2 节实测输出)。若需改为北京时间,执行:
sudo timedatectl set-timezone Asia/Shanghai
同时修改 /etc/php/8.3/fpm/php.ini 中的 date.timezone:
sudo sed -i 's/^;date.timezone =.*/date.timezone = Asia\/Shanghai/' /etc/php/8.3/fpm/php.ini
sudo systemctl restart php8.3-fpm
9.3 SMTP 与站点 URL 的环境变量注入
Wallos 支持通过环境变量在启动时覆盖 admin 表中的 SMTP 和站点 URL 设置(源码在 includes/instance_config.php),便于自动化部署场景免手动配置。裸机场景下,可在 /etc/environment 或 cron/systemd 中导出以下变量:
| 环境变量 | 对应 admin 字段 | 说明 |
|---|---|---|
| WALLOS_SMTP_HOST | smtp_address | SMTP 服务器地址 |
| WALLOS_SMTP_PORT | smtp_port | SMTP 端口(如 587) |
| WALLOS_SMTP_ENCRYPTION | encryption | 加密方式(tls / ssl / none) |
| WALLOS_SMTP_USERNAME | smtp_username | SMTP 账号 |
| WALLOS_SMTP_PASSWORD | smtp_password | SMTP 密码 |
| WALLOS_SMTP_FROM | from_email | 发件人地址 |
| WALLOS_SERVER_URL | server_url | 站点公网 URL(用于邮件/通知中的链接) |
⚠️ 注意:以上环境变量仅在 PHP 进程可读取到它们时生效;日常通过 admin 页面修改同样有效,二者不冲突。
十、升级方法
当 Wallos 发布新版本时,升级步骤如下:
10.1 备份现有数据
sudo cp -a /var/www/html/db /var/www/html/db-backup-$(date +%Y%m%d)
10.2 覆盖源码
方案 A(tar.gz):
cd /tmp
wget https://github.com/ellite/Wallos/archive/refs/tags/v5.10.3.tar.gz # 示例:升级到新版本
sudo tar xzf v5.10.3.tar.gz --strip-components=1 -C /var/www/html
sudo chown -R www-data:www-data /var/www/html
方案 B(git):
cd /var/www/html
sudo git fetch --tags
sudo git checkout v5.10.3 # 示例:切换到新 tag
10.3 执行数据库迁移
cd /var/www/html && php endpoints/db/migrate.php
预期输出(若无新版本迁移):
No migrations to run.
若有新版本迁移,会逐条输出 Migration migrations/000XXX.php completed successfully. 格式的回显(实测源码 includes/run_migrations.php 第 37 行确认该格式)。
10.4 验证
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1/login.php
返回 200 即表示升级后站点正常。
⚠️ 注意:升级前务必备份
/var/www/html/db/目录;SQLite 数据库是单文件,恢复时只需将备份文件覆盖回去即可。
十一、常见问题
11.1 访问页面返回 403 Forbidden
原因:Wallos 源码目录权限不足,或 NGINX 未正确指向 Web 根目录。
排查:
sudo ls -la /var/www/html/index.php
sudo nginx -t
sudo systemctl status nginx
解决:确认 root /var/www/html; 配置正确,且 www-data 用户对目录有读取权限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R u+rX /var/www/html
11.2 访问 .php 页面显示空白或下载文件
原因:PHP-FPM 未运行,或 NGINX fastcgi_pass 指向的 socket 路径错误。
排查:
sudo systemctl is-active php8.3-fpm
ls -la /run/php/php8.3-fpm.sock
解决:若 socket 不存在,检查 PHP-FPM 是否启动;若使用其他 PHP 版本,需将 fastcgi_pass 中的 php8.3-fpm.sock 替换为实际版本号(如 php8.1-fpm.sock)。
11.3 注册页提示数据库写入失败
原因:db/ 目录或 wallos.db 文件不可写。
排查:
ls -la /var/www/html/db/
解决:
sudo chown -R www-data:www-data /var/www/html/db
sudo chmod 755 /var/www/html/db
sudo chmod 644 /var/www/html/db/wallos.db
11.4 定时任务没有执行
原因:cron 服务未运行,或 /etc/cron.d/wallos 文件权限/格式问题。
排查:
sudo systemctl is-active cron
sudo cat /etc/cron.d/wallos
解决:确保 cron 服务 active;确保 /etc/cron.d/wallos 以换行符结尾(crontab 文件缺失末尾换行符会导致最后一行不执行);确保 /var/log/cron 目录存在且有写权限:
sudo mkdir -p /var/log/cron
sudo chmod 755 /var/log/cron
11.5 为什么 updatenextpayment.php 输出中显示 UTC
原因:服务器系统时区未设置,且 PHP 默认时区为 UTC。
解决:按「九、配置说明 → 9.2 时区设置」修改系统时区和 php.ini 中的 date.timezone,然后重启 php8.3-fpm。Wallos Web 端的显示时区由用户在设置页选择,不受 PHP 默认时区影响。
十二、卸载与清理
若需完全移除 Wallos 及其运行环境,按以下顺序清理:
12.1 停止并删除定时任务
sudo rm -f /etc/cron.d/wallos
sudo systemctl reload cron
12.2 删除 NGINX 站点配置
sudo rm -f /etc/nginx/sites-enabled/wallos /etc/nginx/sites-available/wallos
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default 2>/dev/null || true
sudo nginx -t && sudo systemctl reload nginx
12.3 删除 Wallos 源码与数据
sudo rm -rf /var/www/html
⚠️ 注意:此操作会同时删除 SQLite 数据库
/var/www/html/db/wallos.db。如需保留历史订阅数据,请提前备份:sudo cp -a /var/www/html/db /opt/backups/wallos-db-$(date +%Y%m%d)
12.4 卸载 PHP 8.3(可选)
sudo apt-get purge -y php8.3-*
sudo add-apt-repository --remove ppa:ondrej/php
sudo apt-get autoremove -y
12.5 卸载 NGINX(可选)
sudo apt-get purge -y nginx nginx-common
sudo apt-get autoremove -y
十三、参考链接
- Wallos 官方仓库:https://github.com/ellite/Wallos
- GitHub Releases(源码包下载):https://github.com/ellite/Wallos/releases
- ondrej/php PPA:https://launchpad.net/~ondrej/+archive/ubuntu/php
- 官方演示站:https://demo.wallosapp.com(账号 demo / demo)
- API 文档:https://api.wallosapp.com/