从零部署Wallos:打造专属预算管理平台

从零部署Wallos:打造专属预算管理平台

前言:为什么选择自托管Wallos?

在数字化生活日益普及的今天,个人财务管理 已成为许多人关注的焦点。Wallos作为一款开源的、自托管的个人财务与家庭预算管理应用程序,提供了隐私安全完全控制高度可定制的优势。与那些需要将敏感财务数据存储在第三方服务器上的商业应用不同,Wallos允许你将所有数据掌握在自己手中。

对于技术爱好者、注重隐私的用户或小型家庭而言,在Linux云服务器上部署Wallos不仅能确保数据安全,还能提供随时随地访问的便利。无论你使用的是阿里云、腾讯云还是其他云服务商提供的ECS实例,本教程都将引导你完成从零开始的完整部署过程,即便是对Linux命令行只有基础了解的用户,也能按照步骤成功搭建自己的Wallos平台。

第一章:部署前的准备工作

准备一台具备公网IP的云服务器(推荐使用雨云)

优惠注册地址:https://www.rainyun.com/sn_

使用优惠码:sn

注: 使用优惠码注册后绑定微信可领取5折优惠券

服务器选购步骤:

  1. 注册后,在"总览"页面找到"云服务器"入口,进入后点击"购买云服务器"

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内部,我们还可以进行一些安全强化:

  1. 修改默认管理员密码 :首次登录Wallos后(默认用户名为admin,密码为password),立即修改为强密码
  2. 启用双因素认证:在Wallos设置中启用2FA,提高账户安全性
  3. 定期备份:设置数据库和上传文件的定期备份机制

第四章: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的性能表现:

  1. 服务器资源监控 :使用htopnmon等工具监控CPU、内存和磁盘使用情况
  2. 访问日志分析:定期检查Nginx访问日志,了解使用模式
  3. 数据库优化 :对于大型数据库,定期运行OPTIMIZE TABLE命令提升性能

结语

通过本教程,你已经成功部署了Wallos个人财务管理系统。部署过程看似复杂,但实际上按照步骤操作,即使零基础的用户也能顺利完成。

相关推荐
郝学胜-神的一滴2 小时前
Linux网络编程之Socket函数:构建通信的桥梁
linux·服务器·网络·c++·程序人生
qq_12498707532 小时前
基于html的书城阅读器系统的设计与实现(源码+论文+部署+安装)
前端·vue.js·spring boot·后端·mysql·信息可视化·html
阿钱真强道2 小时前
11 JetLinks MQTT 直连设备功能调用完整流程与 Python 实现
服务器·开发语言·网络·python·物联网·网络协议
理智.6292 小时前
Windows 本地文件上传到 Linux 服务器的完整实践(scp/ssh),以及常见踩坑总结
linux·服务器·ssh
翼龙云_cloud2 小时前
阿里云渠道商:阿里云弹性伸缩如何助力海量数据采集?
服务器·阿里云·云计算
酉鬼女又兒2 小时前
Linux快速入门指南:常用快捷键➕命令行高效操作
linux·运维·服务器
小学导航员2 小时前
VMWARE虚拟机上不了网络
服务器·网络·php
一个懒人懒人2 小时前
mysql2连接池配置与优化
前端·mysql
林shir2 小时前
3-19-项目部署(Linux)
linux·运维·服务器