Lychee是一款开源的照片管理和共享系统,支持自托管部署。本教程将指导你在Debian 12服务器上安装Lychee照片管理系统,使用LAMP Stack(Linux、Apache、MariaDB和PHP)作为运行环境,并通过Certbot配置HTTPS安全连接。
前提条件
在开始之前,请确保你具备以下条件:
- 一台Debian 12服务器
- 一个具有管理员权限的非root用户
安装依赖
在本节中,你将在Debian服务器上安装LAMP Stack(Linux、Apache、MariaDB和PHP)。目前Lychee支持PHP 8.2或更高版本,Debian仓库默认提供该版本。
首先运行以下命令更新软件包索引。
sudo apt update

然后使用以下命令安装LAMP Stack软件包。输入Y确认安装。
sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath php-imagick php-tokenizer libapache2-mod-php

安装完成后,执行以下命令检查Apache服务状态。你将看到Apache Web服务器正在运行并已启用。
sudo systemctl is-enabled apache2
sudo systemctl status apache2

使用以下命令检查MariaDB服务器状态。MariaDB服务器应该已自动运行并启用。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

最后检查PHP版本,确认PHP 8.2或更高版本已安装。
php -v
php -m

配置PHP
依赖安装完成后,你需要编辑php.ini文件来配置PHP,然后重启Apache Web服务器使配置生效。
使用nano编辑器打开/etc/php/8.3/apache2/php.ini文件。
sudo nano /etc/php/8.3/apache2/php.ini
按如下方式修改默认配置,确保调整memory_limit和date.timezone选项。
date.timezone = Europe/Amsterdam memory_limit = 256M upload_max_filesize = 64MB post_max_size = 64MB
保存文件并退出编辑器。然后运行以下命令重启Apache Web服务器以应用更改。
sudo systemctl restart apache2
配置MariaDB服务器
PHP配置完成后,你将使用mariadb-secure-installation命令来加固MariaDB服务器,然后通过mariadb客户端创建Lychee所需的新数据库和用户。
执行以下命令来设置MariaDB服务器。
sudo mariadb-secure-installation
系统将提示你进行以下MariaDB配置:
- 对于没有root密码的默认MariaDB安装,在询问密码时按Enter键。
- MariaDB root用户的本地认证默认是安全的,当被问及是否将认证方法更改为unix_socket时,输入
n。 - 输入
Y创建新的MariaDB root密码,然后输入强密码并确认。 - 当被问及是否禁用MariaDB root用户的远程认证时,输入
Y同意。 - 默认MariaDB安装包含test数据库并允许匿名用户访问。对这两项设置都输入
Y以移除默认数据库和匿名权限。 - 最后输入
Y确认重新加载表权限。
MariaDB配置并加固完成后,创建Lychee安装将使用的新数据库和用户。
使用以下命令登录MariaDB服务器,输入你的MariaDB root密码。
sudo mariadb -u root -p
运行以下查询创建名为lychee的数据库,以及用户lycheeuser@localhost,密码为LycheePassword。你可以根据需要更改数据库详情。
CREATE DATABASE lychee;
GRANT ALL PRIVILEGES ON lychee.* TO lycheeuser@'localhost' IDENTIFIED BY 'LycheePassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

运行以下查询确认用户lycheeuser@localhost可以访问数据库lychee。
SHOW GRANTS FOR lycheeuser@localhost;
如果一切正常,你将看到类似如下的输出。

