wordpress4.9服务器迁移
? ? ? ? 由于之前在公司做了一個官網,當時用wordpress進行的二次開發。雖然之前也做過wordpress類的二次開發,不過也已經是很久以前的事情了,這種開源cms產品兩天一小更三天一大更,很多東西不能慢慢的去了解,不過也可以快速開發,好在是比較傻瓜式的開發。近期發現之前windows的服務器性能不是很好,很不穩定,是因為他們自己買了個windows然后就作為服務器了,然后還經常停電,還得人手動重啟,真是一群廢柴!因此后來決定要遷移到阿里云上,我本來覺得這事兒so easy,但是我還是太年輕了,為了用公司統一的環境,竟然浪費了我那么多時間。
? ? ? ?centos 7開始部署環境,正常的部署就是wget一個遠程的包,解壓之后進去運行一鍵話的部署腳本,然而這個也是,并沒有什么不一樣的,狗血的是之后PHP的7.2環境,因為wordpress4.9的版本用的是mysql_connect驅動進行數據庫連接,bug PHP7.0以上廢棄了這種方式的連接,改用mysqli方式的連接驅動,痛苦的事情來了,wordpress4.9并沒有封裝的mysqli連接的類,但PHP7.2又不能用mysql了,怎么辦,總不至于我自己寫個mysqli的類吧。最難過的永遠都是最糾結的事情,就這樣一直糾結著并解決著錯誤,但并不能找到php7.0以上的php-mysql擴展,然后決定還是用我之前的環境吧,我一直都在使用 oneinstack 部署服務器環境,這個很多人都在用,社區也比較活躍,環境也比較完善,而且經常更新,果然一次搞定。
? ? ? ?當我最后把數據庫密碼修改之后,我看到了?A TimThumb error has occured 這個錯誤,費解,上網看了幾篇文章才知道原來是我之前用了緩存,但是遷移到新服務器上之后沒有權限,網上給出的答案是讓重新把插件卸載了重裝一次,但是這么久了,誰還記得當時安裝的什么插件,所以直接給 wp-content 目錄 777 權限就可以解決。
? ? ? ?接著部署在服務器上的代碼被阿里云檢測出來了漏洞,具體信息是 ?“wordpress <= 4.9.6 任意文件刪除漏洞” ,看了看網上的說法,大多是直接升級到 4.9.7 這個版本就可以了,但是升級還是比較麻煩的,不如直接修復他的漏洞,漏洞主要是post.php的上傳漏洞,當普通用戶在上傳文件之后,點擊進行編輯,這時候黑客獲取到?_wpnonce 的值后模擬 post 向服務器發送請求,然后進入一個刪除確認頁面,點擊刪除按鈕,即可刪除,關鍵是沒有對文件過濾,那么當我傳入一個相對路徑下的地址也是可以的,這樣的話黑客就可以刪除任意文件。
? ? ? ?臨時修復方法 :
? ? ? ?1、文件/wp-admin/post.php中
? ? ? ? ? ? 將?$newmeta['thumb'] = $_POST['thumb'];
? ? ? ? ? ? 改為 ?
? ? ? ? ? ? $newmeta['thumb'] = basename($_POST['thumb']);
? ? ? 2、在/wp-include/post.php 中頂部添加 :? ? ? ? ? ??
add_filter( 'wp_update_attachment_metadata', 'rips_unlink_tempfix' );function rips_unlink_tempfix( $data ) {if( isset($data['thumb']) ) {$data['thumb'] = basename($data['thumb']);}return $data;} ?? ? ? ?所提供的Hotfix所做的就是掛鉤?wp_update_attachement_metadata()?調用并確保為元值提供的數據thumb不包含任何可以進行路徑遍歷的部分。因此,不能刪除任何安全相關文件。?到最后提交漏洞并且通過驗證,這個方法可以修復漏洞,但如果你是還沒有開發的話,那還是應該去官網下載最新的版本。
?
總結
以上是生活随笔為你收集整理的wordpress4.9服务器迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贾跃亭已订机票 本周就能回国?知情人士给
- 下一篇: mysql分表那些事儿