Blog

升级 Linode 系统到 Debian 8

昨天晚上,我心血来潮,去了 Linode 的网站去看文档,估摸着 Debian 应该可以升级了。用关键字 debian 搜索果然有这么一篇。粗略看了一下就开始升级,升级完后,发现网站不行了,打开任何页面都显示 404 错误。我有点奇怪,一般来说应该是 Apache 无法启动或者发生 500 错误吧,这种找不到文件的情况还是第一次见到。

于是就找原因,不知道是不是升级后 /srv 下的文件权限被动了,结果找一阵子也没发现。看 access.logerror.log 也没有发现,而且奇怪的是,根本没有升级后的时间的记录。不过好在 ls -l 后发现时间最新的文件居然是 other_vhosts_access.log 文件,并在里面找到了相应的 404 记录。这下稍微有了点头绪,应该是配置文件的问题。可我根本没有搞配置文件,怎么就出问题了呢?

昨天晚上的 SSH 速度尤其的慢,输入命令的时候明显能够感受到延迟,更难过的是,时常会发作一次,直接卡住,按什么键都不起作用,这搞得我极为烦躁。想起傍晚听内核恐慌的时候,主持人讲到 PHP 是一种十分不安全的语言,WordPress 也经历过很多 0day 攻击,因此很多网站都转移到了静态博客。那时我心里想,如果我的博客也是静态话的,也许我就不用这么担心了。哪怕博客程序跑不起来,生成的页面还在,还可以继续访问。

然后静下心来,继续 Google,最后从 Linode 自己的升级说明(就是我开头时看得页面)的开头处,看到写着“如果你是 Apache 网络服务器的用户,注意 Debian 8 将 Apache 2.2 升级到了 2.4。这个版本对配置文件做了数处调整,会搞掉现存的网站。请在继续前阅读《Apache 升级说明》的内容。我当时扫了一眼,知道了 Apache 会从 2.2 升级到 2.4 就没有继续关注,因为我觉得像 Apache 这样的包,应该不会随便修改配置文件,于是就直接进行了下一步。而当我阅读这篇《升级说明》后,才知道 Apache 2.4 的配置文件里有几句配置是必须要添加的,而这篇说明里面把所有要进行的修改都说明了,我仔细一点的话,就不会出这样的问题了。

按照说明里的步骤进行调整,在重启 Apache 的时候,说不能识别 RailsBaseURI 命令,这下我马上反应过来是 Rails 或者 Passenger 的配置上有了问题。我先把配置中有关 Rails 的部分注释掉,重启 Apache 成功,之前的网页就都回来了。随后我找到了 Linode 文档里的这篇:Ruby on Rails with Apache on Debian 8,读了一遍没发现有什么特殊的,于是重新安装了一遍 Passenger,随后问题解决。

网站恢复正常之后,我回忆了这次事件中的“教益”。首先就是粗心大意的问题,之前这样的事情也发生过,不过基于人们的性格,这似乎是个无解的问题。谁也不会故意去犯错误,因此当错误犯下后,很难从当时的环境与心态中跳出来,反应到需要把之前的工作做的细致一些。这个时候,都会觉得自己该做的都做了,怎么结果就是不对,这就是所谓的牛角尖。不知道多犯几次错误,加上反思,能不能让我养成错误发生时有意识的、更细致的、重新考虑一下之前的步骤。

另一个教益就是备份。当然,备份的重要性如何强调都不为过。不过,我经常会想,我的这个没有多少人访问的网站,有这么需要做好备份吗?常常因为偷懒,我在应该备份的时候,比方在升级 WordPress 的时候,都假装不会失败。我赢了很多次,但有一次失败,就会让我后悔。不过,我之前写的东西,就算没有了,应该也算是自己的遗憾吧。目前没有一个非常方便的备份方法,Linode 的每月 2.5 美元的备份服务我有觉得对我来说有点浪费,所以目前我也不是十分重视备份。等有了精力再琢磨一个一劳永逸的方法吧。

没有评论

Leave a Reply