从零部署Wallos:打造专属预算管理平台
前言:为什么选择自托管Wallos?
在数字化生活日益普及的今天,个人财务管理 已成为许多人关注的焦点。Wallos作为一款开源的、自托管的个人财务与家庭预算管理应用程序,提供了隐私安全 、完全控制 和高度可定制的优势。与那些需要将敏感财务数据存储在第三方服务器上的商业应用不同,Wallos允许你将所有数据掌握在自己手中。
对于技术爱好者、注重隐私的用户或小型家庭而言,在Linux云服务器上部署Wallos不仅能确保数据安全,还能提供随时随地访问的便利。无论你使用的是阿里云、腾讯云还是其他云服务商提供的ECS实例,本教程都将引导你完成从零开始的完整部署过程,即便是对Linux命令行只有基础了解的用户,也能按照步骤成功搭建自己的Wallos平台。
第一章:部署前的准备工作
准备一台具备公网IP的云服务器(推荐使用雨云)
优惠注册地址:https://www.rainyun.com/sn_
使用优惠码:sn
注: 使用优惠码注册后绑定微信可领取5折优惠券
服务器选购步骤:
- 注册后,在"总览"页面找到"云服务器"入口,进入后点击"购买云服务器"
2.根据需求选择合适的配置,建议选择国内的服务器,访问更快,选好后点击立即购买即可

