WC软件下载站 - 搭建教程

一款简洁高效的软件资源展示与下载管理系统,专为软件分享平台设计。支持响应式布局、深色模式、下载统计等功能。

PHP
MySQL
License


📸 效果预览

前台展示效果

![前台首页]前台首页.png

  • ✅ 响应式设计,完美适配手机/平板/PC
  • ✅ 支持日间/夜间主题切换
  • ✅ 实时搜索 + 分类筛选
  • ✅ 置顶软件优先展示
  • ✅ 真实下载数 + 虚拟下载数统计

后台管理功能

![后台登录]添加软件.png

  • ✅ Session安全登录(30分钟过期保护)

软件列表

  • ✅ 软件增删改查 + 置顶功能

![添加软件]软件列表.png

  • ✅ 批量上传软件和图片
  • ✅ 安全图片上传验证

![分类管理]分类管理.png

  • ✅ 分类管理 + 拖拽排序

🎯 适用场景

场景说明
软件分享站展示和分发各类软件资源
应用推荐平台推荐精品应用,带下载统计
个人资源库整理个人常用软件合集
破解资源站分享修改版软件(默认分类已配置)

🛠️ 环境要求

在开始搭建前,请确保你的服务器满足以下条件:

组件最低要求推荐版本
PHP7.0+7.4 或 8.x
MySQL5.6+5.7 / 8.0
Web服务器Apache / NginxNginx + PHP-FPM
磁盘空间100MB+1GB+(含上传文件)

必需PHP扩展

- mysqli(数据库连接)
- session(登录认证)
- fileinfo(文件类型检测)
- gd(图片处理,可选)

📦 搭建步骤

第一步:下载程序

将程序文件上传至网站根目录:

# 宝塔面板用户
/www/wwwroot/你的域名/

# 虚拟主机用户
/public_html/ 或 /htdocs/

# 本地测试
C:/xampp/htdocs/wczs/

文件清单:

├── index.php          # 前台首页
├── admin.php          # 后台管理(带登录认证)
├── config.php         # 数据库配置文件
├── download.php       # 下载统计跳转
├── update_db.php      # 数据库升级工具
├── README.md          # 使用说明
├── .user.ini          # PHP安全配置
├── uploads/           # 上传文件存储目录
└── gf/                # 扩展功能目录

第二步:创建数据库

