最後更新時間: 2018/9/1
在前一篇《使用 OpenShift 雲端主機建置自有網域的 WordPress 部落格》的文章中,提到 WordPress 無須變更程式碼就可以輕鬆使用,所以當 OpenShift 在你建置 WordPress 網站的過程中提示你要不要變更應用程式的程式碼,阿力獅就把這個步驟略過了。
以 WordPress 的擴充性來說,的確無須變更程式碼就可以建置出大多數的功能,但是還是有極少數的外掛需要你先修改 WordPress 的程式碼後,才能啟用並正常執行。加上 WordPress 可以透過安裝外掛增加新功能,有時候外掛安裝一多,會發生不相容的狀況,嚴重時會連網站都進不去;要是發生了安裝新外掛產生不相容、進不了網站、甚至進不了 WordPress 後台的狀況,一般情況下會需要以 FTP 連線存取 WordPress 網站目錄,直接刪除不相容的外掛,讓網站恢復正常。
正因為如此,WordPress 在進階管理維護上的確有需要取得 FTP 存取權限,而 OpenShift 需要透過幾個步驟才有辦法取得 SFTP 連線權限,接下來阿力獅就引導你一步步取得 OpenShift 上的 SFTP 權限。
需要安裝的軟體 (必要條件)
除了進行 SFTP 傳輸檔案時需要的 FTP 用戶端軟體外,SFTP 在傳輸過程中採用 SSH 通訊協定,會需要使用你自行建立的公開金鑰 (Public Key) 及私密金鑰 (Private Key),所以會需要安裝能為你產生這兩組金鑰的軟體。
針對這兩個功能的軟體,阿力獅個人推薦如下。
- FTP 用戶端軟體: FileZilla
- 金鑰產生器: PuTTYgen,OpenShift 在線上說明裡也是以 PuTTYgen 進行說明。
PuTTYgen 僅提供 Windows 及 Unix 版本,加上阿力獅從沒擁有過 Apple 的 Mac 電腦,所以無法提供 Mac OS X 的相關軟體連結,沒用過的我不想隨意推薦。阿力獅相信在其他作業統一定也有類似的工具軟體,產生金鑰的軟體要支援 SSH-2 RSA 2048 位元的演算法,FTP 軟體則是要支援 SFTP 協定。
Windows 使用者請依照以下指示取得軟體並完成安裝。
應用程式資訊 | |
---|---|
應用程式名稱 | FileZilla Client |
應用程式性質 | 免費軟體 |
支援平台 | Windows Mac OS X Linux |
介面語言 | 內建多國語言介面,包含繁體中文及簡體中文,應用程式介面語言可在軟體設定內變更。 |
應用程式官方網站 | FlieZilla |
下載頁面 | https://filezilla-project.org/download.php?show_all=1 請依照你的作業系統,在下載頁面選擇合適的版本進行下載。 |
應用程式資訊 | |
---|---|
應用程式名稱 | PuTTYgen |
應用程式性質 | 免費軟體 |
支援平台 | Windows Unix |
介面語言 | 僅提供英文界面 |
應用程式官方網站 | PuTTY 官方網站 |
下載頁面 | http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 請在下載頁面下載 PuTTYgen。 |
透過 PuTTYgen 建立 SSH RSA 金鑰
要啟用你建立在 OpenShift 上的應用程式 (Application) 的 SSH 存取權限,你必須先透過 PuTTYgen 產生 SSH RSA 公開金鑰及私密金鑰,請透過以下方式取得這兩組金鑰。
- 執行 PuTTYgen,選取 [SSH-2 RSA],並設定金鑰長度為 2048 位元 (bit),然後按一下 [Generate] (產生)。
- 請在下圖標示區域中不斷移動滑鼠游標,PuTTYgen 會以滑鼠游標移動的座標為其中一項參數,進而產生出金鑰。
- 請注意,請在指定區域內不斷移動滑鼠游標至金鑰產生為止;在演算金鑰的過程中一旦停止移動滑鼠游標就會停止計算,直到你再次移動滑鼠游標才會繼續計算。
- 金鑰產生完畢後,阿力獅建議輸入 [Key comments] (金鑰註解) 以及 [Key Passphrase] (金鑰密碼)。無論你有沒有輸入 [Key comments] 及 [Key Passphrase],都必須按一下 [Save public key] (儲存公開金鑰) 以及 [Save private key] (儲存私密金鑰),將公開金鑰及私密金鑰保存起來。
- 為金鑰加上 [Key comments],將來比較容易確認這組金鑰的用途。
- 加上 [Key Passphrase] 可以讓 SFTP 的存取過程多一道密碼驗證機制,對於存取資料更加安全。
- 將公開金鑰複製起來備用。複製完畢後,便可以關閉 PuTTYgen。
將 SSH RSA 金鑰儲存至你的 OpenShift 帳號
公開金鑰及私密金鑰產生後,就可以將公開金鑰儲存至你的 OpenShift 帳號內,按照以下步驟就可以完成。
- 登入 OpenShift 後,從 [My Account] 進入 [OPENSHIFT WEB CONSOLE] 的 [Applications] 標籤頁。
- [Applications] 標籤頁是進入 [OPENSHIFT WEB CONSOLE] 後的預設起始頁面。
- 在 [Applications] 標籤頁中,按一下 [Set an SSH key] (設定 SSH 金鑰) 連結。
- 在 [Key name] (金鑰名稱) 欄位為這組公開金鑰取個好記的名稱,並在 [Paste the contents of your public key file] (貼上公開金鑰內容) 欄位裡貼上之前複製的公開金鑰內容,然後按一下 [Create] (建立)。
- 在 OpenShift 成功建立公開金鑰內容後,會在 [Settings] (設定) 標籤頁中看到這組公開金鑰。
- 公開金鑰只能新增或刪除,無法修改。
- 請注意,雖然同一個 OpenShift 帳號可以儲存多組公開金鑰,但你用同一個 OpenShift 帳號建立多個應用程式 (例如你同時建立了 WordPress 及 Moodle 網站),也僅需要設定一組公開金鑰就可以進行SSH 存取及 SFTP 連線。
啟用 OpenShift 應用程式的 SSH 存取權限
將公開金鑰儲存至 OpenShift 帳號後,就可以設定並啟用 OpenShift 應用程式的 SSH 存取權限,接下來請依照以下步驟一步步為 OpenShift 上的 WordPress 啟用 SSH 存取權限。請注意 ,你建立的其他應用程式也需要啟用 SSH 存取權限的話,以下步驟是一樣的。
- 回到 [Applications] 標籤頁,按一下你想要設定 SFTP 存取的應用程式,進入此應用程式的設定頁面。延續上次的 WordPress 網站建置教學,就是你安裝的 WordPress。
- 在 [Remote Access] 下方按一下 [Want to log in to your application?] (想要登入至應用程式嗎?) 連結,就會出現一組如下圖般的字串,這組字串包含了等會在進行 SFTP 連線時會需要用到的主機資訊及使用者名稱。
- 有了步驟 2 所取得的字串,我們就可以透過它所提供的資訊,設定 FileZilla Client 進行 SFTP 連線,以存取你所建立的 WordPress 網站。
SFTP 使用者與 SFTP 主機由 @ 符號區隔,@ 符號的意義是 at,也就是在「特定 SFTP 使用者在特定 SFTP 主機上」的意思。
使用 FileZilla 透過 SFTP 連線至 OpenShift 上的應用程式 (以 WordPress 為例)
使用 FileZilla 存取你在 OpenShift 上建置的 WordPress 非常簡單,主要靠的就是你在 PuTTYgen 產生的私密金鑰以及取得 SSH 存取權限所取得的字串資料。私密金鑰用來跟你已經在 OpenShift 上建立的公開金鑰進行比對驗證,而 SSH 字串則提供了 SFTP 連線時所需的主機資訊及使用者名稱。
接下來請依照以下步驟以 SFTP 方式連線存取 WordPress 網站目錄。
在 FileZilla 內儲存私密金鑰
之前以 PuTTYgen 產生的私密金鑰 (Private Key) 有儲存起來嗎?現在我們要儲存在 FileZilla 裡,讓它在連線時可以跟你設定的公開金鑰進行比對驗證。
- 在 FlieZilla 中,按一下 [編輯] 選單中的 [設定]。
- 在 [設定] 視窗中按一下 [SFTP],然後在 [公開金鑰認證] 頁面中,按一下 [加入金鑰檔案]。
- 瀏覽至儲存私密金鑰 (不是公開金鑰) 的位置,選取私密金鑰的檔案後按一下 [開啟舊檔]。
- 按一下 [確認],你剛剛選取的私密金鑰就加入 FlieZilla 中了。
假如你用同一個 OpenShift 帳號建置了其他 OpenShift 應用程式,不必重複以上設定步驟,只要為個別 OpenShift 應用程式分別完成以下設定即可。請注意,同一個 OpenShift 帳號所建置出的不同應用程式,SSH 字串都是各自獨立的,請為每一個 OpenShift 應用程式取得其專屬的 SSH 字串。
設定 FileZilla 使用 SFTP 連線存取 OpenShift 的應用程式目錄
學東西當然要學應用範圍最廣的,只要你在 OpenShift 上建立的應用程式,都可以透過下面介紹的 SFTP 設定方式連線存取,不是只能存取 WordPress 網站目錄。
- 在 FileZilla 中,按一下 [檔案] 選單中的 [站台管理員]。
- 在 [站台管理員] 視窗中,按一下 [新增站台] 並取好站台名稱後,在 [一般設定] 標籤頁依序填入下述必要的資料,然後按一下 [連線]。
- 主機: 請填入之前所取得的 SSH 字串中的主機位置。
- 協定: 選取 [SFTP – SSH File Transfer Protocol]。
- 登入方式: 選取 [交談式]。
- 使用者: 請填入之前所取得的 SSH 字串中的使用者。
- 在 [未知的主機金鑰] 對話方塊中,核取 [總是信任這台主機,並且加入其主機金鑰到快取裡] 後按一下 [確認]。
- 假如你在 PuTTYgen 產生金鑰時有加上 [Key Passphrase],進行 SFTP 連線時會向你詢問你當初設定的密碼;假如你在產生金鑰時並未進行設定,FileZilla 會略過這個步驟,直接進行連線,但連線安全性較低。
- [記憶密碼直到 FlieZilla 關閉] 選項預設是勾選的,請不要取消勾選,不然進行任何操作都會需要輸入密碼。
- 設定沒出錯且密碼正確的話,就能以 SFTP 方式連線至 OpenShift 主機上的應用程式根目錄。
OpenShift 主機上的 WordPress 目錄到底在哪裡
當你以支援 SFTP 協定的軟體 (例如 FileZilla) 連線至 OpenShift 主機上的 WordPress 目錄後,要注意那只是主機存放 WordPress 這個應用程式所有相關檔案的根目錄,而非 WordPress 主程式的根目錄。假如你對 WordPress 的主程式內的檔案有需要變更及修改 (例如自己修改佈景主題檔案以符合自身需求),你必須找到應用程式根目錄下真正存放 WordPress 主程式的目錄。
請在根目錄下依序點選 app-root→data→current,就能進入存放 WordPress 主程式的目錄。
至於 WordPress 主程式目錄內的結構,例如佈景主題或外掛程式存放的位置,你可以在 Google 或在 WordPress.org 上查詢相關資料。
在 OpenShift 主機上建立的應用程式,使用 SFTP 存取應用程式根目錄的設定均相同,但是在根目錄中何處存放應用程式的主程式,則需要另外查詢。以 Moodle 及 Drupal 為例,前者存放主程式的目錄與 WordPress 相同,而後者就不是同一個路徑位置。
結語
當你會需要直接修改 WordPress 主程式目錄下的相關檔案時,想必對 WordPress 已經十分熟悉,但是 OpenShift 主機並不像一般主機商提供 FTP 方式讓你存取,而必須以連線安全性較高的 SFTP 進行連線,所以很多人找不到存取 WordPress 主程式目錄的方式。
看完這篇文章並動手操作設定完畢後,想必你已經可以為你在 OpenShift 主機上的 WordPress 進行更進階的修改;OpenShift 是個不錯的免費主機選擇,但除了服務界面都是英文之外,說明文件也都是以英文撰寫 (無其他語言版本);在資訊圈裡要取得進階資訊,英文的閱讀能力其實是不可或缺的。假如還有問題,也歡迎大家在文章下方留言,阿力獅會盡力回答。