3.选好后进入控制台,使用SSH客户端远程连接服务器即可,SSH客户端建议选择FinalShell
第二章:逐步部署Wallos应用
2.1 基础环境配置
首先通过SSH连接到你的云服务器,然后执行以下步骤:
bash
# 更新系统软件包列表
sudo apt update && sudo apt upgrade -y
# 安装必要的依赖包
sudo apt install -y curl wget git build-essential
# 安装PHP及所需扩展(Wallos基于PHP开发)
sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-gd php8.1-xml php8.1-curl php8.1-mbstring php8.1-zip
# 验证PHP安装
php --version
安装完成后,你可以通过php --version命令检查PHP是否正确安装。如果服务器上已有其他PHP版本,可能需要调整上述命令中的版本号。
2.2 数据库安装与配置
Wallos需要使用MySQL或MariaDB作为后端数据库,这里我们选择MariaDB:
bash
# 安装MariaDB数据库
sudo apt install -y mariadb-server mariadb-client
# 启动数据库服务并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 运行安全安装脚本
sudo mysql_secure_installation
运行安全安装脚本时,系统会提示你设置root密码、移除匿名用户、禁止远程root登录等安全选项,建议全部按照安全最佳实践进行配置。
接着,我们需要为Wallos创建专用数据库和用户:
bash
# 登录MariaDB
sudo mysql -u root -p
# 在MariaDB命令行中执行以下SQL语句
CREATE DATABASE wallosdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wallosuser'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON wallosdb.* TO 'wallosuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
安全提示:请务必将示例中的"你的强密码"替换为高强度密码,建议包含大小写字母、数字和特殊字符,且长度不少于12位。
2.3 获取并配置Wallos
现在我们可以获取Wallos的源代码并进行配置:
bash
# 切换到Web服务器目录(这里以Apache为例)
cd /var/www/html
# 从GitHub克隆Wallos源码
sudo git clone https://github.com/ellisio/wallos.git
# 设置目录权限
sudo chown -R www-data:www-data wallos
sudo chmod -R 755 wallos
# 进入Wallos目录
cd wallos
Wallos的配置主要通过环境变量或配置文件完成。你可以复制示例配置文件并根据需要修改:
bash
# 复制配置文件示例
sudo cp .env.example .env
# 生成应用密钥
sudo php artisan key:generate
接下来,编辑.env文件,设置数据库连接信息:
bash
# 使用文本编辑器打开配置文件
sudo nano .env
# 找到数据库配置部分并修改为以下内容
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=wallosdb
DB_USERNAME=wallosuser
DB_PASSWORD=你的强密码
保存并退出后,运行数据库迁移命令来创建数据表结构:
bash
sudo php artisan migrate --seed
这个命令会创建Wallos所需的所有数据表,并用基本数据填充它们。
2.4 Web服务器配置
Wallos需要Web服务器来提供访问,这里我们以Nginx为例(你也可以选择Apache):
bash
# 安装Nginx
sudo apt install -y nginx
# 创建Nginx配置文件
sudo nano /etc/nginx/sites-available/wallos
在配置文件中添加以下内容(注意替换your_domain_or_IP为你的域名或服务器IP):
nginx
server {
listen 80;
server_name your_domain_or_IP;
root /var/www/html/wallos/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
启用该配置并重启Nginx服务:
bash
# 创建符号链接
sudo ln -s /etc/nginx/sites-available/wallos /etc/nginx/sites-enabled/
# 测试Nginx配置语法
sudo nginx -t
# 重启Nginx服务
sudo systemctl restart nginx
第三章:安全加固与优化
3.1 防火墙配置
确保服务器的防火墙已正确配置,只开放必要的端口:
bash
# 检查UFW状态(Ubuntu系统)
sudo ufw status
# 如果UFW未启用,设置默认规则并开放必要端口
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
特别注意:在启用防火墙前,一定要确保SSH端口(通常是22)已开放,否则可能导致无法远程连接服务器。
3.2 配置SSL证书(HTTPS)
为了保护数据传输安全,强烈建议为Wallos配置SSL证书。你可以使用Let's Encrypt提供的免费证书:
bash
# 安装Certbot工具
sudo apt install -y certbot python3-certbot-nginx
# 获取并安装SSL证书
sudo certbot --nginx -d your_domain_or_IP
按照Certbot的提示完成证书安装过程,它会自动修改Nginx配置以启用HTTPS。
3.3 Wallos应用安全设置
在Wallos内部,我们还可以进行一些安全强化:
- 修改默认管理员密码 :首次登录Wallos后(默认用户名为
admin,密码为password),立即修改为强密码 - 启用双因素认证:在Wallos设置中启用2FA,提高账户安全性
- 定期备份:设置数据库和上传文件的定期备份机制
第四章:Wallos日常维护
4.1 常用维护命令
以下是一些Wallos日常维护中常用的命令:
bash
# 清理应用缓存
sudo php artisan cache:clear
# 优化应用性能
sudo php artisan optimize
# 查看应用日志
sudo tail -f /var/www/html/wallos/storage/logs/laravel.log
# 更新Wallos到最新版本
sudo git pull origin main
sudo php artisan migrate
sudo php artisan optimize
4.2 数据备份与恢复
定期备份Wallos数据至关重要,这里提供一个简单的备份脚本示例:
bash
#!/bin/bash
# 备份数据库
mysqldump -u wallosuser -p'你的数据库密码' wallosdb > /backup/wallosdb_$(date +%Y%m%d).sql
# 备份上传文件
tar -czf /backup/wallos_uploads_$(date +%Y%m%d).tar.gz /var/www/html/wallos/storage/app/public
# 删除30天前的备份
find /backup -name "*.sql" -mtime +30 -delete
find /backup -name "*.tar.gz" -mtime +30 -delete
将上述脚本保存为/usr/local/bin/backup_wallos.sh,并添加执行权限,然后通过cron设置定期执行。
4.3 性能监控与优化
你可以通过以下方法监控Wallos的性能表现:
- 服务器资源监控 :使用
htop、nmon等工具监控CPU、内存和磁盘使用情况 - 访问日志分析:定期检查Nginx访问日志,了解使用模式
- 数据库优化 :对于大型数据库,定期运行
OPTIMIZE TABLE命令提升性能
结语
通过本教程,你已经成功部署了Wallos个人财务管理系统。部署过程看似复杂,但实际上按照步骤操作,即使零基础的用户也能顺利完成。