树莓派 篇二:简约但不简单的个人相册——用树莓派搭建Lychee荔枝相册
追加修改(2020-04-03 10:23:33):
另外,Nginx 默认对于文件上传大小是有限制的,上传大文件会在error.log看到
client intended to send too large body: 3776747 bytes,所以在Lychee.conf 中要增加以下配置即可:
修改如下:
#set request body size
client_max_body_size 16G;
设置为0,则表明不做限制。
简介
Lychee 是一款开源的图片管理系统,实际上也可以用作图床,而且还可以支持视频上传分享,一直在更新,自身功能很强大,还支持二次开发插件及扩展来丰富功能,此外这套系统也支持 Docker 。
优点
小巧简单
漂亮优雅
多种导入方式
支持密码访问
自动生成图片多种大小
支持视频上传&播放&略缩图生成
插件支持
官方中文
缺点
单用户
功能较为单一
批量生成外链较麻烦
不支持水印(可通过插件解决,但官方不提倡)
密码访问只能控制相册(可通过插件解决)
官网地址
项目 Github 地址 项目 Github 地址2
Demo 演示
搭建步骤
事先要求
Web服务器(Apache,nginx等)
MySQL数据库(MariaDB也可以)
PHP 7.1或更高版本具有以下扩展名:session,exif,mbstring,gd,mysqli,json,zip,和任选的imagick
如需查看相片exif信息,请启用EXIF扩展
如需获得上传视频的缩略图,请安装ffmpeg和php-ffmpeg扩展
强烈建议使用HTTPS
建议在php.ini文件中修改一下内容
max_execution_time = 200
post_max_size = 100
Mupload_max_size = 100M
upload_max_filesize = 20M
memory_limit = 256M
安装
亦可以使用 docker,但是这里基于树莓派性能考虑,选择直接安装。
从官方git仓库拉取
git clone --recurse-submodules https://github.com/LycheeOrg/Lychee.git
设置文件权限
sudo cp -r ./Lychee /etc/www/Lychee
cd /etc/www/Lychee
touch dist/user.css
chown -R www-data:www-data ./Lychee
chmod -R 775 uploads/ dist/
chmod -R 750 data/
配置数据库
如果Lychee文件夹是在Web服务器的主目录,那么在浏览器中就可以打开http://localhost/Lychee,并配置数据库
首次登录会在/var/www/Lychee/data/ 下新建一个config.php的文件,内容如下
<?php
// Database configuration
$dbHost = 'localhost'; // Host of the database 数据库地址
$dbUser = 'Lychee'; // Username of the database 数据库用户
$dbPassword = '你的密码'; // Password of the database 数据库密码
$dbName = 'Lychee'; // Database name 数据库名称
$dbTablePrefix = 'Lychee'; // Table prefix 表前缀
你也可以直接新建内容如上的 /var/www/Lychee/data/config.php 文件,即可跳过以上步骤。
设置管理员用户
切换语言到中文
图片上传
从服务器(树莓派)导入图片
图片外链
设置密码访问
ps:仅对相册有效,分享的直链不受限制
视频支持
从3.2.0版开始,Lychee允许上传视频。为了获得上传视频的缩略图,您需要执行以下操作:
ffmpeg在您的服务器系统上安装
安装PHP依赖项(需要php-ffmpeg)
根据您的需要调整upload_max_filesize限制php.ini,例如upload_max_filesize=150m
frp内网穿透
frp配置
有中文说明很详细。
nano ~/frp/frpc.ini
frpc.ini内容
[pi_Lychee]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8089
[pi_https]
type = tcp
local_ip = 127.0.0.1
local_port = 443
remote_port = 443
然后,就可以通过 http://你的frp服务器外网IP:8089 访问了。
域名访问
使用acme.sh申请Let's Encrypt 免费HTTPS证书,记住证书和Key的位置。
有中文说明很详细。
wget https://get.acme.sh | sh
acme.sh --issue --dns dns_ali --force -d 你的域名 # Let’s Encrypt 证书自动生成
.acme.sh/acme.sh --upgrade --auto-upgrade #自动更新
nginx配置
sudo nano /etc/nginx/conf.d/Lychee.conf
Lychee.conf内容
server {
# listen 80;
listen 443 ssl;
server_name 你的域名;
ssl_certificate /home/pi/.acme.sh/你的域名/你的域名.cer;#你的域名证书位置
ssl_certificate_key /home/pi/.acme.sh/你的域名/你的域名.key;#你的域名证书Key位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
root /var/www/Lychee;
access_log /var/www/Lychee/access.log;
error_log /var/www/Lychee/error.log;
index index.php index.html;
location / {
try_files $uri $uri/ /index.html;
}
location ~* .(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
access_log off;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
}
location ~ .php$ {
fastcgi_split_path_info ^(.*.php)(/.*)?$;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
然后,就在任何地点通过 https://你的域名 访问你的个人相册了。
v黑洞a
校验提示文案
值友7892613672
校验提示文案
天翼看豆
校验提示文案
垚土土土土
校验提示文案
kidakid
校验提示文案
lcling
校验提示文案
lcling
校验提示文案
lcling
校验提示文案
lcling
校验提示文案
kidakid
校验提示文案
垚土土土土
校验提示文案
值友7892613672
校验提示文案
v黑洞a
校验提示文案
天翼看豆
校验提示文案