2017年11月

如何从Wordpress.com "我的站点"界面回到 Wordpress控制面板

如果你有多个Wordpress站点需要运营,并且主要是日常发布文章,那Wordpress.com提供了非常合适的综合管理平台。一站式管理多个Wordpress站点。 不论是Wordpress.com站点还是自己托管在任何主机的的Wordpress站点。

某些时候,我们需要做一些更底层的站点配置工作,仍然需要回到Wordpress控制面板。而wordpress.com目前没有放置很便捷的按钮让你回到控制面板。

如果不嫌麻烦,我们还是可以从传统的路径,比如将站点的管理界面加入收藏夹,又或者打开浏览器,输入站点网址,登录控制面板管理界面。可是这样又失去了 wordpress.com 做为“一站式”管理的便利性。

其实wordpress.com有链接回控制面板的按钮,只是没有那么明显。

如果你是托管在 wordpress.com 内的站点,尽管没有托管在自己的主机中拥有那么多的自由配置,但回到控制面板依然会有一些自由。
在左侧菜单中,选择对应的站点后,在最下方会有一个 “WP 管理”的连接,让你回到熟悉的控制面板。
免费托管版可能没有这个连接

如果是托管在自己主机的Wordpress,我们会发现这个便捷的 “WP 管理”的链接消失了。 真想不通 Wordpress.com 是怎么想的啊。但我们依然可以从Wordpress.com回到控制面板,只是有些许繁琐。
在左侧菜单中,选择对应的站点后,还是在左侧菜单,选择“套餐”,选择“我的套餐”标签,右下方会出现我们期待的“返回控制面板”。

搞定烦人的WordPress更新误报提示

我有强迫症。

手机上永远不会出现任何未读角标,看着就烦。 而Wordpress的更新提示就真的戳中了我的死穴。应为不参与具体运营,所以平日不常登陆wordpress后台,没那么让人纠结。但每每登陆,总有那么个提示,然后无论你如何不停地点更新当前版本,或者隐藏此更新,都没啥屁用。

遇到这种问题,有几种可能:
1,最下面有个翻译更新,不像其它更新会在当前页面直接显示出来,而是需要你多点击一下才能看到。
2,某个插件/主题发布的时候,版本号有错。停用都没用,必须删掉,或者等插件的下次更新。这也告诉我们,没事不要乱装插件玩。
3,自己修改过的插件/主题,没有把原始插件/主题中检查更新相关的代码关闭或移除,只能自己去Debug了。

AWS Route 53 域名解析托管后长时间不生效的故障分析

启用了一个注册了很久的域名,之前有在Route 53中做过设置,因为Route 53每个月都会收取解析费用($0.5),所以取消该记录也有一段时间了。这天准备复用的时候,发生怪事了。

一般来说,在Route 53做解析配置,生效时间都非常的快,但这次事情不同,现在都已经有24小时了,还是提示

ping: cannot resolve YourDomain: Unknown host

真心奇怪,进过仔细分析对比,发现,在Route 53中,域名的NS记录是

ns-1104.awsdns-10.org. 
ns-243.awsdns-30.com. 
ns-2030.awsdns-61.co.uk. 
ns-760.awsdns-31.net.

但是用whois查域名记录,NS是

Name Server: NS-1085.AWSDNS-07.ORG
Name Server: NS-753.AWSDNS-30.NET
Name Server: NS-1752.AWSDNS-27.CO.UK
Name Server: NS-501.AWSDNS-62.COM

所以,目前域名还是还被whois记录中的NS解析着。根据aws帮助文档的说法,要至少48小时才能全部生效。鉴于以往操作都是分分钟生效,外加我这个急性子,这还真让我捉急啊。

48个小时,还没有生效。继续研究后,有了新的发现。

强制更新域名的DNS服务商。
在 Route 53 的 Registered domains 页面中,选择无法正常解析的域名,在左侧 Name servers 的列表最下面 Add or edit name servers 将原有NS服务地址全部删除,然后替换为 Route 53 Hosted Zone 中提供的NS地址即可。

文明6控制台秘籍怎么使用 文明6上帝模式作弊码大全

没有那么耐心一点一点的平衡发展,索性试试这些上帝视角的作弊码,让自己也主角光环杰克苏一把。

退出游戏,找到并打开下面的文件

我的文档\My Games\Sid Meier's Civilization VI\AppOptions.txt

翻到第65行,将EnableDebugMenu的值0改为1

EnableDebugMenu 1

保存并关闭文件,打开并进入游戏,也可以读取存档。