方法A:宝塔面板(推荐新手)

  1. 登录宝塔面板 → 数据库 → 添加数据库
  2. 填写数据库名(如 wczs
  3. 设置用户名和密码
  4. 点击提交,记录好账号信息

方法B:命令行创建

-- 登录MySQL
mysql -u root -p

-- 创建数据库
CREATE DATABASE wczs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户(可选,也可使用root)
CREATE USER 'wczs_user'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON wczs.* TO 'wczs_user'@'localhost';
FLUSH PRIVILEGES;

第三步:配置数据库连接

编辑 config.php 文件,修改数据库连接信息:

<?php
$host = 'localhost';        // 数据库地址,一般保持localhost
$user = 'wczs_user';        // 数据库用户名
$pass = '你的密码';          // 数据库密码
$db   = 'wczs';             // 数据库名

// 以下部分不用修改
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = mysqli_connect($host, $user, $pass, $db);
mysqli_set_charset($conn, 'utf8mb4');
// ...

⚠️ 安全提示:生产环境请务必修改数据库密码为强密码!


第四步:设置目录权限

确保以下目录有写入权限:

# Linux/Mac 命令行
chmod -R 755 uploads/
chmod -R 755 gf/

# 或者设置为777(不推荐生产环境)
chmod -R 777 uploads/

宝塔面板操作:

  1. 文件管理 → 找到程序目录
  2. 右键 uploads 文件夹 → 权限
  3. 设置为 755 或 777
  4. 勾选「应用到子目录」

第五步:访问安装

1. 前台访问

浏览器打开:

http://你的域名/index.php

首次访问会自动创建数据库表,看到软件列表页面即表示安装成功。

2. 后台登录

浏览器打开:

http://你的域名/admin.php

默认账号:

  • 用户名:admin
  • 密码:admin123

⚠️ 重要:登录后请立即修改密码!


第六步:安全加固(必做)

1. 修改后台密码

编辑 admin.php 第7行:

$ADMIN_PASSWORD = '你的强密码';  // 修改为复杂密码

建议密码组合:字母 + 数字 + 符号,长度12位以上。

2. 删除升级脚本(可选)

安装完成后,可删除数据库升级文件:

rm update_db.php

3. 修改数据库密码(高级)

如果之前使用的是弱密码,建议修改:

ALTER USER 'wczs_user'@'localhost' IDENTIFIED BY '新强密码';
FLUSH PRIVILEGES;

同时更新 config.php 中的 $pass


🎨 使用教程

添加软件

单条添加

  1. 登录后台 → 点击「添加软件」
  2. 填写软件名称
  3. 填写下载链接(网盘链接或直链)
  4. 选择分类
  5. 上传软件图标(支持jpg/png/gif/webp)
  6. 点击「添加软件」

批量添加

  1. 后台 → 「添加软件」→ 切换到「批量添加」标签
  2. 选择分类
  3. 按格式粘贴内容:

    软件名称1
    https://下载链接1
    软件名称2
    https://下载链接2
  4. 上传对应数量的图片(可选)
  5. 点击「批量添加」

管理软件

置顶软件

  • 软件列表页 → 点击「置顶」按钮
  • 置顶软件会在前台最前面显示
  • 再次点击可取消置顶

编辑软件

  • 点击「编辑」按钮
  • 可修改名称、链接、分类、图标
  • 可设置虚拟下载次数(用于展示)

删除软件

  • 点击「删除」按钮
  • 确认后会同时删除关联的图片文件

分类管理

添加分类

分类在首次访问时自动创建默认分类:

  • 破解修改
  • 科学上网
  • 娱乐游戏
  • 实用工具
  • 系统美化

排序分类

  1. 进入「分类管理」页面
  2. 修改数字序号(越小越靠前)
  3. 点击「保存排序」

删除分类

点击「删除」按钮即可,注意:删除分类不会影响已归类的软件。


🔐 安全说明

已修复的安全漏洞

本程序已针对以下安全问题进行加固:

漏洞类型修复措施
SQL注入所有输入使用 mysqli_real_escape_string() 转义
XSS攻击所有输出使用 htmlspecialchars() 转义
文件上传漏洞验证MIME类型、扩展名、图片真实性
未授权访问后台添加Session登录认证,30分钟过期
目录遍历上传文件使用随机文件名,禁止执行权限

生产环境建议

  1. 开启HTTPS:使用SSL证书加密传输
  2. 定期备份:每周备份数据库和uploads目录
  3. 错误隐藏:生产环境关闭PHP错误显示

    error_reporting(0);
    ini_set('display_errors', 0);
  4. 防火墙设置:仅开放80/443端口

❓ 常见问题

Q1: 访问提示 "Table 'xxx.apps' doesn't exist"

原因:数据库表未创建
解决:检查 config.php 数据库配置,确保信息正确,然后刷新页面自动创建

Q2: 图片上传失败

原因:目录权限不足
解决

chmod -R 777 uploads/

宝塔用户:文件管理 → uploads → 权限 → 777

Q3: 后台登录提示 "页面丢失" 或 404

原因:可能误删了admin.php或Session未开启
解决

  • 检查 admin.php 文件是否存在
  • 检查PHP是否开启Session扩展
  • 检查浏览器是否启用Cookie

Q4: 前台样式错乱

原因:可能是CDN加载失败或CSS被拦截
解决:检查浏览器控制台是否有资源加载错误,尝试切换网络环境

Q5: 如何修改网站标题?

编辑 index.php,搜索:

<title>WC软件 - 精品软件推荐</title>

修改为你想要的标题。


📊 数据库结构

如需手动导入,可使用以下SQL:

-- 创建分类表
CREATE TABLE IF NOT EXISTS categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL UNIQUE,
    sort_order INT DEFAULT 0,
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 插入默认分类
INSERT INTO categories (name, sort_order) VALUES
('破解修改', 1),
('科学上网', 2),
('娱乐游戏', 3),
('实用工具', 4),
('系统美化', 5);

-- 创建软件表
CREATE TABLE IF NOT EXISTS apps (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    image VARCHAR(500) NOT NULL,
    download_url TEXT NOT NULL,
    category VARCHAR(100) NOT NULL,
    download_count INT DEFAULT 0,
    virtual_downloads INT DEFAULT 0,
    is_sticky TINYINT DEFAULT 0,
    sticky_time DATETIME NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_category (category),
    INDEX idx_is_sticky (is_sticky),
    INDEX idx_sticky_time (sticky_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

📝 更新日志

v1.0 (2025-02-28)

  • ✅ 初始版本发布
  • ✅ 前后台基础功能完成
  • ✅ 安全漏洞修复
  • ✅ 响应式布局优化
  • ✅ 深色模式支持

源码下载地址:

此处内容需要评论回复后(审核通过)方可阅读。

🤝 技术支持

如有问题或建议,欢迎交流讨论。

声明:本程序仅供学习交流使用,请勿用于非法用途。使用本程序搭建的网站,请遵守当地法律法规,上传资源需确保拥有合法版权或授权。


如果这篇教程对你有帮助,欢迎收藏分享! 🎉
最后修改:2026 年 02 月 28 日
如果觉得我的文章对你有用,请随意赞赏