升级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

文明6 完全新手上路历程

我的情况是,工作生活都离不开电脑,算不上电脑技术人员,但是多多少少懂得些基本电脑知识。很早以前倒是玩过一些盗版游戏,诸如红警,半条命之类。后来由于很多盗版游戏多数安装繁琐,还经常被各种套路,索性就几乎没有接触过大型PC游戏了。

相信许多人和我有类似的情况

关于Steam的基本认识
1,在Steam上购买的游戏,只要游戏支持多平台,则Steam上不需要重复购买。

初次点开游戏提示两种游戏模式, dx12 是什么?

参考
https://zhuanlan.zhihu.com/p/24885124

Wordpress 基础插件 Jetpack 上手

一,什么是Jetpack

二,Jetpack有什么用?
用处1:中央化的管理界面,同时管理多个wordpress站点,只要是wordpress就可以,不论在哪里托管的;
用处2:使用Android/IOS APP管理wordpress站点;

三,Jetpack 与 wordpress admin 管理员账号之间的逻辑关系
Jetpack 是一个简化的 wordpress admin,基本的内容发布,定制主题,安装插件都可以在 Jetpack中完成,但是涉及到更加复杂一些的操作,就需要打开 wordpress admin 进行处理了。

怎么从Jetpack到WP管理界面?

怎么从WP管理界面到Jetpack?

怎么在Jetpack中完成WP更新?

怎么更换Jetpack语言设置?

Jetpack 操作技巧
多个WP站点统计同页显示

四,Jetpack 打开速度等
五,Jetpack 套餐说明
六,Jetpack 问题说明
1,更新了 favicon 但是系统中不更新。
未完待续...

http://www.mauchiuan.com/2015/11/wordpress-jetpack-380.html
https://startpress.cc/post/jetpack-for-wordpress.html

Day 0

为自己了无生趣的人生,设置一个短期规划。

GIT懒人技巧二三则

每次push都要输入密码对于control+s控来说,确实受不了,那么可以通过以下在开发机上保存输入密码;

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
  • 可能需要sudo;
  • 密码为明文保存,安全级别较低

每次 push 和 pull 的时候都得输入 remote 和 repo 太烦人了,以下修改后,可以每次只 "git push" 和 "git pull" 了

编辑 .git/config

增加

[branch "master"]
  remote = origin
  merge = refs/heads/master

解决Fire TV上Kodi使用NFS链接群辉(Synology)无法打开目录

这个问题其实和Kodi以及Fire TV没啥关系,主要是群辉系统对NFS的配置存在问题。

步骤1:进入群辉管理界面;
步骤2:Control Panel -> Terminal & SNMP -> Enable SSH Service
步骤3:Control Panel -> Shared Folder -> 要NFS的文件夹 -> Edit -> NFS Permission -> Edit ->
Hostname or IP : *
Privilege : Read & Write
Squash : Map all user to admin
Security: sys
Enable asynchronous
Allow users to access mounted subfolders
选择 OK,再OK
步骤4:File Station -> 要NFS的文件件 -> 右键 -> Properties -> Permission
如果已有 Everyone 跳过此步骤,如没有,则Create
User or group: Everyone
在Permission中勾选Read,然后 OK
勾选Apply to this folder, sub-folders and files,然后OK
步骤5:使用SSH连接上群辉主机
步骤6:
sudo vi /etc/exports
找到需要nfs的目录所在行,将 insecure_locks 修改为 insecure
保存退出
步骤7:
sudo exportfs -ra

搞定收功~

在Fire TV上安装第三方应用,及offline解决方案

第一步:开发者模式
打开fire tv -> settings -> System -> Developer Option
打开 ADB debugging 和 Apps from Unknowing Sources 选项

第二步:Fire TV IP
打开fire tv -> settings -> System -> About -> Network -> IP Address

第三步:下载并安装 adbLink
adbLink官网

第四步:下载需要安装到Fire TV的应用apk文件到当前电脑

第五步:运行adb,远程安装应用到Fire TV
adb kill-server
adb start-server
adb connect [FireTV 的 IP地址]
adb install [下载的应用apk文件名]

如果遇到错误,可以再运行
adb devices
会看到adb连接到的设备是否在线,如遇到offline,可以尝试
打开fire tv -> setting -> System -> Developer Option -> ADB debugging
先关闭,之后再打开,在重新来过一遍 adb 即可。

第一步,第二步基于Fire OS 5.2.1.1(Sep 10,2016), 不同版本略有差别,根据您的实际情况略有出入。