2.进入游戏之后,按 ~ 可进入上帝模式,再按下Ctrl + Z 显示全图。之后就可以在游戏中直接按下对应的快捷键,就可以获得对应的秘籍效果了。
文明6作弊码秘籍大全
Shift +[+] 城市人口+1; Ctrl + [+] 城市文化+10
[+] 立刻完成建设中的城市; Ctrl + [+] 单位升级
Ctrl + W 世界编辑器(可以修改城市,添加单位,修改资源,改变地貌)
Shift + [ 降低单位力量; Shift + ] 提升单位力量
Ctrl + 4 增加金钱1000; Alt+ Z 改变你所控制的文明
Ctrl + Z 打开全地图,并且驱除地图迷雾,显示所有资源
Alt + D 改变控制者信息; Ctrl + D 打开全局菜单
这里提供的是玩家分享的信息,效果有待测试,本文将及时更新。

OneNote Error code: 0xE0000007

OneNote 突然出现同步异常。错误提示为:

We ran into a problem syncing your notebook. (Error code: 0xE0000007)

至少微软到目前为止并没有给出一个明确的解决方案。而是给出很多步骤挨个尝试。

0,检查网络;未解决
1,强制同步; 未解决
2,关闭OneNote,再次打开; 未解决
3,退出登录,再次登录; 也没有解决。

不停的重复1-3, 问题解决。

Typecho 1.1 BUG #1 ,我发现了一个隐藏秘籍:定时发布

在整理一篇技术文章之后,开开心心的发布,结果Typecho提示404了。顿时内心万马奔腾。后台查看,还在。

只好开启 Debug 模式。 讲真,你说这该从哪里下手啊。

开始排查吧,已经发布的文章逐个点击,已经发布的没问题,只有最新发布的两篇文章404了。

改“设置-永久链接”,无效。

难道是因为后台有大量的未发布的草稿?无奈只得先行发布,在找机会补完内容了。

结果依旧扑街,最新发表的两篇依旧404。

好吧,休息一下,喝杯茶。

再次坐下来仔细查看这两篇文章和其他已经发布的有什么不同,最终在管理文章列表页中发现这两篇文章的日期一栏,是一个日期,而下面刚刚发布的文章都是诸如XX分钟前,XX小时前,昨天 XX:XX 之类,而这两篇最近发布的文章,却是以日期的形式表现。并且这个日期还是两天以后的时间。改过来后,BUG解决了。可是在这之前,我都没有注意过编辑页面上有个“发布日期”输入框,更不可能擅自改动啊。所以这还是个BUG。

然后我利用这个BUG,在现在正在编写的页面上,把“发布日期”修改为当前时间 +1 分钟,发布后,又404了。

站起来伸个懒腰,再续上一杯茶,时间到,刷新,文章出现了。 这到底是个BUG呢,还是一个Typecho的隐藏大招啊?

续,模拟现场
在一种情况下,可能出现复现Bug,就是保存了草稿,然后“设置-基本-时区”,选择了比原先更晚一些的时区,这个时候,如果在时差内发布草稿,就会复现这个Bug了。
我确实是修改过时区,可那个时候,是已经出现了404 bug,我在到处设置找解决办法。况且,两篇出现404的文章,当时的日期是2017-11-29和2017-11-30, 而当前时间是 2017-11-26, 时差最多也只能制造1天的变量。

如果有新的线索,在更新吧。

Wordpress 免FTP,免输入密码系统升级,安装插件,安装主题

环境: ubuntu+apache+php7+wordpress4.9

最简单的方法,在 /wp-config.php 文件最下面,增加

define('FS_METHOD', 'direct');

尝试下载个插件看看,如果wordpress所在目录的读写权限配置合适,这个时候,就全部搞定了。
如果出现提示

wordpress 安装失败:无法创建目录。

这个时候,我们需要把 wp-content 目录权限改为 775

chmod -R 775 wp-content

如果还是遇到问题,那还是权限的问题,需要变更一下 wp-content 目录的所有权,之后再变更执行权

chown -R [owner]:[group] wp-content
chmod -R 775 wp-content

如果你只有FTP,没有SSH,也可以尝试把FTP信息写入 /wp-config.php 实现免密码。

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");

AWS EC2 镜像备份及恢复实例

在清理AWS EC2主机的时候,错删了一个网站目录,还好找到了曾经的备份镜像,化险为夷。

