从Ubuntu11.10升级至Ubuntu12.04是非常简单的,只需要执行一下「sudo do-release-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了。然后再用「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依然很有价值,关键是享受乐趣与***的灵活性和可配置性。