上周把域名从 name.com 转到了 google domains,其实 name.com 的功能和服务挺不错的,一年多name.com 的使用总结起来就是很满意,目前 Google 的服务在国内尚不能直接访问,转入 Google Domains 域名管理肯定不如 name.com 方便了,之所以坚持转入 Google Domains 主要缘由是上周 Google 给了一个30美元的 gift card。

Google domains gift card

这个30刀的礼品卡仅限于一次性购买一个或转移一个域名。

name.com 转 Google Domains

转移步骤很简单大概需要到 name.com 上对原域名解锁、设置 Whois、获取转移码,然后再登录 Google Domains 按部操作即可。

  1. 首先,得确认一下能否正常打开 Google Domains 网站:https://domains.google.com,如果打不开那得想想办法了。
  2. 获取必要条件

    登录到 name.com 账户打开对应域名的控制台,解锁、设置 Whois,获取 Transfer Auth Code。
    解锁:Domain lock设置为Unlocked
    公开 Whois:Whois Privacy设置为Public
    获取转移码:Transfer Auth Code后的Show Code会显示转移码,name.com 的Transfer Auth Code对应 Google Domains 的authorization code
    name.com 转入 Google Domains

  3. 开始转移

    登录 Google Domains-Transfer in,右侧文本框输入转移的域名,点Continue

  4. 准备工作:

    这一步叫“Prepare your domain for transfer”:系统会对该域名的解锁、Whois公开信息进行验证,核实域名的管理员邮箱,填入authorization code(对应name上的“Transfer Auth Code”),点Accept and proceed

    name.com 转入 Google Domains

  5. 域名设置选项:

    这一步叫“Import your domain's web settings”,即确认若转移成功是否要将原有域名的各项设置导入到 Google Domains,推荐选择第一个Detect and import my domain's current settings (recommended),点Accept and proceed

    name.com 转入 Google Domains

    紧接着是下一步“Transfer!”,点Transfer!继续。

  6. 个人信息核实:

    接着会弹出一个个人信息核实的窗口,填上个人信息,目前只支持美国用户,办法很多,点选下方的个人信息选项,建议选择“Make my info private”,不然钱白花,勾上服务条款,继续点Continue

    name.com 转入 Google Domains

  7. 付款确认:

    到付款这一步了,仅支持信用卡支付,点Buy,付款成功。

  8. 邮件确认:

    付款后 Google Domains 会发一封确认邮件到域名管理员邮箱,打开邮箱阅读完条款点击下方的Confirm Transfer按钮确认。

  9. 等待生效:

    完成上一步的确认之后就是等待、等待、等待...正常情况要等上整整五天时间,不同于 Godaddy name.com 的域名控制台没有approve按钮,无法通过人为点击实现转出操作,必须由系统按部就班地来确认。

  10. 转移成功:

    转移成功!这就是 Google Domains 的控制台,很简洁。

    name.com 转入 Google Domains

    友情提醒:
    为了加快转移速度,可使用转移域名的管理员邮箱发邮件到 support@name.com,请求 name 的工作人员帮忙人工确认转出,这样就不需要漫长的五天等待了,基本当天就可以转出,具体请见这里:Speed up a Transfer

亚马逊面向美日市场推出的电视盒子产品,整合了亚马逊 prime 会员服务是这个产品的最大亮点,亚马逊虽然没有为 prime 会员提供 QQ 会员那样尊贵的特色红名服务,却可以免费观看很多付费视频。

硬件配置

新款 Fire TV 用上了四核CPU(MTK的CPU,其中两核最高2GHz,两核最高1.6GHz)亚马逊称其处理能力相比上一代提升75%,配备的 Power VR GX6250 GPU 比上一代也有两倍的图形处理能力,支持4K(30fps,Roku4 是 60fps)视频播放,并提供 4K 流媒体内容服务,内存依然保持与上一代一致的 2G、ROM 仍旧停留在8G,但支持最高128G的microSD扩展存储,这样的配置足以与国内电视盒子拉开长长一段距离。
PC120946

售价

