时光相册(私人相册)PHP端+uniappAPP端

时光相册(私人相册)PHP端+uniappAPP端

正题

时光相册(PhotoLife)— 自托管私人相册

记录生活,留住每一刻的温柔


这是什么?

时光相册是一款轻量自托管相册程序,专为追求隐私与品质的你设计。把回忆牢牢掌握在自己手中——无论是日常随手拍下的晚霞、孩子成长的珍贵记录,还是旅行途中的风景大片,都能帮你妥善安放。

  • 隐私至上:数据在自己服务器,不依赖任何第三方云
  • 全端覆盖:PC网页 + UniApp移动端(iOS/Android/H5)
  • 灵活存储:本地 / 阿里云OSS / 腾讯云COS / 七牛云 / 又拍云
  • 视频支持:自动提取封面、时长,全屏播放
  • 时光轴:日历视图,按日期梳理生活轨迹

功能一览

模块功能
📷 图片多图上传、拍照上传、瀑布流展示、全屏查看、长按保存/删除
🎬 视频视频上传、自动提取封面+时长、全屏播放、长按保存/删除
📅 浏览日期分组、日历选择器、照片/视频Tab切换、下拉刷新
🔐 安全访问密码保护、独立管理员系统、APP端Token认证
☁️ 存储本地/OSS/COS/七牛/又拍云,OSS直传+中转回退
🖥️ Web端响应式布局、批量删除、管理后台
📱 APP端原生Android应用、上传进度条、视频时长显示

技术栈

  • 后端:PHP 7.4+ / 8.0 + MySQL,纯原生开发,无框架依赖
  • 前端:纯 JS/CSS/HTML,无 Vue/React 等框架
  • 移动端:UniApp(Vue 2),支持 iOS / Android / H5
  • 视频处理:ffmpeg 自动提取封面和时长

源码说明

包名内容
photolife-backend.tar.gz后端源码(含PC网页前端+管理后台)
photolife-uniapp.tar.gzUniApp移动端源码

搭建教程

一、服务器环境要求

组件最低要求推荐
系统CentOS 7+ / Ubuntu 18+CentOS 7.9
Web服务器Nginx 1.18+Nginx 1.22
PHP7.4+PHP 7.4 / 8.0
MySQL5.7+MySQL 5.7
ffmpeg2.8+ffmpeg 4+(视频封面必须)

二、宝塔面板安装

# CentOS 安装宝塔
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装后在宝塔面板中安装:Nginx、PHP 7.4(或8.0)、MySQL 5.7

三、PHP 配置(重要!)

3.1 启用 exec 函数

宝塔面板 → 软件商店 → PHP → 设置 → 禁用函数,删除以下函数的禁用:

  • exec
  • shell_exec
  • putenv

时光相册需要 exec 调用 ffmpeg 生成视频封面,不开启则视频无封面。

3.2 安装 PHP 扩展

宝塔面板 → 软件商店 → PHP → 设置 → 安装扩展,确保已安装:

  • fileinfo(必须)
  • openssl(必须)
  • curl(必须)
  • gd(推荐)
  • mbstring(推荐)
  • pdo_mysql(必须)

3.3 修改上传限制

宝塔面板 → 软件商店 → PHP → 设置 → 配置修改:

upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
memory_limit = 256M

四、安装 ffmpeg

# CentOS 7
yum install -y epel-release
yum install -y ffmpeg

# Ubuntu
apt install -y ffmpeg

# 验证
ffmpeg -version

⚠️ 必须安装!否则视频无封面、时长显示0.00

五、部署后端

5.1 创建网站

  1. 宝塔面板 → 网站 → 添加站点
  2. 填写域名,PHP版本选 PHP 7.4
  3. 数据库选 MySQL,记录数据库信息

5.2 上传文件

  1. photolife-backend.tar.gz 上传到网站根目录
  2. 解压:
cd /www/wwwroot/你的域名
tar xzf photolife-backend.tar.gz

5.3 设置权限

chmod -R 755 .
chmod -R 777 uploads/
chmod -R 777 config.php   # 安装前需可写

5.4 安装向导

浏览器访问 http://你的域名/install.php,按提示完成:

  1. 填写数据库信息
  2. 设置管理员账号密码
  3. 设置访问密码(APP端需要)
  4. 配置存储方式(本地 或 阿里云OSS)

5.5 安装后清理

rm -f /www/wwwroot/你的域名/install.php

六、Nginx 伪静态

宝塔面板 → 网站 → 设置 → 伪静态:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

七、APP端编译