最后输入quit退出MariaDB服务器。
下载Lychee照片管理系统
PHP和MariaDB都配置完成后,你将下载Lychee源代码并设置安装目录和.env文件。
首先使用以下命令安装unzip包。
sudo apt install unzip -y
进入/var/www目录,使用wget命令下载Lychee源代码。确保从Lychee发布页面获取最新版本的链接。
cd /var/www/
wget https://github.com/LycheeOrg/Lychee/releases/download/v5.5.1/Lychee.zip
下载完成后,使用unzip命令解压Lychee源代码。源代码将被解压到/var/www/Lychee目录。
unzip Lychee.zip
执行以下命令将/var/www/Lychee目录的所有权更改为www-data用户,并设置部分目录的写入权限。
sudo chown -R www-data:www-data /var/www/Lychee
sudo chmod u+rw /var/www/Lychee/{storage,bootstrap/cache/,public/dist,public/uploads,public/sym}
运行以下命令复制Lychee的.env文件并使用nano编辑器进行修改。
sudo -u www-data cp /var/www/Lychee/.env-example /var/www/Lychee/.env
sudo -u www-data nano /var/www/Lychee/.env
将默认APP_URL更改为你的域名,并将数据库配置设置为mysql及你的数据库详情,如下所示:
# domain name APP_URL=https://photo.howtoforge.local # database to MariaDB/MySQL DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=lychee DB_USERNAME=lycheeuser DB_PASSWORD=LycheePassword
保存文件并退出编辑器。
创建Apache虚拟主机
在本节中,你将创建一个新的Apache虚拟主机配置文件来运行Lychee照片管理系统。
首先运行以下命令启用rewrite模块。
sudo a2enmod rewrite
使用nano编辑器编辑Apache配置文件/etc/apache2/apache.conf。
sudo nano /etc/apache2/apache.conf
将以下配置添加到文件中。这允许你设置.htaccess重写规则。
Options Indexes FollowSymLinks AllowOverride All Require all granted
保存文件并退出编辑器。
使用nano编辑器创建新的Apache虚拟主机配置文件/etc/apache2/sites-available/lychee.conf。
sudo nano /etc/apache2/sites-available/lychee.conf
粘贴以下配置,确保将ServerName选项更改为你的目标域名,使其与.env文件中的APP_URL保持一致。
ServerAdmin webmaster@howtoforge.local ServerName photo.howtoforge.local DocumentRoot /var/www/Lychee/ ErrorLog /var/log/apache2/photo-howtoforge-local-error_log CustomLog /var/log/apache2/photo-howtoforge-local-access_log common
保存并退出文件。
运行以下命令激活虚拟主机文件lychee.conf并验证Apache语法。如果Apache语法正确,你将看到输出"Syntax is OK"。
sudo a2ensite lychee.conf
sudo apachectl configtest
最后运行以下命令重启Apache并应用更改。
sudo systemctl restart apache2

使用HTTPS保护Lychee
如果你在公共域名上运行Lychee,请确保使用HTTPS进行保护。在本节中,你将安装Certbot并使用Let's Encrypt的SSL/TLS证书保护Lychee。
运行以下命令安装Certbot和Apache插件。
sudo apt install certbot python3-certbot-apache -y
安装完成后,运行以下certbot命令为Lychee安装生成新的SSL/TLS证书。确保在此命令中更改域名和电子邮件地址。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@howtoforge.local -d photo.howtoforge.local
过程完成后,你的Lychee安装将通过HTTPS进行保护,SSL/TLS证书将位于/etc/letsencrypt/live/domain.com目录。
安装Lychee照片管理系统
使用你喜欢的Web浏览器访问Lychee安装域名(如https://photo.howtoforge.local/),你将看到Lychee安装向导。
点击Next继续安装。

确保所有PHP扩展已安装,Apache rewrite模块已在系统上启用。

确保PHP可以在某些目录中进行读取、写入和执行操作。

检查屏幕上的.env文件,确保你的域名和MariaDB详情正确。

安装程序将为Lychee生成应用密钥。

输入你的管理员用户名、电子邮件地址和密码,Lychee安装即告完成。

在Lychee主页上,点击登录提示,然后输入你的管理员用户名和密码。

以下是上传一些图片到Lychee服务器后看到的用户仪表板。

总结
恭喜你已在Debian 12服务器上使用LAMP Stack(Linux、Apache、MariaDB和PHP)完成了Lychee照片管理系统的安装。你还通过Certbot和Let's Encrypt为Lychee配置了HTTPS安全连接。