分类:工具

工欲善其事,必先利其器。

从 Ubuntu 14.04 LTS 升级到 Ubuntu 16.04 LTS

LTS 是 Ubuntu 长期维护版本,时间为五年。维护时间到期后,软件不再更新,如果安装某个软件最新版本,可能会导致各种不兼容。当前使用的是 14.04LTS,下一个稳定长期维护版本是 16.04LTS。Ubuntu 的升级可不像商业操作系统升级这么省心,系统的升级带来软件的升级,而软件的升级并不保证配置的兼容性。

选择一个合适的升级时间点,也有讲究。如果 16.04LTS 刚发布就升级,对于升级中碰到的各种问题,网上很难找到解决方案;如果拖到版本维护时间快到期时再升级,又会导致不兼容的软件变多,需要解决更多的升级问题。所以我选择 16.04LTS 发布一年左右这个时间点进行升级。

  • 首先应该阅读 linode 上的 Ubuntu 16.04 LTS 升级指导。这里主要强调几点:
    • 软件升级到最新 apt-get update && apt-get upgrade
    • 在 linode 管理界面上选择最新内核
    • 安装升级管理软件 apt-get install update-manager-core
    • 备份当前系统

      我的方法是新建一个 linode 节点,并 clone 当前节点。升级完成,解决所有问题后,再删除此节点。linode 节点是按时间收费的,这个节点存在的时间很短,花费很少。

    • 停止重要系统服务
    • 升级 do-release-upgrade
  • 升级过程中,一直有交互提示信息。比如:询问保留配置还是覆盖配置;询问是否升级数据库;询问是否删除无用的软件包,等等。 这个过程要小心谨慎,一不小心你的配置就会被删除。
    • 提示是否打开新的 sshd 进程和端口,因为当前 ssh 可能会中断。选择是。
    • 是否更新源地址到最新版本。选择是。
    • 是否下载并安装 16.04LTS 对应的新版本软件,有些软件没有对应候选版本,无法升级。选择是。
    • 是否删除 sysstat 日志。选择是。
    • phpmyadmin 升级相关问题。我升级失败,选择 abort。在新版本里删除重装就行了。
    • 是否覆盖 /etc/nginx/nginx.conf 。选择是。记得在新系统中修改。
    • 是否安装新版本配置 20-imap.conf 。选择是。
    • 是否自动重启服务。选择是。
    • 是否覆盖 /etc/ppp/options 。选择是。
    • 是否覆盖 /etc/vsftpd.conf 。选择是。记得在新系统中修改。
    • 是否覆盖 50unattended-upgrades.ucftmp 。选择是。
    • 升级完成后,提示 pptpd 升级失败。

      在新版本中尝试解决,提示 linux image 的 module 未能加载,网上说重装内核可以解决。而 linode 上的 ubuntu 默认使用定制内核,无法 apt reinstall,所以该问题一直无法解决,最后只能将 pptpd 包删除。

    • 升级完成后,要重启系统。
  • 升级完成后,wordpress 站点不能正常访问,还要做一些修改。
    • 删除 apache2 服务 apt remove apache2-bin
    • 删除 apt 备份配置,否则提示扩展名不对。

      mv /etc/apt/apt.conf.d/50unattended-upgrades.ucf-old ~/
      
    • 16.04LTS 上 php 版本升级到 7.0
      • apt install php php-fpm php-mcrypt php-pear php-dev
      • apt-get purge php5-fpm php5-mysql php5-common php5-cli
      • 修改 nginx 中 fpmbackend 为 /run/php/php7.0-fpm.sock
      • mysql_ 系列函数彻底弃用,换成 mysqli_ 系列函数。
      • 修改 fastcgi_params 参数,否则 php 页面总是空白 。

        vim /etc/nginx/fastcgi_params
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO                $fastcgi_script_name;
        
    • 恢复原 nginx.conf 配置,删除 default 站点
    • 恢复 vsftpd.conf 配置
    • 删除并重新安装 phpmyadmin

将域名从 godaddy 转移到 namesilo