强悍的不仅是硬件配置,零售价格也同样强悍,99.99美元的售价显然是把 Fire TV 作为一个高级电子产品来定位的,iPhone 的合约售价不也才99刀么。全新 Apple TV 售价149美元,如果加上拆分出去单独销售的游戏控制器 Fire TV 也差不多这个价格(139.99美元),可能是有过 Fire Phone 这个高价产品的前车之鉴,故意拆分销售以降低产品售价提升竞争力。

实物

Fire TV 不管是盒子还是遥控器做工都很精细。
PC120941

遥控器尤为明显,外观漂亮,细节完美,最最重要的是手感一流,握在手里紧实而有信心,比家里现有的 LG、百事通、KKTV 遥控器好很多,特别是后两者拿在手里总是松松垮垮的感觉。
PC120949

正面的 amazon logo
正面的 amazon logo
Fire TV made in China
Fire TV 反面:assembled in China

购买

今年黑色星期五期间亚马逊美国 Fire TV 特价至74.99美元,下了一单,不支持直邮,转运清关时缴税95元,20%的税率,分明是在抢钱。

上周五(12月11)拿到手,前后历时约14天。

接口丰富、蓝牙遥控器

Fire TV 接口比较丰富:HDMI、MicroSD、RJ45、USB(USB2.0标准,都支持4K了,上USB3.0才合适)都有配备,同时缺少电源控制按键不知是好是坏。
PC120955

Fire TV 提供无线和有线两种连网方式:无线支持 802.11ac(MIMO),有线是RJ45接口。
Fire TV 的电源适配器可适配110-240V范围电压,在国内使用不需另配电源适配器,对接HDMI,接通电源就连上电视了。
首次启动会播放使用引导,Fire TV 要绑定亚马逊帐号方可正常使用,默认没有与下单帐号绑定,在设置选项里提供有更换绑定帐号的选项,目前的系统是 Fire OS 5.0.4。
密码输入框设计新颖,因地制宜,上右下左,1、2、3、4,中间确认键对应0,剩下的数字可按遥控器的暂停键翻出,通过密码能够实现家长控制和 APP Store 控制。
遥控器按键默认有按键音(吧吧),可在Setting中关闭按键音。

Fire TV 主界面,简洁实用,也很炫
Fire TV 主界面,简洁实用,也很炫

视频内容丰富,影片价格不菲

Fire TV 除了可以观看亚马逊自有视频,还可以观看 Netflix、HBO、Showtime、Hulu、YouTube 提供的视频,对了,还有 NBA 看。
Fire TV 上的付费视频价格都不菲,作为普通人,拿着社会主义的工资看资本主义的付费视频,只能说是以卵击石!当然,一旦成为亚马逊 Prime 会员就不一样了,Prime 会员有海量的免费片源可看。

Fire TV 上的付费电影价格很贵,这个价格足够去电影院看了。
Fire TV 上的付费电影价格很贵,这个价格足够去电影院看了。

播放手机端的图片和视频

通过亚马逊提供的专用 App,可将手机中的图片和视频上传到亚马逊云端服务,Fire TV 对接云端服务,进而实现在 Fire TV 播放的目的。

家长控制

启用家长控制,可屏蔽掉儿童不宜的游戏、APP、照片、音乐、视频内容,启用家长控制之后回到主界面再次打开 Games 会显示 Games section is blocked,按确认键会弹出密码框,输入家长控制密码解除屏蔽,给写完作业的孩子玩两局游戏。

Freetime

这个功能应该是家长控制的扩展或延伸,可以针对每个孩子设置所能够看到的具体视频内容和游戏,也可通过付费形式购买高级版订阅,自动推送适合儿童的视频和游戏。

语音控制、遥控器

遥控器带语音控制,没试过这个功能,不过遥控器应该是通过蓝牙链接的,在设置里面可以看到当前连接中的遥控器的 MAC 地址。

手机充当遥控器

Fire TV 也支持手机充当遥控的功能,需要下载专用的 App,打开 App 自动检测到本局域网内的 Fire TV,输入 Fire TV 屏幕上的配对码配对使用,Google Play 和 App Stone 分别可以下载到适配 Android 端和 iOS 端的 App。

如何在 Fire TV 上安装国内电视应用(APP)

Fire TV 提供的视频太贵,还是回归国内吧,只要6步即可轻松在 Fire TV 上安装第三方 App。

