开发者社区> 知与谁同> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

升级至Ubuntu 12.04 Server的二三事

简介:
+关注继续查看

昨晚,我手一痒,就把我们的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密码。

原文发布时间为:2012-08-16

本文来自云栖社区合作伙伴“Linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Ubuntu启动停止Mysql
sudo service msyql stop sudo service mysql start sudo service mysql restart
804 0
ubuntu mysql 远程连接问题解决方法
在shell下输入mysql -uroot -p是可以登录的,所以问题应该是mysql不允许root用户远程登录的问题,于是通过输入下面命令: GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'password' WITH GRANT OPTION; 重启mysql后,发现还是连不上,于是想到是不是防火墙(ufw)或是iptables禁用了3306端口。
809 0
+关注
10071
文章
2994
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载