Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

使用 Webinoly 時透過 GitHub 更新外掛或佈景的解決方法

使用 Webinoly 建立網站時,會自動建立 www-data:www-data 作為網站資料夾的擁有者。然而,當你登入伺服器進行操作時,通常是以個人使用者帳戶進行登入,會產生檔案權限的問題。此時,如果直接使用 sudo,在下載檔案以後,會預設將檔案所有權設為 root:root,需要另外再把所有權指派回去給 www-data:www-data,這對於使用 GitHub 來進行版本控制來說有點麻煩。

今天這篇文章將針對 Webinoly + GitHub 環境的設定做快速的說明。

切換至 www-data 的權限

結論來說,你需要下面這個指令,將操作權限切換為 www-data

sudo -u www-data -s

因為 www-data 並不是一個完整的使用者帳號,所以是無法使用 sudo su www-data 進行切換的。

將 Webinoly 與 GitHub 專案連結的方法

因為進行公司客戶的專案時,建立的大多是私有儲存庫 (Private Repository),必須驗證身份後才能與儲存庫進行連結。下面將針對建立金鑰、與 GitHub 連結再做補充。

建立 SSH 金鑰

為了從 GitHub 提取 (Pull) 更新,需要在主機上建立金鑰。

ssh-keygen -t ed25519 -C "your_email@example.com"

此時 SSH 金鑰會建立在 /var/www/.ssh/ 底下。

接著要將公開金鑰 (Public Key) 新增至 GitHub 當中。

複製 SSH 公開金鑰

cat ~/.ssh/id_ed25519.pub

將顯示出來的公開金鑰 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI… your_email@example.com 複製。

將金鑰新增至 GitHub

  • 前往 GitHub 的 Settings > SSH and GPG Keys。
  • 點擊 New SSH Key。
  • 輸入識別用的金鑰名稱,並將剛才複製的公開金鑰貼上。
  • 點擊 Add SSH Key 完成新增。

回到主機測試連結

回到伺服器,繼續以 www-data 的身份,測試 GitHub 連結。

ssh -T git@github.com

成功連線後,終端機會顯示你的 GitHub 帳號名稱,如下圖所示:

開始 Git 的操作

完成上述步驟後,你就可以在網站目錄中以 www-data 身份,正常執行 Git 的相關指令,進行自製外掛或佈景主題的更新了。

Eric Chuang
Eric Chuang

正職是廣告行銷人員,因為 Google Tag Manager 的關係開始踏入網站製作的領域,進一步把 WordPress 當成 PHP + HTML + CSS + JavaScript 的學習教材。此外,因為工作的關係,曾經用 Automattic 的 Underscores (_s) 替客戶與公司官網進行全客製化佈景主題開發。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

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