把自架相簿從Piwigo換成Lychee,順便分享一下我用這兩款的心得

由於有儲存相片的需求,加上以前一直很常用的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,但我有我的考量:

  1. 我個人比較偏好「能用系統本身附帶的版本就用它的版本」,畢竟系統搭配這些第三方來源的軟體能否長期保持穩定運作,誰也無法保證。
  2. PHP 7.4在11/28之後就走入歷史,之後若有什麼漏洞(特別是安全漏洞),無法保證能夠得到修復(至少不會得到PHP官方的修復)。
  3. 下一版的Piwigo貌似沒有支援PHP 8.1。

基於以上,我最終還是決定棄用Piwigo,改用接下來要分享的Lychee了。


Lychee

Lychee翻譯成中文就是「荔枝」,它也是一款圖床CMS。其實我早在之前就有嘗試換用它了,但是for some reason,怎樣就是跑不起來。直到最近我翻了官方的文件,才發現我之前看的安裝步驟是錯的!(難怪怎樣都會出錯)另外照著上面的正確步驟走,終於讓Lychee順利運作了。

這裡分享一下我自己實際成功安裝的流程,如有異同,請以官方文件說明為主
註:

  • 以下流程我使用的系統是Ubuntu 22.04,Debian基本上可以無縫銜接
  • 步驟1~5都需要使用SSH登入系統操作;進行前請確定你的虛擬主機環境可使用SSH登入
  1. 安裝Nginx(Apache也可以)、PHP、MariaDB、Redis、Exiftool、ffmpeg(如果打算上傳影片的話就得裝)、git,以及composer(後面安裝步驟會用到)
  2. 以www-data執行以下指令
    git clone https://www.github.com/LycheeOrg/Lychee /var/www/html/Lychee
    後面的/var/www/html/Lychee是網站本體在系統的存放位置,可以自行修改成你想要的位置
  3. 切換到/var/www/html/Lychee目錄(前面如果用的是不同位置,就切換到所指定的位置去),然後以www-data執行
    composer install --no-dev --prefer-dist
    等它跑完就可以了
    (這裡如果是從官方下載release壓縮檔的話,最後會出現錯誤訊息,但不影響後面安裝與運作;若按照這裡的步驟使用git下載是不會有錯誤訊息出現的)
  4. 進入MariaDB,設定Lychee使用的帳號密碼與資料庫(這裡推薦使用phpmyadmin操作)並記下備用
  5. 貼上、修改並啟用Nginx的網站設定檔,官方文件有範例
  6. 打開新架好的Lychee網站,首先它會檢查執行環境,然後讓你設定一些參數(都位在.env這個檔案中,改好後記得先按save才按下一步):
    1. MariaDB資料庫、帳號密碼
    2. dist與uploads目錄(可以自行設定成其他位置)
    3. 電子郵件設定(有smtp與sendmail兩種)
    4. 時區:預設為巴黎,可自行修改(台北時間就填Asia/Taipei),可用參數
  7. 最後會提示安裝成功,將上面的網址改成你的Lychee網站使用的網址,就會來到首頁了
  8. 然後它會要你設定登入帳號與密碼,這是預設的管理帳號
  9. 把網站語言改成中文
    1. 登入後,點選左上角的齒輪,點選Settings
    2. 找到Change Lychee language for項目,點選下拉選單並選擇繁體中文/簡體中文
    3. 點選Change Language,然後介面就會變成中文了

到這裡就完成Lychee的安裝了

我會選用Lychee,主要是因為以下幾點考量:

  1. 支援PHP 8.1:前面筆者有提過,Piwigo不支援PHP 8.1。
  2. 介面相比Piwigo而言簡單許多,而且多了動畫效果。
  3. 可以自行指定上傳相片的儲存位置,特別是對於空間不足的主機而言特別有用(Piwigo無法自行指定位置)。

附記:如何更新Lychee、用Docker安裝Lychee

這裡我使用git來更新:

  • 以SSH登入,並進入Lychee目錄後,執行這三個指令
    git pull
    composer install --no-dev --prefer-dist
    php artisan migrate
  • 以上指令也可以簡化成只要執行git pull這一條即可,但需要先將Lychee目錄中的.git/hook/post-merge設定執行權限
    設定之後,未來就可以只執行git pull來更新了

另外,Lychee官方有提供Docker的安裝方式,如果你想在NAS上安裝Lychee,這個方法就可行了
詳細內容可參考官方文件的說明


最後整理一下Piwigo與Lychee的比較(依照筆者個人觀點整理)

比較方面 Lychee Piwigo
可完全正常運作的PHP版本 8.x 7.4(2022年11月底後停止更新)
具備App
可透過外掛擴充功能
可用Docker安裝
可批次下載相簿 需要安裝外掛
非管理員權限使用者可上傳照片 只要權限有開放就可以 需要安裝Community外掛
可指定上傳相片儲存目錄
支援子相簿

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料