Photo by Saffu on Unsplash
使用子網域來儲存 WordPress 媒體庫圖片 (Media Library),在 HTTPS 時代之前,是為了增加網頁加載的速度;現在網頁技術一直進步,這麼做,是為了方便管理媒體庫圖片,更重要的是可以縮短備份的時間,減低主機 CPU 負載。
之前我有寫過類是的文章,事隔已久,外掛已更新到更好用,已經不需要再到 MySQL 更改圖片的上傳路徑,外掛啟動後,將子網域路徑輸入就完成了,連同之前上傳的圖片,一併幫你更改好。
本次的說明,只可以在同一個主機進行,不同的主機使用子網域儲存 WordPress Media,又是不同的方法,不在本次的說明中。
注意:這一篇文章是 2018 年寫的,當時的環境與現在 2023 年的時空背景不太同了。簡單的說,現在的觀念與主機技術都大幅的提升。
建議使用高級的主機 (如 Kinsta),處理主機負載和網站備份的問題。
另外,如果你真想要分離媒體庫,建議安裝外掛,分離到 AWS S3 或 Google Cloud Storage 雲端空間。
備份網站和數據庫
在改變 WordPress 媒體庫路徑之前,請先備份網站,若有執行出錯時,還可以還原網站;可利用 UpdraftPlus Plugin 先做一次備份,或先導出資料庫。
創建一個子網域
虛擬主機可以利用 cPanel 來創建,或使用 DNS 管理來創建一個子網域。例如:imgur.yungke.me,A 紀錄指向同一個主機 IP。
注意:最好子網域也安裝 HTTPS 加密證書,避免主網域造成混合內容。
WordPress 中更改變圖片上傳的位置
WordPress 3.5 版本之後,默認媒體存儲位置的設置已被刪除,為了方便我們更改圖片上傳到子網域的路徑,需要安裝一個輕量 WP Original Media Path 外掛,來恢復此項功能。
WP Original Media Path 外掛
https://wordpress.org/plugins/wp-original-media-path/
啟用後,輸入以下詳細配置,如圖:
上傳的檔案將儲存於此目錄:完整的 URL 文件路徑,/data/wwwroot/imgur.yungke.me/images
(這是您的子域名路徑,請更改域名為您的子域名)
完整的檔案網址:請填入子域名的網址,如 https://imgur.yungke.me/images
(請更改域名為您的子域名)
儲存配置,步驟到這邊就可以實現圖片與主網站分開存放,往後您在媒體庫上傳圖片時,圖片真實存放在子網域的 images 文件夾內。
移動 uploads 資料夾
將現在運行中的網站圖片移動到新的 (子網域) 圖片文件夾 images 內,利用 FileZilla 的 FTP 軟體,將 /wp-content/uploads/ 中的所有文件移動到子網域 /images 內,移動過程中請保持目錄結構。
步驟到此,就已經完成使用子網域儲存 WordPress Media 媒體庫,不管是已經使用很久的網站,或剛新建的網站,整個 WordPress 圖片路徑都已經更換成子網域了,不需要再動到數據庫打入代碼,更換圖片路徑。
網站的備份
已經將很肥大的 uploads 資料夾搬移走後,在做網站備份時,就不須再備份 uploads,以 UpdraftPlus 外掛為例:
UpdraftPlus 外掛
在設置頁面將「備份 uploads」的勾勾取消,如圖:
保存配置後,下次 UpdraftPlus 執行網站備份時,就不會備份 uploads 資料夾。
如果是 VPS 主機,可以單獨備份子網域 uploads 資料夾到另一台備份主機裡,可使用 rsync 指令:
rsync -avu --progress --delete /data/wwwroot/imgur.yungke.me/ root@107.172.xx.xxx:/data/wwwroot/imgur.yungke.me/
備份主機 SSH 端口如果有變更,指另如下:
rsync -avu -e "ssh -p 12345" --progress --delete /data/wwwroot/imgur.yungke.me/ root@107.172.xx.xxx:/data/wwwroot/imgur.yungke.me/
其他問題
-
為何要用子網域儲存 WordPress Media 媒體庫?
教學網站或旅遊、美食這一類的部落格網站,時間久了,WordPress 媒體庫圖片會越來越多,達到 10G ~ 20G 容量都有可能,把圖片分離出來,網站備份時可以大幅降低主機負載,以後遷移主機,也會好處理。
-
精選圖片可以顯示嗎?
精選圖片一樣可以顯示,在 Flatsome 和 CSSIgniter 主題佈景測試過,不會有問題,可以參考我的 DEMO 網站。
-
圖片有需要做 301 重定向 (redirect)?
我處理過兩個上萬張圖片的網站,並沒有做 301 重定向 (redirect),半年後觀察網站搜尋,排名並沒有影響,使用圖片搜尋方式,也沒有影響;我不是 SEO 專家,如果您對這一方面有疑慮,可以詢問 SEO 這一方面的專家。
WordPress Media 媒體庫教學系列文章:
1. WP Offload S3 Lite 外掛來儲存 WordPress 媒體庫
2. WordPress + Chevereto 圖床軟體來管理媒體庫
3. 如何優化 WordPress 媒體庫圖片
2019/07/25 補充:
有讀者跟我反應,依照上述的教學,媒體庫的圖片無法顯示?
這個外掛有個限制,主網域和子網域要在同一台主機裡才行。
另外,Store uploads in this folder 的設置路徑是你的子網域的完整路徑。
有的共享主機會有防止跨站攻擊的安全防護,請向託管商查明,如有這個保護,就無法使用子網域儲存圖片的方法。
我重新建置一個 DEMO 網站,可以參考,有任何問題歡迎一起研究:
http://hi.yungke.me/
發佈留言