恢复之前,先了解一下EC2怎么样进行镜像备份。
1,登录AWS, EC2
2,EC2管理面板的左侧边栏:ELASTIC BLOCK STORE
3,点击 Snapshot, 会出现所有镜像列表。 是否收费呢???
4,页面正上方蓝色按钮“Create Snapshot”
Volume: 要备份的EC2主机Volume
Name: 随便起,自己明白就好
Description: 随便写,自己明白就好
Encrypted: No.
5, 点击蓝色按钮 “Create”
8GiB的Volume, 占用率50%, 大约只用了10分钟左右备份完成。

已经有了镜像备份后,接下来尝试将指定镜像文件加载到EC2主机中,就可以轻松找到被删除的文件进行恢复了。

加载镜像文件,首先要将镜像变成一个 Volume
1,选中要加在的镜像
2,点击上方的灰色按钮“Actions”
3,在下拉列表中点选“Create Volume”
4,全部默认,直接点击右下角蓝色按钮 “Create Volume”
5,EC2管理面板的左侧边栏:ELASTIC BLOCK STORE
6,点击 Volumes
7,如果这是第一次操作,那么,这里至少会有两个Volume, 看State, 绿色in-use,就是EC2主机默认使用的Volume,而另外一个蓝色avaliable则是在之前步骤 Create 的 Volume
8,选中之前步骤Create 的 Volume,点击上方灰色按钮 “Actions”
9,下拉列表中选择 “Attach Volume”
Volume: 不理会
Instance: 选择对应的EC2主机
Device: 挂在的名字,如果重复会自动重命名,所以默认即可,记住名字,一会要用到
10,点击蓝色按钮 “Attach”

到这里,Volume已经加载了,还需要在SSH里挂在这个主机
1, Login SSH
2, 查看加载的Volume
lsblk
3, 建立一个目录准备挂载的Volume
sudo mkdir /mybackup
4, 我其实也不懂这一步是干嘛的
sudo file -s /dev/xvdg
5,挂载Volume到这个目录,(下面命令中的xvdf就是之前加载的Volume名称)
sudo mount /dev/xvdg /mybackup/

全部用完之后, detache 就好了

参考
https://devopscube.com/mount-ebs-volume-ec2-instance/

升级PHP 7后Typecho1.1无法顺利连接MySQL数据库

背景: 本站由Typecho 1.1搭建,近日迁移服务器,由原先的PHP 5.3.29, 迁移至一台PHP 7.0.21的服务器。一切配置妥当后,无视无法连接数据库,打开后台提示

[Sun Nov 01 01:01:01.xxxxxx] [xxx] [pid xxx:tid xxx] [client xx.xx.xx.xx:xxx] AH01071: Got error 'PHP message: Adapter Typecho_Db_Adapter_Mysql is not available\n'

应该是MySQL的问题,打开

/config.inc.php

修改

/** 定义数据库参数 */
$db = new Typecho_Db('Mysql', 'typecho_');

/** 定义数据库参数 */
$db = new Typecho_Db('Mysqli', 'typecho_');

error_log 不再抛出错误,但是网站依然无法打开。
继续修改为

/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

一切恢复正常。

Wordpress用户福利,完全免费的SSL服务插件WP Encrypt,含Bug修复

真心福利,虽然每90天得更新一次证书吧,但这个插件WP Encrypt自带提醒,而且可以自动完成更新。
不过,由于涉及到怎么安全存放SSL证书,以及每90天可以自动更新,这个插件WP Encrypt在头一次安装的时候,还是需要一点点小技巧的,总结如下。

搜索并安装插件 WP Encrypt, 激活,进入设置页

Organization Name:   ;随便填,一般填自己网站名称
Country Name: China  ;不知道填写汉字中国会怎么样?
Country Code: CN     ;
Auto-generate Certificate:  ; 如果需要系统帮你自动更新,打钩
Expire Warnings:            ; 到期前登陆wordpress管理面板会有提示
Expire Warnings Trigger:    ; 提前多少天开始提示

点“保存更改”,就会遇到第一个麻烦了。

Could not create directory /PATH/letsencrypt/live. Please check your filesystem permissions.

解决办法

sudo chown -R bitnami:daemon letsencrypt
sudo find letsencrypt -type d -exec chmod 0775 {} \;
sudo find letsencrypt -type f -exec chmod 0664 {} \; 

再点“保存更改”,显示“设置已保存”,表示目录权限可以了,至少短期内,不会出现什么状况了。文末有可能出现状况的修复提示哦。

拖动页面到底部,有显示灰色按钮“Register Account”,如果上一步没问题,这一步也会顺利通过。

