又一次博客折騰的記錄-靈魂遷徙

由於博客從2013年建立以來,各種倒騰使得代碼和資料庫比較凌亂,響應速度慢慢地變得很慢。於是琢磨怎麼樣把原來的數據整合到新的WordPress(WP)程序中,過程很坎坷,也遇到了很多問題,有必要整理記錄下來。

首先在測試站做一系列測試,看怎麼樣可以完整地轉移數據。

  1. 將一個全新WordPress程序和資料庫分別複製/導入進test site(複製原來的config.php文件)
  2. 修改test site database的域名信息
  3. All-in-One WP Migration搬遷測試,有100M的限制,可以高級定製選擇不導出主題或者插件,但是資料庫會全部複製
  4. wordpress工具導出文章評論媒體方式導入(限制100M),優點是所有鏈接包括媒體鏈接會自動換為新url,看具體需求,不一定用到
  5. 先不安裝插件的情況下導入,媒體導入不成功
  6. 重來,安裝主題和關鍵插件
  7. 取消置頂文章,禁用wpdiscuz插件
  8. 重新開始,導入新資料庫刪除link和option之外的內容
  9. 安裝測試 OSS upload 和 WPOSS
  10. 從資料庫中導出導入post,comment等表之後,再安裝wpdiscuz,卻不能啟動→因為資料庫option

問題:

  • OSS upload上傳圖片之後,把它禁用,媒體里該圖片的鏈接會自動變回網站目錄/uploads的,可即便在相應路徑把該圖片上傳,後台媒體頁也不顯示圖片/縮略圖……該圖片的媒體頁面也只是顯示鏈接,如果點此鏈接,則顯示圖片,證明圖片是存在的,路徑也沒問題。
  • WPOSS上傳圖片後,也把它禁用,然後這個時候媒體里的鏈接也會自動變回wp本地,把圖片上傳到網站目錄/uploads對應文件夾,後台媒體頁正常顯示……
  • 和OSS有關的插件全部禁止,上傳一個圖片,則圖片上傳到網站目錄/uploads,然後啟用OSS upload,在aliyun oss手動上傳剛才的圖片,路徑正確,博客媒體頁面不顯示;換WPOSS,相同操作,圖片可以顯示。
  • 另外,在測試站把兩個插件都安裝之後,此後再上傳的圖片,上面的問題不存在了……可是問題是之前的圖片還是那樣……
  • 文章插入的圖片基本只是一個img鏈接的話,和顯示一個圖片鏈接一樣正常顯示。而後台媒體庫的縮略圖,媒體頁面,文章中的相冊,封面圖片不能顯示出來。
  1. 把原網站的主題代碼和config代碼copy到測試站,測試媒體/圖床問題。

……

後續的測試整理出來的話可能有一百條吧,全都失敗趕時間去做各種嘗試也就沒再記錄……

分享幾個也許有用的內容,雖然都沒有對本次遇到的問題沒什麼幫助,不過有朋友遇到類似問題也許可以參考著去嘗試:

  • 將WordPress圖片附件從圖床(aliyun oss)搬回本地
  • 阿里雲圖床遷回本地wordpress插件?WordPress 將圖片從圖床搬回本地 show了兩個插件Search & Replace, Add From Server ( aliyun oss的軟體把媒體數據下載到本地 oss-browser.exe 後zip形式打包上傳到wp網站目錄,使用Add From Server確實可以把圖片導入到本地,然而圖片id和以前並不能對應,所以後台媒體頁和相冊等依然不能顯示,另外,導入圖片的過程中如果遇到嚴重問題,後續進程不會繼續。如果能正常工作的話,把圖片上傳到wp目錄,再用這種方式導入倒是不錯的選擇,不過該插件不支持導入文件夾,所以得按文件夾分批操作,如果是按照年月組織媒體上傳形式,操作的文件夾可能會比較多,另外一次導入太多也可能是造成提示wp出錯的原因之一,記得好像有一個帖子里提示不要一次導入太多圖片。那麼,圖片比較多的話,也還是比較糾結……Search & Replace可以替換url鏈接,sql操作也可以,不過好像沒有它操作的徹底,而且預覽模式比較貼心,此外,修改的內容可以選擇導出sql文件或者直接修改sql文件。)

