Lychee|个人PHP云相册

Lychee 是一款免费开源的自建相册系统,基于 PHP 和 MySQL/MariaDB,界面简洁,适合在自己的主机空间里存储、浏览和分享照片。本文记录如何在 Xserver 共享主机上,从 SSH 设置开始,一步步完成 Lychee 的部署和基本使用。官网 Lychee。

流程概览

  1. 生成 SSH 密钥,注册到 Xserver,确认能够连接
  2. 在控制面板创建数据库
  3. 通过 SSH 运行部署脚本,在浏览器完成安装向导
  4. 在后台设置密码保护
  5. 创建相册,生成分享链接

第一部分:SSH 设置

Step 1:生成 SSH 密钥对

在本地电脑(Mac / Linux)的终端执行:

ssh-keygen -t ed25519 -C "xserver-lychee"

按提示回车,并设置一个足够长的密码短语。完成后会生成两个文件:

~/.ssh/id_ed25519      # 私钥,不要外传
~/.ssh/id_ed25519.pub  # 公钥,注册到 Xserver 用

查看公钥内容:

Step 2:在 Xserver 注册公钥

cat ~/.ssh/id_ed25519.pub

在 Xserver 控制面板的 SSH 设置页面,点击「+ 公開鍵を登録」。

填写方式:

登録方式:手動
ラベル:任意名称(例:my-macbook)
公開鍵:粘贴上一步 cat 命令输出的完整内容

公钥内容的格式类似:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... xserver-lychee

注册后,在「設定状況」一列点击 ON。

Step 3:测试 SSH 连接

ssh -i ~/.ssh/id_ed25519 -p 10022 <サーバーID>@<サーバーホスト名>

参数说明:

  • -i:私钥路径
  • -p 10022:Xserver 的 SSH 端口固定为 10022
  • <サーバーID>:你的服务器 ID,在控制面板的服务器信息里可以查到
  • <サーバーホスト名>:形如 svXXXXX.xserver.jp

首次连接会询问是否继续,输入 yes,再输入刚才设置的密码短语。成功后会看到类似这样的提示符:[<サーバーID>@svXXXXX ~]$

Step 4:简化连接命令

先 exit 退出服务器,回到本地终端,编辑 SSH 配置文件:

nano ~/.ssh/config

写入以下内容:

Host xserver
    HostName <サーバーホスト名>
    User <サーバーID>
    Port 10022
    IdentityFile ~/.ssh/id_ed25519

保存:Ctrl+O → 回车 → Ctrl+X。然后测试:

ssh xserver

输入密码短语后能看到服务器提示符,就说明简化命令已生效,SSH 设置全部完成。输入 exit 退出。

第二部分:部署 Lychee

准备数据库

在 Xserver 控制面板进入「MySQL設定」→「MySQL追加」,创建数据库和用户:

データベース名:<数据库名>
ユーザー名:<数据库用户名>
パスワード:<建议字母+数字组合>

运行一键部署脚本

SSH 连接服务器后,把下面的内容整体复制粘贴执行。它会用 cat 直接在服务器上写出脚本文件,不需要编辑器。执行前请先修改脚本开头标注的变量:

cat > deploy_lychee.sh << 'SCRIPT_END'
#!/bin/bash
# ===================================
# Lychee 一键部署脚本 for Xserver
# 执行前请修改下方变量
# ===================================

# ★ 修改这里 ★
DOMAIN="example.com"              # 你的域名
SERVER_ID="<サーバーID>"           # Xserver 服务器 ID
DB_HOST="localhost"
DB_NAME="<数据库名>"
DB_USER="<数据库用户名>"
DB_PASS="<数据库密码>"

# ===================================
# 以下不需要修改
# ===================================

WEB_ROOT="/home/${SERVER_ID}/${DOMAIN}/public_html"
LYCHEE_DIR="${WEB_ROOT}/photos"

echo "▶ 开始部署 Lychee..."

# 1. 下载最新版 Lychee
cd /tmp
echo "▶ 下载 Lychee..."
wget -q https://github.com/LycheeOrg/Lychee/releases/latest/download/Lychee.zip -O Lychee.zip

# 2. 解压到目标目录
echo "▶ 解压文件..."
mkdir -p ${LYCHEE_DIR}
unzip -q Lychee.zip -d ${LYCHEE_DIR}
rm Lychee.zip

# 3. 设置权限
echo "▶ 设置权限..."
find ${LYCHEE_DIR} -type f -exec chmod 644 {} \;
find ${LYCHEE_DIR} -type d -exec chmod 755 {} \;
chmod -R 775 ${LYCHEE_DIR}/storage
chmod -R 775 ${LYCHEE_DIR}/public/uploads
chmod -R 775 ${LYCHEE_DIR}/bootstrap/cache

# 4. 生成 .env 配置文件
echo "▶ 生成配置文件..."
cat > ${LYCHEE_DIR}/.env << EOF
APP_NAME=MyPhotos
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://${DOMAIN}/photos

DB_CONNECTION=mysql
DB_HOST=${DB_HOST}
DB_PORT=3306
DB_DATABASE=${DB_NAME}
DB_USERNAME=${DB_USER}
DB_PASSWORD=${DB_PASS}

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

TIMEZONE=Asia/Tokyo
EOF
chmod 600 ${LYCHEE_DIR}/.env

# 5. 设置 PHP 版本(Xserver 需要指定)
echo "▶ 设置 PHP 版本..."
cat > ${LYCHEE_DIR}/.htaccess << 'EOF'
AddHandler application/x-httpd-php82 .php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /photos/public/
    RewriteRule ^$ app/index.php [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /photos/public/index.php [L]
</IfModule>
EOF

echo ""
echo "✅ 文件部署完成!"
echo "请用浏览器访问:https://${DOMAIN}/photos/public/"
echo "按照安装向导填入数据库信息完成安装。"
SCRIPT_END

确认变量无误后,赋予执行权限并运行:

chmod +x deploy_lychee.sh
./deploy_lychee.sh

脚本里含有数据库密码,安装完成后建议立即删除:

rm deploy_lychee.sh

完成安装向导

浏览器访问 https://<域名>/photos/public/,首次访问会自动进入安装向导。按提示填写数据库信息,并设置管理员的用户名和密码。

第三部分:使用 Lychee 创建相册

设置整站密码保护

登录后,依次进入:左上角菜单 →「admin」→「Settings」→「Permissions」标签,勾选「Require user to login to access gallery.」。

创建相册并上传照片

点击左上角「+」→「New Album」,输入相册名,进入相册后上传照片。

设置相册访问权限

点击相册右上角的「↓」按钮 →「Public」,可以设置访客的具体权限和访问密码。

生成分享链接

点击相册右上角的「Share」。

常见问题

placeholder 生成时全部报错怎么办?
这是共享主机上 Imagick 的兼容性问题,改用 GD 即可,详见:Lychee|placeholder 生成失败(Imagick 报错)的解决方法:改用 GD。

Lychee 怎么升级?
详见 Lychee|开源相册手动升级与数据库备份。