Could not create directory /PATH/htdocs/.well-known/acme-challenge. Please check your filesystem permissions.
sudo chown -R bitnami:daemon .well-known
sudo find .well-known -type d -exec chmod 0775 {} \;
sudo find .well-known -type f -exec chmod 0664 {} \; 

再次拖动页面到底部,有显示蓝色按钮“Generate Certificate”, 点它,提示:
Certificate generated for DOMAIN www.DOMAIN.

再再次拖动页面到底部,显示

Certificate: /..PATH../letsencrypt/live/DOMAIN/cert.pem
Certificate Chain: /..PATH../letsencrypt/live/DOMAIN/chain.pem
Certificate Full Chain: /..PATH../letsencrypt/live/DOMAIN/fullchain.pem
Private Key: /..PATH../letsencrypt/live/DOMAIN/private.pem

最后,配置一下主机配置文件,一般是 httpd.conf 文件,或者相关的 vhost.conf 文件

<VirtualHost *:443>
    ServerName DOMAIN
    ServerAlias www.DOMAIN
    DocumentRoot "/PATH"
    Include "blah.blah"

    SSLEngine on
    SSLCertificateFile "/PATH/letsencrypt/live/DOMAIN/fullchain.pem"
    SSLCertificateKeyFile "/PATH/letsencrypt/live/DOMAIN/private.pem"
</VirtualHost>

好了,重启主机,大功告成, 输入 https://DOMAIN 开心一下吧。

最后要提示几点
1,不要忘记修改Wordpress中“设置”-“常规”中的网站;
2,WP Encrypt插件使用了letsencrypt的免费SSL服务,但并非letsencrypt自家开发,所以会出现以下类似情况

Provided agreement URL [https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf] does not match current agreement URL [https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf]

就是说letsencrypt服务协议更新了,但是插件没来得及更新,这个时候,我们只需要修改一下插件文件,在186行下增加最新的服务协议即可。

File: wp-content/plugins/wp-encrypt/inc/WPENC/Core/Client.php
184:                private function __construct() {
185:                        // Newer licenses must come first.
186:                        $this->licenses = array(
187:                                '2017-11-15'    => 'https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf',
188:                                '2016-08-01'    => 'https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf',
189:                                '2015-07-27'    => 'https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf',
190:                        );
191:                }

Mysql LOG / upgrade mysql

171124 19:14:00 [Warning] IP address '85.93.20.74' could not be resolved: Temporary failure in name resolution

171122 8:05:47 [Warning] IP address '59.45.26.150' could not be resolved: Name or service not known

171123 1:39:28 [Warning] IP address '158.69.200.72' has been resolved to the host name '72.ip-158-69-200.net', which resembles IPv4-address itself.

171123 7:15:03 [Warning] IP address '218.26.109.246' has been resolved to the host name '246.109.26.218.internet.sx.cn', which resembles IPv4-address itself.

用GIT来备份网站

建立一个新的Repo

在本地
git init
git add .
git commit -m 'some word'
git remote add origin @bitbucket
git push -u origin master

解释AWS EC2主机中的CPU Credit Balance

总结:CPU Credit Balance 越高越好。

近期EC2主机很不稳定,着手调查原因,发现Monitor中CPU Credit Balance总是非常的高。

什么是CPU Credit Balance?
解释这个概念前,先要了解另外一个概念,EC2主机有几种类型,固定性能主机(Fixed Performance Instances),比如 M3, C3 、还有一种是 弹性性能主机(Burstable Performance Instances),比如T2. 这个在主机列表中的 Instant Type 可以看到自己的EC2类型。CPU Credit Balance 是为“弹性性能主机” 的一个指标。[Burstable实在不好翻译,有更好的翻译么?]

接下来,解释Balance,先解释CPU Credit。 一台EC2主机,不论分配给多少性能给你,都可以把已经分配的CPU运算能力看做1个单位。平均下来,主机每分钟使用的CPU计算能力平均值就是CPU Credit。 举个栗子,1分钟内平均0.25,那么你使用了0.25个CPU Credit。然后恭喜你,你攒下 0.75个 Credit 到 Balance。
在Monitor中的另外一个图表“CPU Credit Usage”就是说当前系统使用掉的运算能力,如果总是1,那表示你应该升级主机了,如果是1以下,这个时候,你的Balance就会逐渐增加,直到对应EC2主机的。
Screen Shot 2017-11-24 at 22.15.13.png

参考:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html#t2-instances-cpu-credits