godaddy 是我最早开始使用的的域名注册商,其特点是注册便宜,续费价格高。随着我注册的几个域名陆续到期,不得不开始考虑续费的问题。

比较了 godaddy 和 namesilo 的续费价格,namesilo 要划算些。在 namesilo 上五年的注册费,加上域名转移费,还是比 godaddy 便宜不少。而且还赠送隐私保护功能。

之前已经有一个域名从 godaddy 转移到 namesilo,这次又有两个域名到期,但是已经忘了转移域名的操作过程,所以把过程记录下来,供以后参考。

  • 在 godaddy 上解锁域名

    我忘了这个步骤。发起转移申请后,系统会发邮件提示,必须先去原网站解锁转移功能,然后转移过程才正式发起。系统每 15 分钟会自动尝试一次,直到解锁成功。

  • 在 godaddy 上申请转移授权码

    授权码会发送到注册邮箱。

  • 在 namesilo 上发起转移申请

    将域名和授权码填到 namesilo 的 transfer 页面上,发起域名转移请求。可以一次填写多个域名,每个域名和授权码占用一行。

    确认转移信息后,跳转到付费页面,支持 paypal,域名的转移价格跟一年的续费价格差不多(实际上,包含了一年续费的费用。转移成功后,到期时间增加一年。), .net 转移价格比 .com 要贵些。namesilo 优惠码很少,网络上查到的注册码只能用一次。

  • 确认 namesilo 发起的转移申请

    namesilo 会向注册邮箱发一封确认邮件,包含确认链接。点链接后,跳转到确认页面,直接点确认按钮就可以。

  • 在 gddaddy 上确认转移申请

    我不知道有这个步骤,等待半天没有转移成功。登陆 godaddy 网站上查看,有个手工确认转移的按钮。如果不确认,可能会默认等待 5 天。

    过了两天,转移还是卡在这个过程。收到 godaddy 来邮件,需要回复邮件确认转移,否则再等 5 天。

  • 查看转移状态

    在 namesilo 的 my account 页面上,有 transfer manager 的链接,点开可以查看当前正在转移的域名列表,以及转移状态和提示。

  • 优惠码

    可以使用这个优惠码 1USCUT ,会在原价基础上优惠 1 美元。namesilo 优惠码少,而且优惠幅度小,网上没有找到更优惠的了。该优惠码到期时间是 2018-12-31

win7 64 位系统终于安装上了网络打印机

这台 win7 64 位系统,从安装完成起,网络邻居功能一直无法使用。从来都看不到局域网内的其它 PC,也无法安装网络打印机。在网上搜了无数的帖子,一直无法解决。今天双试了一次,终于找到解决方法,安装成功了。

之前查到的结果,主要提示面下两点

  • 控制面板 -> 网络和共享中心 -> 更改高级共享设置 -> 选”启用网络发现” -> 确定。
  • 服务中开启下面服务
    • UPnP Device Host
    • SSDP Discovery
    • DNS Client
    • Function Discovery Resource Publication

今天查到一个帖子,说在网卡配置中,重装 Microsoft 网络客户端,共享功能就正常了。查看了我的网卡设置,还没有安装这个协议,直接点击安装。然后打开网络目录,搜索一会,就能看到网络邻居了。安装网络打印机也是水到渠成。

ubuntu DNS 更新失败问题

把 linode 托管机房从 Fremond 换成了 Tokyo2,IP 也变了。但是从 linode 服务器上 ping fengjian.info 时,IP 一直没有更新。

开始以为是各个地域 IP 更新时延不同。一段时间后,本地 PING 都正常了,但 linode 上 PING 还是未更新。

多次查看了 linode DNS 管理界面,配置没有问题。

执行 DNS 清除命令,IP 还是未更新。

/etc/init.d/dns-clean start

会不会是有 host ip 静态设置?在 /etc 目录下,查找原 IP 地址:

grep -n "1.2.3.4" -r /etc

果然在 /etc/hosts 文件中,静态配置了 fengjian.info 的 IP 地址。把该行删除,再 PING,结果正常。