1、打开USB调试模式:

Setting-System-Developer Options按确认键,把里面的ADB debuggingUSB debuggingApps form Unknown Sources都设置为on

2、查看 Fire TV 的 IP 地址:

Setting-System-About-Network,如:192.168.1.9,记下IP地址待第5步安装App使用。

3、下载 adb 工具并安装:

minimal_adb_fastboot_v1.3.1[MD5: D72D659D2B206C14B6FEA6F1E7311A63]

4、下载 App 应用到 adb 安装目录:

如下载优酷电视客户端youkuxl_Cpid_forMobileYoukuCom_V2.7.2.apk到 adb 的安装目录D:\Program Files\Minimal ADB and Fastboot下。

5、安装电视 APP:

开始-运行(win+R),输入cmd回车,在CMD界面输入cd D:\Program Files\Minimal ADB and Fastboot,回车,输入abd可查看adb,输入adb connect 192.168.1.9,提示

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.1.9:5555

说明已经连接上电视盒子,回到 CMD 窗口输入adb install youkuxl_Cpid_forMobileYoukuCom_V2.7.2.apk回车,片刻后提示 success 字样,说明安装成功。

6、使用安装的电视 APP:

通过adb命令安装的 App 不在 Fire TV 主界面显示,需要到Setting-Applications-Manage Installed Applications按确认键,通过上下键找到,按确认键,再按Launch application打开。

PC120960

通过 VST 全聚合看 CCTV5 的足球节目
使用 VST 观看 CCTV5 的足球节目

使用总结

  1. 很流畅,真的很流畅,没有一丝卡顿;
  2. 亚马逊自带的视频和 App 需要翻墙才能使用,所以得搞个能翻墙的路由器才行;
  3. Fire TV 上的英文片源没有字幕,看片对英语有硬要求;
  4. 音乐功能也需要付费(也可从 iTunes 或外部导入),需要从亚马逊商店购买;
  5. 尚未体验 Fire TV 上的游戏,路由器未改造无法实在翻墙功能;
  6. 有 Sleep 模式,但没有关机/断电按钮,想关机只能硬生生地拔掉电源。
  7. Fire TV 的遥控器非常耗电,一年多时间用下来,感觉这个遥控器简直是电老虎,耗电速度比红外遥控器快很多,在 Fire TV 用到不能用的电池,换下来装红外遥控器还能继续用,可能蓝牙遥控器本就比普通的红外遥控器耗电吧。

综上,这是一台好机顶盒,但必须得配上亚马逊 Prime 会员才完美!

pagespeedGitHub)是 Goolge 为 Apache 和 nginx 开发的前端优化扩展模块,其中适用 Apache 环境的叫 mod_pagespeed,适用于 nginx 环境的叫 ngx_pagespeed

pagespeed 功能简介

pagespeed 的功能包括但不限于以下方面:
优化传输带宽(过滤)(压缩图片、CSS、JS文件,去除html空白、注释...)、降低请求(CSS、JS文件合并、图片雪碧、识别并重定向常用JS库、缓存控制)、域名映射(支持CDN)、提升客户端体验(图片预加载、延迟加载,移动端图像优化),同时还提供对 https 的支持。

nginx 下 pagespeed 的编译安装

安装方法 Google pagespeed 网站上有详细介绍,复制过来方便不能翻墙的朋友查看。

安装依赖

RedHat, CentOS, or Fedora

sudo yum install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel

Ubuntu or Debian

sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev

下载 ngx_pagespeed

目前 ngx_pagespeed 最新的版本是 1.13.35.2-stable(需要 gcc ≥ 4.8 或者 clang ≥ 3.3,如果不符合要求请升级 gcc 或 clang,或者继续使用旧版:1.9.32.11),想使用其它版本直接用新版本号替换掉下面的 1.13.35.2-stable 即可。

#[check the release notes for the latest version]
NPS_VERSION=1.13.35.2-stable
cd
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
unzip v${NPS_VERSION}.zip
nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
cd "$nps_dir"
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url})  # extracts to psol/

下载 nginx 并编译 ngx_pagespeed 模块

