之前一直被群暉科學瀏覽的問題所困擾,也因此不能升級 Chevereto 一個紅色⚠️看着很難受,今天終於在網上找到了一個暫且可行的代理方案;配置是成功了但是還是未能完成升級,最后只好手動進行了一次升級結果最后還是翻車了……不過在此過程中還是學到了很多,因此記錄如下。
Chevereto 升級之痛
在 【NAS】搭建 Chevereto 圖床 & Typora 上傳指南 中我介紹了自己折騰群暉 Chevereto 的過程,順利上車,當時的版本好像是 1.2.8,使用一段時間后提示需要更新,最新版本是 1.2.0。然而,大概是由於網絡的原因,始終無法更新成功,每次打開 Chevereto 看到鮮紅的提示總是很難受。
因此,在多次嘗試未果之后,今天突然找到了為 Synology 配置代理的方法,然而……
Synology 配置代理
今天突然看到 FQ | 群暉nas和虛擬機共享FQ網絡教程 這個視頻,突然發現在 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 上傳指南。