在 Chevereto 4.2 版本之前,我一直使用 FTP 作为外置存储来管理图床文件,因为那时 Chevereto 并不支持 MinIO 的路径模式。
但随着 4.2 版本的更新,Chevereto 终于支持了 MinIO,这让我可以将存储迁移到更高效、更安全的云存储方案。本文将分享如何将原本存储在 FTP 上的图床文件迁移到 MinIO,并优化存储管理。
安装 MinIO
HestiaCP 安装 MinIO 教程
在Hestiacp中新建网站,配置ssl,新建数据库的操作就不再赘述了。如果你是第一次看到hestiacp系列教程,请点击下方链接,就能看到完整的一系列教程了。 HestiaCP - HOSTEYEHOSTEYE由 FOXCOO 如果你想利用hestiacp的备份与恢复功能,那就将minio安装到网站目录下。这里将以此类情况演示。 安装 MinIO 服务器 这里新建用户不建议用minio 你可以使用minio-user 。 因为要利用hestiacp的备份与恢复功能,所以我们全部自定义安装。 然后进入网站目录/home/minio-user/web/xxx.com/public_html/ 使用以下命令下载最新的稳定 MinIO 二进制文件并将其安装到系统 wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio 使用 systemd 守护进程 在 /etc/systemd/

安装 MinIO 客户端(mc)
在你ftp的vps上安装
curl https://dl.min.io/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc
chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/
mc --help
使用mc alias set
命令将Amazon S3兼容的服务添加到mc
中。
mc alias set myminio HOSTNAME ACCESS_KEY SECRET_KEY
- 将
HOSTNAME
替换为S3服务的URL端点或IP地址。 - 将
ACCESS_KEY
和SECRET_KEY
替换为S3服务上用户的访问和密钥。
迁移文件到 MinIO
将文件从 /imgeye
目录上传到 MinIO 桶:
mc cp -r /imgeye myminio/mybucket/
自行修改
修改外部存储
不要删除原来的 SFTP 存储配置。Chevereto 会继续使用你原来的存储路径来访问已上传的文件。如果删除配置,文件路径可能会失效,导致访问问题。
千万不要删除旧的存储配置,直接将存储类型修改为 S3 Compatible 存储即可。

然后URL处路径格式要保持一致。
HestiaCP
用HestiaCP的注意一下,php-fpm模版要改一下,使用这个:
; origin-src: deb/php-fpm/multiphp.tpl
;#=========================================================================#
;# Default Web Domain Template #
;# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
;# https://hestiacp.com/docs/server-administration/web-templates.html #
;#=========================================================================#
[%domain%]
listen = /run/php/php%backend_version%-fpm-%domain%.sock
listen.owner = %user%
listen.group = www-data
listen.mode = 0660
user = %user%
group = %user%
pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s
pm.status_path = /status
php_admin_value[upload_tmp_dir] = /home/%user%/tmp
php_admin_value[session.save_path] = /home/%user%/tmp
php_admin_value[open_basedir] = /home/%user%/.aws:/home/%user%/.composer:/home/%user%/web/%domain%/public_html:/home/%user%/web/%domain%/private:/home/%user%/web/%domain%/public_shtml:/home/%user%/tmp:/tmp:/var/www/html:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f admin@%domain%
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /home/%user%/tmp
env[TMPDIR] = /home/%user%/tmp
env[TEMP] = /home/%user%/tmp
然后在/home
目录下新建一个.aws
文件夹