✏写在前面

Vercel+MongoDB 部署的 Twikoo 需要借助外部图床才能实现评论区上传图片功能(按照官方文档,私有部署也需要外部图床)。查 阅Twikoo 文档,发现有一个可以私有部署(即部署在自己服务器上)的兰空图床可以用。本文将介绍从部署到应用兰空图床的全过程。

在此之前,请确保你的服务器具有如下环境:

  • 宝塔面板 7.9.3

  • Nginx

  • PHP 8.0及以上版本

  • MySQL 5.7及 以上版本

详细要求:

  1. PHP

    1.1. 宝塔面板进入软件商店 - 已安装 - PHP - 设置。

    1.2. 进入安装扩展,安装 fileinfo 和 imagemagick。

    1.3. 进入禁用函数,删除 exec、shell_exec、readlink、symlink、putenv、getenv。

  2. MySQL

如需升级,宝塔面板进入软件商店 - 已安装 - MySQL - 设置 - 切换版本。如已有数据库,按照提示备份好所有数据库并下载,开启数据库回收站然后删除所有数据库。切换版本后再从数据库回收站中恢复数据库,再从备份好的数据库文件恢复一次

📝开始安装

宝塔面板进入网站 - 添加站点,按照下图配置后提交。

访问下载页下载图床程序,在最新 Assets 下选第一个。

宝塔面板进入文件,定位到 /www/wwwroot/baidu.com,上传并解压下载好的文件。全选文件夹内的所有文件,工具栏点权限,按照下图配置后确定。

img

宝塔面板进入网站,设置刚刚建好的站点,点网站目录,关闭防跨站攻击(open_basedir),网站目录设置为 /www/wwwroot/baidu.com/public。

再点伪静态,填入以下内容并保存。

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

再点 SSL,在 Let’s Encrypt 栏申请证书,随后在当前证书栏强制 HTTPS。

访问站点,会有检测过程,如果出现了红叉,你得检查 PHP 是否安装了相应扩展以及是否删除了相应禁用的函数。

在填写数据库页面填写数据库及密码,并创建管理员账号,不用修改端口。如果报错,检查 MySQL 版本号是否在 5.7 以上。

💊图床配置

修改容量

图片默认存储在本地,你需要根据服务器硬盘剩余容量来定义图床容量。

进入用户管理 - 编辑,修改总容量(单位:KB),例如我要设置为 15GB,直接输入 15728640 并确认保存。

修改最大文件大小

最大文件大小受 Nginx 和 PHP 的影响,它们决定你能设置的上限,默认 50MB。你可以在宝塔面板 - 软件商店 - 已安装 - Nginx - 性能调整 - client_max_body_size 和宝塔面板 - 软件商店 - 已安装 - PHP - 上传限制中修改。

进入角色组 - 编辑,修改最大文件大小(单位:KB),例如我要设置为 20MB,直接输入 20480 并确认保存。

图片链接转为 HTTPS

进入存储策略 - 编辑,修改访问网址,把协议头 http 改为 https 并确认修改。

图片默认权限改为公开

进入设置 - 图片默认权限,选中公开并保存设置。

允许游客上传

进入系统设置,检查启用接口和允许游客上传是否打开以及账号验证是否关闭。

🪪获取token

进入接口,复制接口 URL,修改,在后面添加 /tokens。

打开Getman,按照下面的图片和代码填写。

img

{
"email": "管理员邮箱",
"password":"管理员密码"
}

其中管理员邮箱和密码替换为自己的即可。

在下方 Response 中的 Body 栏,你将看到类似 1|1bJbwlqBfnggmOMEZqXT5XusaIwqiZjCDs7r1Ob5 的 Token,复制好它。

(若获取失败,可在Getman网站查看解决办法)

进入 Twikoo 管理面板 - 配置管理 - 插件,IMAGE_CDN 填入图床首页,例如 https://baidu.com注意,末尾不要添加斜杠。IMAGE_CDN_TOKEN 填入刚刚复制的 Token。

大功告成,现在,上传图片试试效果吧!