升級至Ubuntu 12.04 Server的二三事

發表於2012-08-16

| 2012-08-16 09:23      

昨晚,我手一癢,就把我們的VPS的Ubuntu 11.10升級至了Ubuntu 12.04 LTS版本,結果還是相當順利的,但是還是微調了一些。

簡單記之:

 

 

升級至Ubuntu 12.04 LTS Server

從Ubuntu 11.10升級至Ubuntu 12.04是非常簡單的,只需要執行一下「sudo do-release-upgrade」,進行確認、軟體包的更新、下載與安裝配置,即可完成升級。

但是升級過程還是有一點點意外:

我使用byobu的類screen工具連線至Server進行升級,升級了一半時,會話亂掉了(大概是重啟啥服務引起的),等我再登入進 去,dpkg的程式還跑著,但是byobu已經登入不進,也無法繼續操作。只得將「/var/lib/dpkg/lock」刪除,再手動執行「sudo dpkg --configure -a」及「sudo apt-get dist-upgrade」,一切得以順利進行下去。

一些服務(nginx、mysql)的調整

我手動升級伺服器的策略是,儘可能使用新版本的配置檔案,再手動將舊設定應用於新的配置上。

比如在將mysql-server從5.1升級到5.5之後,原有的utf8設定可能會無效,於是在「/etc/mysql/conf.d/」下建立一個「utf8_charset.cnf」的檔案,輸入以下內容:

[mysqld]

max_allowed_packet=64M

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

然後再用「show variables like 'char%'」查詢時,就會看到都是utf8了。

nginx+uwsgi的問題

升級了nginx新舊配置檔案沒啥不同,唯一的一點是,之前我為了用nginx跑uwsgi,用了「root」使用者,現在又變成了「www-data」,重新改回來就可以。

所說現在有更好的跑Python App的類uwsgi工具(或其他模式),有時間再升級一下了。

Python Virtualenv的問題

隨著發行版的升級,Python版本也升級了,於是會導致使用Virtualenv的WebApp有詭異的問題,最好的辦法是,重新建立一遍virtualenv環境,非常簡單。

比如本站的環境是「imtx.me」,只需要「mkvirtualenv imtx」,它會自動去對原環境進行一次重新建立(和覆蓋操作),完成後,重新透過pip去安裝軟體包即可。

Crontab的通知問題

之前在VPS上會跑一些cron,這些cron會有輸出,每跑一次都會向當前使用者傳送一封郵件,久而久之就有積累了上千封郵件了。這些郵件通常告訴你cron跑的過程與結果是不是順利,偶爾是要看一下,但多了也不方便,該怎麼辦呢?

於是我想到了一個辦法,「crontab -e」編輯時,在最上面寫一行:MAILTO="yourmail+cron@gmail.com",這樣它就會發到我的郵箱的指定位置,我只要想看時,看自己的私人郵箱就可以了,而不用登入到伺服器上看郵件了。

另外,如果真的不需要通知,在crontab裡命令列後面弄一句「> /dev/null 2>&1」也行。

小結

儘管現在各種雲大行其道,但是自己管理自己的VPS依然很有價值,關鍵是享受樂趣與最大的靈活性和可配置性。

另外做個小廣告,這些年來用過不少VPS,今年開始用Linode,大半年過去了,確實非常棒:穩定、快速,後臺也十分強大,非常自動化。比如我昨天忘記密碼了,就透過Rescue功能重設了root密碼。

如果你打算使用Linode,可以考慮用我的可以考慮使用我的 referral code(透過該連結或該程式碼去購買Linode的產品):3a7a044d481045ae2ff2f4469357779e2322f5c6,算是對我blog的贊助吧。嘿嘿

來自:http://imtx.me/archives/1752.html

升級至Ubuntu 12.04 Server的二三事

相關文章