编译 ngx_pagespeed 模块分两种情况:1、全新安装;2、当前版本添加。

1、全新安装 nginx 并加入 ngx_pagespeed 模块

下面是全新安装 nginx 1.16.1,改成需要的版本即可。

cd
NGINX_VERSION=1.16.1
cd
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure --add-module=$HOME/ngx_pagespeed-${NPS_VERSION} ${PS_NGX_EXTRA_FLAGS}
make
sudo make install
2、当前版本添加 ngx_pagespeed 模块

如果当前服务器已经安装了 nginx 则需要先查看当前的 nginx 版本号:
nginx -V

确定了当前服务器的 nginx 版本号,即可使用下面的代码编译安装了,./configure 中的 module 请根据需要进行配置:

NGINX_VERSION=1.16.0
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/root/incubator-pagespeed-ngx-1.13.35.2-stable
make
sudo make install

配置 ngx_pagespeed

配置用的过滤参数这里有详细说明:http://ngxpagespeed.com/

创建配置文件

在 /usr/local/nginx/conf/ 添加 pagespeed 配置文件:
vi /usr/local/nginx/conf/pagespeed.conf
根据实际需求加入类似下面的配置参数:

		# on 启用,off 关闭
		pagespeed on;
		# 重置 http Vary 头
		pagespeed RespectVary on;
		# html字符转小写
		pagespeed LowercaseHtmlNames on;
		# 压缩带 Cache-Control: no-transform 标记的资源
		#pagespeed DisableRewriteOnNoTransform off;
		# 相对URL
		#pagespeed PreserveUrlRelativity on;
		pagespeed XHeaderValue "Powered By ngx_pagespeed";
		
		# 开启 https
		#pagespeed FetchHttps enable;
		
		# 配置服务器缓存位置和自动清除触发条件(空间大小、时限)
		pagespeed FileCachePath "/var/ngx_pagespeed/";
		pagespeed FileCacheSizeKb 2048000;
		pagespeed FileCacheCleanIntervalMs 43200000;
		pagespeed FileCacheInodeLimit 500000;
		# 过滤规则
		pagespeed RewriteLevel PassThrough;
		# 不需过滤的目录或文件
		pagespeed Disallow "*/wp-admin/*";
		pagespeed Disallow "*/wp-login.php*";
		
		# 移除不必要的url前缀,开启可能会导致某些自动加载功能失效
		#pagespeed EnableFilters trim_urls;
		# 移除 html 空白
		pagespeed EnableFilters collapse_whitespace;
		# 移除 html 注释
		pagespeed EnableFilters remove_comments;
		# DNS 预加载
		pagespeed EnableFilters insert_dns_prefetch;
		# 压缩CSS
		pagespeed EnableFilters rewrite_css;
		# 合并CSS
		pagespeed EnableFilters combine_css;
		# 重写CSS,优化加载渲染页面的CSS规则
		pagespeed EnableFilters prioritize_critical_css;
		# google字体直接写入html 目的是减少浏览器请求和DNS查询
		pagespeed EnableFilters inline_google_font_css;
		# 压缩js
		pagespeed EnableFilters rewrite_javascript;
		# 合并js
		pagespeed EnableFilters combine_javascript;
		
		#pagespeed EnableFilters rewrite_style_attributes;
		# 压缩图片
		#pagespeed EnableFilters rewrite_images;
		# 不加载显示区域以外的图片
		pagespeed LazyloadImagesAfterOnload off;
		# 图片预加载
		pagespeed EnableFilters inline_preview_images;
		# 移动端图片自适应重置
		pagespeed EnableFilters resize_mobile_images;
		# 图片延迟加载
		pagespeed EnableFilters lazyload_images;
		# 雪碧图片,图标很多的时候很有用
		#pagespeed EnableFilters sprite_images;
		# 扩展缓存 改善页面资源的可缓存性
		pagespeed EnableFilters extend_cache;
		# 不将规则应用在 wp-admin目录 和 wplogin.php页面
		pagespeed Disallow "*/wp-admin/*";
		pagespeed Disallow "*/wp-login.php*";

		
		# 风险指数高,不建议开启
		#pagespeed EnableFilters local_storage_cache;
		# 不能删
		location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
			add_header "" "";
			}
		
		location ~ "^/ngx_pagespeed_static/" { }
		location ~ "^/ngx_pagespeed_beacon$" { }
		location /ngx_pagespeed_statistics {
			allow 127.0.0.1;
			deny all;
			}
		location /ngx_pagespeed_global_statistics {
			allow 127.0.0.1;
			deny all;
			}
		location /ngx_pagespeed_message {
			allow 127.0.0.1;
			deny all;
			}
		location ~ ^/pagespeed_global_admin {
			allow 127.0.0.1;
			deny all;
			}
		
		pagespeed StatisticsPath /ngx_pagespeed_statistics;
		pagespeed MessagesPath /ngx_pagespeed_message;
		pagespeed ConsolePath /pagespeed_console;
		pagespeed AdminPath /pagespeed_admin;
		
		# 控制台 可通过 http://domain.com/ngx_pagespeed_admin 来查看控制台
		pagespeed Statistics on;
		pagespeed StatisticsLogging on;
		pagespeed LogDir /var/log/pagespeed;
		location /pagespeed_console {
			allow 127.0.0.1;
			deny all;
			}
		pagespeed AdminPath /ngx_pagespeed_admin;
		
		location ~ ^/pagespeed_admin {
			allow 127.0.0.1;
			deny all;
		}
		# 日志限制
		pagespeed StatisticsLoggingIntervalMs 60000;
		pagespeed StatisticsLoggingMaxFileSizeKb 1024;

