之前一直被群晖科学浏览的问题所困扰,也因此不能升级 Chevereto 一个红色⚠️看着很难受,今天终于在网上找到了一个暂且可行的代理方案;配置是成功了但是还是未能完成升级,最后只好手动进行了一次升级结果最后还是翻车了……不过在此过程中还是学到了很多,因此记录如下。
Chevereto 升级之痛
在 【NAS】搭建 Chevereto 图床 & Typora 上传指南 中我介绍了自己折腾群晖 Chevereto 的过程,顺利上车,当时的版本好像是 1.2.8,使用一段时间后提示需要更新,最新版本是 1.2.0。然而,大概是由于网络的原因,始终无法更新成功,每次打开 Chevereto 看到鲜红的提示总是很难受。
因此,在多次尝试未果之后,今天突然找到了为 Synology 配置代理的方法,然而……
Synology 配置代理
今天突然看到 * | 群晖nas和虚拟机共享*网络教程 这个视频,突然发现在 Synology 中可以配置整体的代理,只需要连接本地其他机器上的代理程序即可。事实上,我在 【proxy】命令行 & 虚拟机代理设置方案汇总 这篇文章中即有提到,但居然一直没想到。
配置很简单,在 SSH 环境下也成功 curl google.com
,然而,当我点开 Chevereto 之后才发现并没有那么简单……试了好多次仍然无法更新成功……
问题&解决方式
【问题】上述的代理配置是没问题的,然而也有一个副作用——群晖提供的那个网址 ip.synology.me
会识别为代理的地址(可以通过 nslookup id.synology.me
查看解析结果,要查看本机地址可以用 curl myip.ipip.net
)。
一个很笨拙的解决方案是手动在本地计算机中配置 hosts:macOS 下 sudo vim /etc/hosts
即可,在最后面添加你的公网 IP 地址和对应的网址即可。
然而,这并无法解决 synology.me 地址解析错误的问题,因此只是权宜之计。
然而,在某些场景下,可以临时采用这一方案访问外网——例如在下载 Docker Image 的时候。
更好的策略,可能是直接为路由器配置代理?不过目前在学校环境下不方便操作。
考虑到其他的一些网络服务的需要,我会在平时将这一网络代理关闭,仅在需要时打开生使用。
手动更新 Chevereto
于是折腾了半天又回到起点,心有不甘于是想到手动去更新的方法,之前一直害怕哪里出错没有尝试过,原本以为一次成功结果还是出了 BUG……
事实上 Chevereto 的文档中有手动更新的方法 更新指南,只不过只针对商业版,并没有免费的 1.几的版本;像我这种小透明自然用的是免费版,只好自己折腾……
- 首先从 https://ch.cndrew.cn/cn/Setup/Update%20guide/ 下载最新版本(目前是 1.3.0);
- 在开始之前请务必对于原本的文件夹进行好备份;
接下来就是去比较下载到的安装文件和你的环境文件夹,源文件夹如下:
- 经过细致比较,我发现所有上传的文件会基于时间分类存放在
images
目录下,而原本的 images 文件夹为空; - 比较明显的配置文件,我找到的一个是
app/settings.php
,可以看到在原始目录下并没有这个文件; - 其他的文件夹中内容大同小异,我尝试的时候没有用到;
于是,最终我采取的方案是,将 app
文件夹下的内容复制替换过去,然后把根目录下的那些零散文件也替换过去,而其他文件夹未动。
接下来重新进入 Chevereto 网址,提示需要重新安装,轻轻点一下之后一切正常,我还庆幸自己的机智……
然而,表面的正常之下,我发现上传和配置等功能完全正常,但是无法查看图片,报 PHP 500 错误,然而我上网搜了下这个错误代码几乎没什么信息量……
尝试了修改文件所有者和权限,然而并没有任何作用……大概是因为不能直接替换文件,因为依赖到外部的 PHP 和 MariaBD?留下了不学无术的泪水……
MariaDB 10 远程访问
为了测试数据库能够使用,我还在 Mac 上下载了 Navicat for MySQL……然后发现 MariaDB 5 好像比较老,又去下载了 MariaDB 10……
默认情况下,Maria 是禁止外网访问的,参考了 群晖MariaDB添加远程访问功能 修改配置,摘录如下
# ssh到Synology
sudo -i # 提权
cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin #访问目录
./mysql -u root -p # 这里有个坑,root密码和MariaDB密码是不同的,需要在套件中心各自设置
use mysql # 选择数据库
update user set host = '192.168.1.%' where user = 'root'; #可以直接使用%,也可以用192.168.1.%来缩小范围
select host, user from user; # 确认,也可以使用select User,host from mysql.user;
FLUSH PRIVILEGES; # 刷新权限
另外,允许远程访问 Synology NAS 上的 MariaDB 一文介绍地比较详细,可参看。
尝试 Docker 安装 Chevereto
完全按照上面来的,然而进入链接之后报错
Aw, snap! Internal Server Error [debug @ `error_log`] - https://v3-docs.chevereto.com/setup/debug.html
docker 文件夹下的 Chevereto 文件夹所有人和权限设置确认过是 admin 和 777,数据库也确认可以正常链接,但是无法解决该问题。最终查询无果后放弃……
重新安装 Chevereto
于是最后的最后,我又重新安装了一次 Chevereto……这个过程就非常简单了,随便在网上找一篇如 群晖搭建 chevereto 图床 即可,和之前那一个不同之处在于,这次用了更新的 MariaDB 10。
其他相关的配置,参考之前那一篇 【NAS】搭建 Chevereto 图床 & Typora 上传指南。