Posted on 2011-05-20 09:24
寒武紀(jì) 閱讀(7797)
評(píng)論(2) 編輯 收藏 所屬分類:
心得
上周服務(wù)器的一個(gè)PHP軟件不能訪問,查看原因是CentOS的PCRE模塊未用utf-8編碼引起的,由是搜索了一些資料照著變更,沒有效果。
當(dāng)時(shí)和另一個(gè)朋友L共同嘗試刪除后重裝,由于對(duì)Linux系統(tǒng)不熟悉,只會(huì)使用常規(guī)的命令進(jìn)行一些皮毛的操作,就直接用yum remove進(jìn)行刪除,系統(tǒng)當(dāng)時(shí)還提示是否remove掉相關(guān)聯(lián)的700多個(gè)組件或模塊。當(dāng)時(shí)也沒有多想就直接回車!結(jié)果------悲劇了,屏幕狂刷,我意識(shí)到pcre是基礎(chǔ)模塊,所有關(guān)聯(lián)它的或是它關(guān)聯(lián)都刪除掉,系統(tǒng)將遭遇一個(gè)災(zāi)難式的破壞。等刷完屏幕的字符,最終發(fā)現(xiàn):所有的bin目錄下的命令全部不見了!!!天哪,連ls命令都沒有,唯獨(dú)剩下一個(gè)cd命令。幸運(yùn)的是,當(dāng)時(shí)運(yùn)行在服務(wù)器的幾個(gè)應(yīng)用還能訪問,比如說phpmyadmin。
而后想了想,嘗試了各種方式去恢復(fù),都沒有辦法,那么,唯一的辦法就是盡量備份原有的數(shù)據(jù)和文件,重裝系統(tǒng)進(jìn)行環(huán)境的重新搭建。還好有其它方式,可以先把里面重要的文件都提取了出來。然后在幸存的phpmyadmin上趕緊進(jìn)行mysql相關(guān)數(shù)據(jù)庫(kù)的備份。(注:因?yàn)槭莻€(gè)人的服務(wù)器,所以并沒有像公司一樣做好運(yùn)營(yíng)和備份計(jì)劃)
第二天決定重裝系統(tǒng)了,管理員用了3個(gè)小時(shí)才搭建起CentOS5.5和SSH遠(yuǎn)程服務(wù)端。輪到我和L需要用SSH進(jìn)行遠(yuǎn)程的環(huán)境搭建。接下來的三天晚上,真是折騰又折騰。計(jì)劃安裝的幾個(gè)主要軟件是:Mysql、PHP、Apache、JDK、Tomcat、Ruby on Rails、Redmine、PHPMyAdmin等。
第一個(gè)晚上,災(zāi)難之前裝在上面的上述各種軟件版本都有點(diǎn)低,所以想干脆直接上最新的,而CentOS5.5的yum庫(kù)是取不到這些最新的軟件的。所以朋友 L 大量地采用了make install和rpm方式來安裝,而CentOS本身集成的就只有Apache的版本滿足。裝了MySQL5.5+phpMyAdmin3.4,運(yùn)行起來了卻發(fā)現(xiàn)和MySQL5.5和redmine1.1.1有沖突,主要是RoR環(huán)境的Mysql驅(qū)動(dòng)有問題,在網(wǎng)上能找到的都是從
http://www.tmtm.org/en/ruby/mysql/ 下載的0.2.6版本,這個(gè)版本我只試在MySQL5.0情況下正常連接。現(xiàn)在換成5.5,就無(wú)法運(yùn)行了,為此我還特地把Ruby環(huán)境從1.8.6提高到1.8.7,同樣裝了redmine官網(wǎng)要求的各種Ruby工具和Rails組件,折騰無(wú)果!最后,我還把異常信息拿出來,給ruby-mysql的日本作者發(fā)了一個(gè)email,第二天作者回復(fù)我,原來ruby-mysql已經(jīng)掛到GitHub去了,而且現(xiàn)在已經(jīng)是3.0alpha狀態(tài)了,但是他不確定能否工作在ruby1.8.6下。 最后感覺還是不行,切換回MySQL5.0,同樣高版本的ruby-mysql驅(qū)動(dòng)也無(wú)法連接低版本的MySQL。第一天以失敗告終!
第二天晚上繼續(xù)折騰,再不停地重新安裝,這時(shí)才想起一個(gè)問題:應(yīng)該退回到系統(tǒng)宕機(jī)前的所有軟件版本狀態(tài),這樣原先備份的數(shù)據(jù)才能正常恢復(fù),不會(huì)帶來額外的版本沖突麻煩。于是折騰到接近晚上12:00時(shí)發(fā)覺方向錯(cuò)了,無(wú)奈,和 L 打了個(gè)招呼,計(jì)劃明天讓管理員再重裝一次系統(tǒng),現(xiàn)在目前的系統(tǒng)又被我們搞亂了!
第三天。就著原來的思路,重裝恢復(fù)到以前的版本,又用yum的原來方式裝回原來的版本,這次進(jìn)行順利。用了二個(gè)小時(shí),就把常用的軟件恢復(fù)了,同時(shí)恢復(fù)了數(shù)據(jù)庫(kù)。最后只剩下一個(gè)問題,redmine的密鑰恢復(fù)后,仍然無(wú)法連接原來的用戶密碼,我想可能得去查閱redmine的用戶管理模塊,看看它究竟是怎么生成密碼和檢驗(yàn)登錄的,有趣的事是發(fā)現(xiàn)網(wǎng)友找到另一個(gè)方法,就是直接在redmine下建ruby腳本,調(diào)用ActiveReord的User.save(),存一個(gè)自己的新密碼,不曉得可不可行,找個(gè)時(shí)間做個(gè)實(shí)驗(yàn)看看。
回頭一想。其實(shí)規(guī)劃、整理、理清服務(wù)器的管理工作,比精通Linux系統(tǒng)、各種軟解決技術(shù)更為重要!
剛進(jìn)場(chǎng)的時(shí)候戲就落幕