ESC键,输入:wq保存并退出。

引入 pagespeed 到网站配置文件

打开网站的配置文件,如:
vi /usr/local/nginx/conf/vhost/nanshanxia.com.conf
i加入
include pagespeed.conf;,最后再ESC:wq保存退出。

检查 nginx 配置

/usr/local/nginx/sbin/nginx -t
返回

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

说明没有问题。

重启 nginx 使 pagespeed 生效

接着重启 nginx 让 pagespeed 生效
service nginx restart

验证 pagespeed 是否生效

使用 curl 验证 pagespeed 是否生效:
curl -I 'http://maliyana.com' | grep X-Page-Speed

然后再访问网站,速度就有提升了。

启用 pagespeed 后 WP Super Cache 这个插件基本就没什么作用了,所以,又可以减掉一个插件了。

今晚把这个网站的 VPS 服务器升级到 PHP7,感觉网站在 PHP7 下的响应速度比 5.4、5.6 时快了稍许,再配合 pagespeed 速度优势明显,要是再加上 cloudflare 估计会更快。我的 VPS 是 256M 的 OpenVZ,探针显示 PHP7 下服务器内存占用相比 5.x 时有降低。

WordPress 升级 PHP7

上面说的都是好处,其实问题也很多。

兼容性问题

WordPress 程序本身完全兼容 PHP7,但是,有部分插件或主题可能会有不兼容的问题。

在用的 WP Super Cache、Akismet、Google XML Sitemaps 和 Comment Email Reply 这几个插件暂未发现兼容性问题。倒是上面一个同学的网站使用了国内的开源 PHP 程序不兼容 PHP7,直接挂掉了。

由于是刚发布的新版本,部分模块/扩展可能短时间无法及时跟进,技术文档相对欠缺,升级、调试甚至恢复必然要花费时间精力等成本。

昨天早上曾试图升级 PHP7,无奈有一处错误一直过不去,不能耽误孩子的周末,作罢,结果昨晚回家重启了一下 VPS 数据库死活启动不了…

综上,如果不是非升不可,建议等上一段时间,待条件成熟相对稳定了再升级。

特定条件下 Home 键失灵:

表现为:屏幕锁定隔一段时间后按下 home 键无法激活(点亮)屏幕,第二次再按一切正常:亮屏、解锁…

少数情况无法自动锁定:

设定一分钟自动锁定,奇怪的是有个别时候静置很久却没有自动锁定,哪怕是在主屏幕。

偶尔无法清除通知栏消息:

出现通知栏消息无法清除的频率很低,一共遇到三次:IFTTT、QQ 和 inbox 各一次,重启系统后可正常清除。

现在看来,除了权限控制还是 moto x 用的顺手。