既然圖片問題怎麼都存在的話,不動資料庫的情況使用wp導入器也許是比較好的選擇,畢竟很久以前隨便折騰站點,改代碼、裝插件,早不記得改動了些什麼,也算是有一個契機整頓吧。於是正式做內容遷移。

  1. 重裝一個WordPress到測試站點
  2. 主站數據用後台自帶的服務導出xml文件,需安裝插件
  3. 測試站建立多個賬戶,盡量不操作資料庫,所以沒有選擇導入sql的方式,而是手動建立
  4. 測試站點後台同樣安裝插件後導入xml文件
  5. 安裝插件,這次嚴格控制插件和數量,注意修改媒體文件路徑
  • 圖片延遲載入,社交share,隨機推薦,Widget Logic,垃圾評論保護(WordPress Zero Spam),中文漢字轉換,classic editor,限制登陸可能之後會取消掉。
  • 緩存插件,點贊、打賞、海報,SEO優化……不需要……
  • 關於谷歌字體,functions.php添加了代碼(用微信打開的速度貌似有一點點改善),沒有安裝Disable Google Fonts插件,暫時還沒有朋友反映有問題。
  • 圖片放大用highslide.js,替換原來的simple lightbox插件的功能。
  • wpdiscuz終於也不用了,向速度妥協一定要徹底……所以評論後內容不可修改,評論後回復的郵件通知通過functions.php的內容完成。
  1. 建立子主題
  2. 修改代碼,主要包括:首頁摘要字數,禁用自動生成其他尺寸圖片,關閉文章修訂,加入評論郵件通知功能
  1. 修改子主題css

css代碼中padding:1em 0 ; 上右下左什麼順序來著?……

  1. 測試站代碼和資料庫移入主站,並修改其他設置,包括媒體路徑
  2. 由於媒體中為空白,封面圖片和相冊嘗試多種途徑不能正常顯示,重新添加吧

目前rebuild之後的站點資料庫僅2M,而之前已經達到了12M,單posts表就有4M多。還需要考慮以後怎麼用aliyun oss,一種方式是改用WPOSS插件,需要在測試站點繼續測試開啟插件之後的速度、驗證關閉插件之後確實不會有之前的問題,因為OSS upload挺拖速度的;另一種是url直接插入圖片的內容直接上傳到aliyun oss通過img url顯示進文章,而封面和相冊等圖片上傳到wp本地。

好吧,使用WPOSS上傳會出現錯誤:圖像後期處理失敗,可能是伺服器忙或沒有足夠的資源。請嘗試上傳較小的文件。

後來發現不僅是使用OSS的插件一張圖片都不能上傳,而wp自由媒體服務上傳圖片也會遇到這樣的問題。測試圖片的尺寸都已經調整到了600-900寬度像素之間,而且是橫向圖片尺寸絕對沒有超,wp上傳失敗的,第二次一般可以成功,不然第三次也能成功。但是如果需要上傳的圖片多,每次得重新找上傳失敗的圖片再次上傳,也比較麻煩。

同樣的代碼和資料庫複製到其他域名的目錄和資料庫database中,上傳則一點兒問題都沒有,而該域名下即便是建立一個全新的wp站點,也會有這樣的錯誤提示。玄學!

另外,系統語言為中文,上傳圖片會出現問題。而如果系統語言為英文,上傳上百張圖片做測試沒有遇到問題。乖乖……So you can’t read Chinese? the most beautiful and powerful language on this planet!?

P.S.中文條件下4張圖片以上容易遇到問題,後來functions.php中添加代碼之後出問題概率減小,回頭測試英文條件下可否完全刪掉該代碼。

今天測試中文條件下上傳也沒問題,而和昨天相比,什麼改動也沒有做……目前數據恢復到了昨天的內容,這樣也不需要刪除測試的那些圖片了……

就這樣,遇到挺多詭異的問題,浪費了很多的時間在其中,也沒能解決,甚至不明白為什麼……之後打算手動上傳到aliyun oss,然後通過url的方式插入圖片,就像用那些其他的公共圖床那樣,只不過圖片得一張一張插入。另外,之前的主題其實一直還是比較喜歡的,根據季節更換站點顏色的事情也只做了一半……但是為了保證速度第一,還是選用了和原來主題最接近的wp官方主題,畢竟一些非官方的主題執行效率不如官方主題。暫時,對這個主題還是不太習慣,不過多看看應該會很快習慣的~另外,有一些文章的封面和頁面中的圖片(使用了相冊Gallery),不能正常顯示,之後慢慢修正,已經整理了一部分內容。

郵件訂閱功能暫時還在考慮中,原來的插件太佔用資料庫空間,所以郵件訂閱的朋友請暫時手動查看吧。

作者: 椰林物語

