由於有儲存相片的需求,加上以前一直很常用的Google相簿已經取消了免費高畫質無限儲存(變成說只要往Google存相片就會佔用儲存空間配額),於是就有了另尋他處存放相片的打算。正好筆者為了架設Nextcloud網路硬碟而給網站主機配了專屬的儲存空間,用它來存放相簿上傳的照片綽綽有餘。於是我就嘗試自己架設圖床來放相片了。
我用過的圖床網站軟體除了本文的Piwigo與Lychee以外,還有ZenPhoto這一款。
下面我就分享一下我個人使用前兩款軟體的心得(ZenPhoto因為我並沒有用很久,所以就不納入了)。
Piwigo(已不再使用)
這是我用的相對較久的圖床網站軟體,我當初會看上它是因為它有手機的App可以用,方便讓我在手機上直接檢視與整理上面的相片。
除此之外,它也有提供很多外掛程式讓使用者下載安裝,增加它的可玩性。我就有安裝其中的Batch Download、Community這兩個外掛,分別用於批次下載相片,以及允許一般使用者在前台上傳相片。
說到允許一般使用者在前台上傳相片,這是因為Piwigo預設只允許有管理員權限的帳號進入後台上傳相片,一般使用者登入後只能在前台瀏覽,且無法上傳相片。如果這個圖床網站是自用的話(就是會上傳相片的人只有自己,其他人最多就上來瀏覽),這其實沒什麼;但如果說今天要讓自己的親朋好友也能放自己的相片上去就有大問題了(這是我個人覺得的第一個缺點)。因為管理員權限除了可以修改自己建的相簿的相片以外,別人的相簿也是可以改的。這樣子就有可能會造成把別人的相片/相簿刪除,或者放些奇奇怪怪的相片等狀況(不論是故意還是過失)。總之我個人認為這算是某種安全漏洞。
既然一般使用者權限只到自己的相簿,那就只要設法讓他們可以直接在前台上傳相片就行了。辦法也很簡單,只要安裝並啟用Community這個外掛,就可以了。然後再安裝Upload1menu這一個外掛,就可以讓上傳相片的選單項目出現在顯眼處。
第二個缺點(這一點是我最終決定棄用Piwigo的關鍵原因):它能搭配的PHP版本只能到7.4或8.0(7.4下所有功能都能正常運作;8.0則會導致外掛出現錯誤訊息,網站本體正常),到8.1的話就會一直出現錯誤訊息。結果好死不死,我的網站主機系統使用的Ubuntu 22.04 LTS,搭載的PHP版本就是8.1。雖說我也可以在系統上安裝PPA,使其能夠直接安裝PHP 7.4來跑Piwigo,但我有我的考量:
- 我個人比較偏好「能用系統本身附帶的版本就用它的版本」,畢竟系統搭配這些第三方來源的軟體能否長期保持穩定運作,誰也無法保證。
- PHP 7.4在11/28之後就走入歷史,之後若有什麼漏洞(特別是安全漏洞),無法保證能夠得到修復(至少不會得到PHP官方的修復)。
下一版的Piwigo貌似沒有支援PHP 8.1(現在的Piwigo 14已經支援PHP8.2與8.3)。- 搭配Cloudflare運作時會有圖片無法載入的問題(手機App上,網頁版不確定);Lychee頂多稍微慢一點,都可以載入。
基於以上,我最終還是決定棄用Piwigo,改用接下來要分享的Lychee了。
Lychee
Lychee翻譯成中文就是「荔枝」,它也是一款圖床CMS。其實我早在之前就有嘗試換用它了,但是for some reason,怎樣就是跑不起來。直到最近我翻了官方的文件,才發現我之前看的安裝步驟是錯的!(難怪怎樣都會出錯)另外照著上面的正確步驟走,終於讓Lychee順利運作了。
這裡分享一下我自己實際成功安裝的流程(新的),如有異同,請以官方文件說明為主
註:
- 以下流程我使用的系統是Ubuntu 22.04,Debian基本上可以無縫銜接
- 步驟1~5都需要使用SSH登入系統操作;進行前請確定你的虛擬主機環境可使用SSH登入
- 安裝Nginx(Apache也可以)、PHP、MariaDB、Redis、Exiftool、ffmpeg(如果打算上傳影片的話就得裝)
- 在Lychee官方Github頁面的Release那裏下載最新版的壓縮檔,然後解壓縮到網站根目錄
- 進入MariaDB,設定Lychee使用的帳號密碼與資料庫(這裡推薦使用phpmyadmin操作)並記下備用
- 貼上、修改並啟用Nginx的網站設定檔,官方文件有範例
- 打開新架好的Lychee網站,首先它會檢查執行環境,然後讓你設定一些參數(都位在.env這個檔案中,改好後記得先按save才按下一步):
- MariaDB資料庫、帳號密碼
- dist與uploads目錄(可以自行設定成其他位置)
- 電子郵件設定(有smtp與sendmail兩種)
- 時區:可自行修改成離你最近的位置(例如台北時間,就填Asia/Taipei),可用參數
- 最後會提示安裝成功,將上面的網址改成你的Lychee網站使用的網址,就會來到首頁了
- 然後它會要你設定登入帳號與密碼,這是預設的管理帳號
- 把網站語言改成中文
- 登入後,點選左上角的齒輪,點選Settings
- 找到Change Lychee language for項目,點選下拉選單並選擇繁體中文/簡體中文
- 點選Change Language,然後介面就會變成中文了
到這裡就完成Lychee的安裝了
我會選用Lychee,主要是因為以下幾點考量:
- 支援PHP 8.1:前面筆者有提過,Piwigo不支援PHP 8.1。
- 介面相比Piwigo而言簡單許多,而且多了動畫效果。
- 可以自行指定上傳相片的儲存位置,特別是對於空間不足的主機而言特別有用
(Piwigo無法自行指定位置)
如果條件允許,其實可以利用bind mount的方式將儲存位置改到其他空間較大的位置,詳細教學 - 可以搭配Cloudflare運作(不會有圖片無法載入的狀況,除非儲存位置無法讀取)
附記:如何更新Lychee、用Docker安裝Lychee
步驟大概是這些:
- 到Lychee官方Github下載最新版的Release,下載並解壓縮
(如果你有使用自訂CSS或JS內容,記得要先備份public/dist下的user.css與custom.js這兩個檔案) - 最後透過SSH登入伺服器,在Lychee目錄下執行php artisan migrate即可
由於實際執行起來有點繁瑣,於是我就乾脆用shell script寫了一個指令稿,將所有的步驟囊括進去,執行一次就完成更新。
再搭配systemd的timer(或cron)就可以實現完全自動化了。
另外,Lychee官方有提供Docker的安裝方式,如果你想在NAS上安裝Lychee,這個方法就可行了
詳細內容可參考官方文件的說明。
最後整理一下Piwigo與Lychee的比較(依照筆者個人觀點整理)
比較方面 | Lychee | Piwigo |
可完全正常運作的PHP版本 | 8.x | 7.4(2022年11月底後停止更新) |
具備App | 無 | 有 |
可透過外掛擴充功能 | 否 | 是 |
可用Docker安裝 | 是 | |
可批次下載相簿 | 是 | 需要安裝外掛 |
非管理員權限使用者可上傳照片 | 只要權限有開放就可以 | 需要安裝Community外掛 |
可指定上傳相片儲存目錄 | 是 | 否 |
支援子相簿 | 是 |
Lychee搭配Cloudflare食用時的注意事項
- Cloudflare端務必要關閉”Rocket Loader”這個功能,否則瀏覽相簿時會出現問題。
Hi just wanted to give you a quick heads up and let you know a few of the pictures aren’t loading correctly. I’m not sure why but I think its a linking issue. I’ve tried it in two different internet browsers and both show the same results.
What’s Going down i’m new too this, I stumbloed upon thks I have discoverd It
absolutely useful and it haas aided me out loads.
I hope too contribute & aid other customers like its helped me.
Great job.
Do youu mknd if I quote a couple of your posts as long as I provide credut
and ources back to your website? My blog site
iis in thee exacct samme niche as yors and my users
would really benefit from a llot oof tthe information you rovide here.
Please let mme knpw iif this okay wuth you.Appreciate it!
Hi there too all, since I am realloy eager oof reading thiss webpage’s posst tto bbe uppdated daily.
It consists of pleaeant material.
Keep on working, greqt job!
I am realy impressed together with yourr writting sjills aas welll as with thee
structure inn your weblog. Is that tbis a
pad theme orr did youu modxify iit yourself? Anyway keep uup the nice qhality writing, itt is
uncommon too peer a nice blog like this oone these
days..