【开源分享】轻量级无数据库图床系统 - 极简部署方案
项目背景
最近在重构个人图床项目,决定将之前用的一套简易图床源码分享出来。虽然UI略显简陋且存在一些小瑕疵,但作为无需数据库的轻量级解决方案,它已经能满足基本需求。特别适合需要快速搭建临时图床的开发者。
核心特性
✔ 纯静态架构:HTML+CSS+JavaScript+PHP组合
✔ 零数据库依赖:所有图片直接存储在/image/
目录
✔ 极简部署:只需修改一个配置文件即可使用
✔ 前后台分离:基础前台展示 + 极简后台管理
快速部署指南
1. 环境准备
- PHP 5.6+ 环境(推荐7.4+)
- 支持文件写入权限的Web服务器
- 域名(支持HTTP/HTTPS)
2. 配置文件修改
// 修改pzwj.php中的关键配置
$config = [
'site_url' => 'https://yourdomain.com', // 改为你的实际域名
'admin_pass' => 'your_strong_password', // 设置后台密码
'max_upload' => 10 * 1024 * 1024, // 10MB文件大小限制
];
3. 目录权限设置
chmod -R 755 image/
chown -R www-data:www-data image/
4. 安全建议
# Nginx防止目录遍历配置
location /image/ {
autoindex off;
}
项目结构解析
├── index.html # 前台展示页
├── upload.php # 文件上传处理器
├── pzwj.php # 核心配置文件
├── admin/ # 后台管理目录
│ ├── index.php # 后台入口
│ └── style.css # 后台基础样式
└── image/ # 图片存储目录
├── 2023/ # 按年自动分类
└── thumb/ # 缩略图目录
功能扩展建议
1. 增加基础认证
// 在admin/index.php顶部添加
if($_SERVER['PHP_AUTH_PW'] != $config['admin_pass']){
header('WWW-Authenticate: Basic realm="图床管理"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
2. 添加图片压缩功能
// 使用GD库实现
function compressImage($source, $quality = 75){
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg') {
$image = imagecreatefromjpeg($source);
} elseif ($info['mime'] == 'image/png') {
$image = imagecreatefrompng($source);
}
imagejpeg($image, $source, $quality);
}
3. 简易防盗链方案
// 在图片展示页添加
$referer = $_SERVER['HTTP_REFERER'] ?? '';
if(!empty($referer) && !str_contains($referer, $_SERVER['HTTP_HOST'])){
die('Hotlinking not allowed');
}
安全加固方案
1. 文件上传防护
// 在upload.php中添加检查
$allowed_types = ['image/jpeg', 'image/png'];
if(!in_array($_FILES['file']['type'], $allowed_types)){
die('只允许上传JPEG/PNG图片');
}
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), ['jpg', 'jpeg', 'png'])){
die('非法文件扩展名');
}
2. PHP代码加密建议
对于核心业务逻辑,推荐采用以下加密方案组合:
- IC11加密:保护上传处理逻辑
- DECK V1混淆:用于配置文件保护
- GOTO混淆:基础功能防护
免费加密平台:php.javait.cn
常见问题解决
❓ 上传失败怎么办?
✅ 检查:1) image/
目录权限 2) PHP上传大小限制 3) 文件类型限制
❓ 后台无法登录?
✅ 确认:1) pzwj.php
配置正确 2) 密码不含特殊字符 3) 文件路径正确
❓ 如何批量管理图片?
✅ 建议通过SSH连接服务器直接操作image/
目录
项目下载
📦 源码包下载:
免责声明:本工具仅限合法用途,禁止用于:
- 存储侵权内容
- 传播非法图片
- 任何违法用途
开源协议:遵循MIT License,允许自由修改和分发,但需保留原作者信息。
欢迎在评论区分享您的使用体验和改进建议!对于贡献优质PR的开发者,我们将列入项目贡献者名单。
Holle!