博士,摩托車手。發布內容為:生活、站點、其他。

《又一次博客折騰的記錄-靈魂遷徙》有27個想法

  1. 是不是疫情期間太無聊了 非要找點事情折騰一下hhhhh 十萬塊拿到手了沒~

    1. 之前響應慢,後來發現可能主要是oss upload插件拖慢的。重新折騰之後,不考慮這個插件也還是能快一點點。😄

  2. 我曾經測試過把WP轉成Typecho
    還算成功,然後沒有正常轉移博客
    因為找到了WP挺簡潔的一個主題
    還算得我心

    1. 也嘗試過了,用sql命令直接改資料庫也試過……問題不是資料庫里的記錄鏈接是錯的,而是記錄的時候少了什麼參數……
      不過現在的問題就更奇怪了,壓根不能上傳,建立一個全新的也不行,所以說玄學。

      1. 好像很複雜的樣子呢!!沒那麼複雜吧!!先恢復好網站,然後在後台就可以更新鏈接了!!

        1. 額,你可能沒仔細看內容。
          文章里的單張圖片,即便不做任何的更改,圖床鏈接有效,就是可以顯示的。後台媒體頁、文章插入的gallery以及封面圖片不能顯示。但是編輯的時候可以看到,所以路徑絕對沒有問題……
          都有寫。

  3. 教你一招,正文里要鏈接自己的時候不寫域名,這樣以後換域名的時候就什麼都不用改。
    比如這篇,href里只放「/blog-rebuild-log-on-202005/」。

  4. 後台媒體頁不顯示可能是無解的,就算有,我應該是不知道的。我在多次遷移站點時候也碰到過,只能重新上傳一遍。遷移到aliyun的那次,也不顯示了……我的策略就是忽視它,反正沒什麼人會去看媒體頁面的……

    上傳出現錯誤可能是ali oss設置的防火牆的問題。我也碰到過,反正我都壓縮到1000px的,出現幾率並不很高。

    手動上傳ali oss人肉插入url目測太痛苦了吧。而且不能用手機wp app即時插圖更新文章,目測一點樂趣也沒有了。

    1. 諮詢WPOSS,回復是「防盜鏈需要放行」,可是之前也沒有防盜鏈的設置,後來設置了沒什麼變化……之後對方也沒回復了,不知道是不是與我沒說「謝謝回復」有關係……一看到回復,忘了。
      後台媒體頁不顯示我猜想是和資料庫里的什麼欄位有關係,造成它無法關聯讀取,但是點擊編輯媒體又可以看到圖片,那路徑肯定是對的……主要是插入的相冊也一同不顯示了……它在文章里沒有鏈接,就是中括弧裡面圖片對應的id……
      我也是想著那就重新上傳一遍吧,結果呢,都已經重新在主站布置好了,安裝插件直接無法上傳……而且不用插件上傳本地也有一定概率的失敗,很奇怪……挺折騰的……重新安裝一個wp,只安裝oss upload或者wposs,還是無法上傳……aliyun oss那邊什麼設置都沒改過。這逼得以後只能手動上傳了。
      圖片rename的時候,我會習慣讓後面帶上數字編號。classic editor通過url里插入一張圖片,然後複製,修改數字就可以不用一張張插入,圖片多的情況下應該比較helpful,少的情況下一張張也問題不大。
      手機上我也沒裝wp app,ios系統版本沒升級,不給裝……反正發文章都是用電腦先在word里編輯文字,發文的時候直接複製進去,然後再整圖片。

  5. 看到我頭都暈了……

    想起我以前也多次經歷這樣的過程,從msn space->wordpress.com->自建站->A伺服器->B伺服器->C伺服器->D伺服器->返回C伺服器……

    現在折騰不動了……

  6. 好詳細,加點插圖就是一篇WP教程了。我比較喜歡Emlog,嬌小可愛,哈哈!

      1. 3路18彎後,能折騰出個結果,也不枉費了時間;不然,後悔死了。

        1. 嗯,現在速度很快,基本都是秒開,w老師也幫我留意留意~昨天發現用微信打開頁面載入慢,估計是因為google字體,因為微信默認用自己的伺服器載入。
          加了限制字體的代碼之後貌似有一點改善,但是還是不如用瀏覽器打開快。

          1. 你要感謝我,要不是我上個月給你提了很多意見,你還想不到。
            現在速度杠杠的,而且界面也清新了很多。

回復 曾經左手煙 取消回復

您的郵箱地址不會被公開。 必填項已用 * 標註