7.1 安装 HBuilderX

下载 HBuilderX

7.2 导入项目

  1. 解压 photolife-uniapp.tar.gz
  2. HBuilderX → 文件 → 导入 → 选择 photolife-app 目录

7.3 修改配置

编辑 config.js

const BASE_URL = 'http://你的域名/api';

7.4 配置 manifest.json

  • App模块配置:勾选 Gallery、Camera、VideoPlayer
  • App权限配置:添加存储和相机权限

7.5 编译/打包

  • 运行到手机:HBuilderX → 运行 → 运行到手机或模拟器
  • 打包APK:HBuilderX → 发行 → 原生App-云打包 → Android

八、阿里云OSS配置(可选)

配置项说明
AccessKeyId阿里云RAM用户的AccessKey ID
AccessKeySecret阿里云RAM用户的AccessKey Secret
BucketOSS存储桶名称
EndpointOSS区域节点

OSS CORS 配置(直传模式需要):

  • 来源:*
  • 允许 Methods:GET, POST, PUT, DELETE, HEAD
  • 允许 Headers:*

不配置CORS也能用,系统会自动回退到服务器中转上传。


常见问题

Q: 图片加载不出来?
APP端不支持HTTP图片,时光相册已使用服务器代理方式加载,确保 media.php 文件完整。

Q: 视频无封面?
服务器未安装 ffmpeg,参考第四节安装。

Q: 长按删除提示 Unauthorized?
确保后端 media.php 已部署最新版本。

Q: 上传大文件失败?
修改 PHP 上传限制(参考3.3节),同时检查 nginx 配置:

client_max_body_size 100m;

后端文件结构

├── api/
│   ├── media.php      # 媒体接口(列表、详情、删除)
│   ├── upload.php     # 上传接口(含ffmpeg封面提取)
│   ├── auth.php       # 认证接口
│   ├── app.php        # APP专用接口
│   ├── dates.php      # 日期查询接口
│   └── serve.php      # 媒体代理加载
├── includes/
│   ├── db.php         # 数据库连接
│   ├── functions.php  # 公共函数
│   ├── storage.php    # 存储驱动(本地/OSS/COS/七牛/又拍云)
│   └── exif.php       # EXIF信息解析
├── assets/            # PC前端资源
├── admin/             # 管理后台
├── uploads/           # 本地上传目录
├── config.php         # 配置文件
├── index.php          # 前端入口
└── install.php        # 安装向导

UniApp文件结构

photolife-app/
├── pages/
│   ├── index/index.vue     # 首页(瀑布流+日历)
│   ├── viewer/viewer.vue   # 全屏查看器
│   └── upload/upload.vue   # 上传页
├── components/
│   ├── MediaGrid/          # 瀑布流网格组件
│   ├── Calendar/           # 日历选择器组件
│   └── UploadProgress/     # 上传进度组件
├── api/index.js            # API封装
├── config.js               # 全局配置
└── utils/auth.js           # 认证工具

时光相册 —— 让记忆有处可栖。

图片欣赏

图片[1]-基于网站源码,游戏源码,小程序源码,Ai源码,网站开发,主题源码,软件开发,游戏辅助,游戏科技,手机软件,苹果系统,安卓软件等时光相册(私人相册)PHP端+uniappAPP端
图片[2]-基于网站源码,游戏源码,小程序源码,Ai源码,网站开发,主题源码,软件开发,游戏辅助,游戏科技,手机软件,苹果系统,安卓软件等时光相册(私人相册)PHP端+uniappAPP端
图片[3]-基于网站源码,游戏源码,小程序源码,Ai源码,网站开发,主题源码,软件开发,游戏辅助,游戏科技,手机软件,苹果系统,安卓软件等时光相册(私人相册)PHP端+uniappAPP端
图片[4]-基于网站源码,游戏源码,小程序源码,Ai源码,网站开发,主题源码,软件开发,游戏辅助,游戏科技,手机软件,苹果系统,安卓软件等时光相册(私人相册)PHP端+uniappAPP端
图片[5]-基于网站源码,游戏源码,小程序源码,Ai源码,网站开发,主题源码,软件开发,游戏辅助,游戏科技,手机软件,苹果系统,安卓软件等时光相册(私人相册)PHP端+uniappAPP端

下载地址

百度网盘:https://pan.baidu.com/s/11LvXjw4PogUyua6isvrwDA?pwd=1u48 

注:APP内图标须自配,自己寻找倒入即可

© 版权声明
THE END
喜欢就支持一下吧
点赞1.5W+ 分享