Category Archives: IT

IT related

在AWS EC2 Amazon Linux 2 上安装WordPress

首先还是要赞一下AWS,虽然是海外版,但中文文档还是准备得很不错的,而且基本上都是可用的。

安装步骤大概分以下几步:

  • 1、 EC2上创建Amazon Linux 2实例

找一个邮件地址注册AWS的账号,注意只有海外版AWS才能免费用一年。创建实例的时候选Amazon Linux 2 AMI,HTTP和HTTPS端口都打开,硬盘直接30G即可。实例启动之后申请一个Elastic IP并绑定到该实例,然后去域名提供商那里改DNS指向该IP。AWS的ROUTE 53也可以做域名解析,但是是收费的。

  • 2、安装 LAMP

基本上安装官方文档来即可:在 Amazon Linux 2 上安装 LAMP。phpMyAdmin 我没装。

  • 3、Apache配置域名

提前给Apache配置好域名,否则生成证书的时候会报错。

cd /etc/httpd/conf.d
sudo vi yourDomainName.conf

添加下面内容:

<VirtualHost *:80>
    ServerName yourDomainName.com
    DocumentRoot /var/www/html
    ServerAlias www.yourDomainName.com
    ErrorLog /var/www/error.log
    CustomLog /var/www/requests.log combined
</VirtualHost>

保存之后:

    sudo systemctl httpd restart  
  • 4、配置HTTPS和证书

官方文档:在 Amazon Linux 2 上配置 SSL/TLS。就选用文档里说的免费证书: Let’s Encrypt 项目,用Certbot 自动创建。但是Certbot手册 里让你选择OS的时候根本没有Amazon Linux 2可选,勉强选了CentOS之后按照CentOS的方式安装snapd和Certbot,但是出错了,后来找到这个:albuild-snap,里面提供了Amazon Linux 2需要的RPM包。但最后运行Cerbot的时候还是报错了:

An error occurred while fetching Certbot snap plugins: your version of snapd is outdated.
Please run "sudo snap install core; sudo snap refresh core" in your terminal and try again.
An unexpected error occurred:
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://snapd/v2/connections?snap=certbot&interface=content
意思是snapd版本太低,但实际上是最新的。官方找到一个TICKET:Error in aws ec2 instances #8377,往下看时有点失望,有一个人好像是Certbot开发人员,说暂时还不支持Amazon Linux 2,然后就看到有别人说他成功了,虽然他是nginx,然后也不妨一试,把nginx改成apache:
cd /home/ec2-user/
wget -O epel.rpm –nv https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y ./epel.rpm
sudo yum install python2-certbot-apache.noarch
sudo certbot --apache

然后一直输入需要的信息就可以了,证书自动安装成功。

  • 5、安装WordPress
这一步也按照官方文档:在 Amazon Linux 2 上托管 WordPress 博客 一步一步操作即可。如果是像我这样恢复以前的博客,那么需要通过WinSCP把原来的数据库文件和图片上传,而且导入数据的时候要注意新旧数据库的名字是不是一致。最后打开博客的时候页面空白,登录到管理页面发现是原来使用的Theme没有安装,重新安装一下即可。

Blog又又回来了

上次恢复之后没多久,发现我买的三年还是五年的Bluehost VPS到期了,想了一下,没有续费也没有重新购买,大概理由有几个:

一是莫名其妙中毒,导致WEB文件全部损坏。

二是找客服太麻烦,响应也不及时。上次让客服帮我恢复文件,再三确认过的,人说已经创建了TICKET有人会去处理的,结果等我过完年回来,啥也没发生,而且他们只保留一个月的备份,所以再也找不回来了。我只能从本地找到一个2017年的备份,恢复之后2017年以后的文章里的图片暂时都看不到,需要重新上传。

三就是Shared Host没有权限太麻烦,干啥都不行。

四就是从几年前开始,Bluehost修改了SSH配置,SSH不能当代理了。

所以到期之后Blog下线了一段时间,最近媳妇儿发现我手机上有AWS的账单,问是啥东西,我说原来公司在AWS服务器架了一个网站,后来网站不用了那服务器现在就当SSH代理用,她说那也太贵了吧,一个月二十刀呢,你就不能搞个不要钱的么?想想也是,那就白嫖一下AWS吧,找了一个AWS官方的文档,花了两个下午都搞定了,具体过程回头专门写一篇文章来说,目前看来一切都好,就看EC2这免费流量够不够吧。至于一年以后,再说吧,有时间重新搭一个继续白嫖,没时间那就付费呗,这应该也是AWS所期望的吧,:)。

Symantec Endpoint Protection(SEP) 更新失败

电脑上防毒软件一直用的都是SEP 14(诺顿企业版),最近一直报病毒定义过期,每次启动都蹦出来提示,也挺烦人了。运行Live Update看了一下,有时候连不上服务器,有时候连上了下载失败。于是直接去这里下载离线病毒定义,结果安装失败,根据提示看错误日志,发现:

The product corresponding to this entry in iuconfig.xml is not installed on the system.

搜了一下,也没啥确定的建议,一个是下载诊断工具SymDiag,然而诊断完也没发现啥毛病;另一个就是下载重装了(最笨也是最后的办法了),结果一看下载安装包也挺麻烦,还得注册啥的。后来仔细一想,以前Live Update都自动运行得好好的,最近出问题是不是因为连的服务器有问题?结果一搜果然是这问题,DNS解析出来的服务器在香港,链路有问题,hosts文件直接加上

152.195.12.171 liveupdate.symantecliveupdate.com

然后更新瞬间就完成了。

Dell XPS 9370接TB15扩展坞后USB键盘鼠标卡顿

买了新电脑后天天带着上下班,一个单肩包里还装着两台相机,背着走实在不可能,估计立马得要半边瘫,基本上就是装车里。除了买个双肩包之外也想着怎么减重,正好觉得机器USB口太少,最后决定买个带电源的扩展坞放单位,自带的电源放家里,这样就不用每天带电源了。

某宝上有价格不错的原装扩展坞,昨天到货之后装起来,接上显示器键盘鼠标,一切正常。今天早上想起卖家说了还要装驱动,于是按照给的链接装了四个TB15相关的驱动,结果悲剧了,USB键盘鼠标卡顿,笔记本键盘和触摸板就没问题,重新开关机,插拔USB口都不管用,卸掉驱动也不行,再重新安装还是不行。卖家建议重装系统,拒绝。搜了一下,发现遇到卡顿的人不少,有的甚至连笔记本键盘触摸板都卡顿。不过显然是一软件问题,和硬件无关。想起来装驱动前更新了1.8.1版本的BIOS,估计是新的BIOS和老的驱动不兼容造成的。当时也没看原来驱动版本是多少,但是看了一下,1.7.3的BIOS也有卡顿的,所以直接下了一个1.6.3的BIOS, 更新之后就好了。但是诡异的是如果我删掉那几个驱动程序还是会有卡顿,然而我最早的时候明明什么都不装就可以用,说明我原来的BIOS是1.7.3的?不过不想再试了。

所以结论就是能用就行,没事儿别瞎折腾。

20190320补充:早上来了之后开机,鼠标键盘彻底没反应,删掉那几个驱动重启之后正常了。不知道下次会怎么样。

免Root(设备管理员模式)使用冰箱IceBox

PS: 这篇也在草稿箱好久了,今天发现IceBox有更新,所以才想起来。。。

拿到Note8的第一件事儿就是解锁准备root,结果却发现设备要激活并连续登陆华为云服务14天才可以(据说需要每天退出再登录一下才保险,要不然有可能到了14天还不行)。。。看着这么多APP在后台耗电好流量还时不时弹出个消息,真是不爽啊,结果一看:

冰箱IceBox (google play链接,需要翻墙)的说明,发现不root也是可以的:

如果您的设备已经 root,可以直接安装

如果您已经设置 Island App 为「上帝模式」,也可直接使用

如果没有 root,则需经过较复杂配置,请务必先阅读完整说明教程

免 Root 设置教程: http://t.cn/RWrLWOC

大概步骤如下:

##冰箱免 Root(设备管理员模式)使用配置方法

0. 首先确保您的手机 Android 版本大于等于 5.0,并且您已经知道如何操作 adb 命令。
1. 进入手机「设置 – 帐户」,删除 #所有# 的帐户,包括你的 Google 帐户(之后可以再登录回来)。
2. 如果您之前设置过多用户或手机自带访客模式、应用双开等,也需要一并关闭或删除(之后可以打开)。
3. 在电脑上执行(手机终端模拟器不行) adb shell dpm set-device-owner com.catchingnow.icebox/.receiver.DPMReceiver
4. 如果显示 Success 之类的字样,那么重启您的手机。之后即可打开冰箱使用,也可以把之前删除的帐号加回来了。

其实也没多复杂,只要在第3步之前打开USB调试模式(设置-关于手机里头连续点击版本号七次就可以打开开发者选项,然后从开发者选项里头打开USB调试)然后插上USB线就可以了,具体关于ADB可以看这篇Android Debug Bridge (adb)

然后用起来就比较方便了,看到什么不顺眼的就扔进去,俺反正连Google Play Service和Play Store都冻结了,偶尔想起来再开VPN更新APP。但是有些依赖于Google Play Service的APP可能就有问题的,比如eBay的notification就没了,不过还好,至少他还会提示需要Google Play Service,像Garmin Connect,Google Play下载的版本每次一进入跑步详情的页面(带地图)就直接挂掉了,也没有提示,一闪就回到了原来的页面,从华为市场下载的就没问题,因为他用的是百度地图。最后还是要鄙视下Garmin,Garmin Connect链接MyFitnessPal账户的功能大半年前就坏掉了,到现在也没修复,APP上也没去掉这功能,这绝对不是一个技术问题。。。据说是因为Garmin在中国建了个数据中心,把所有中国用户的数据都搬到国内,然后MyFitnessPal的服务还在国外,所以就不行了。。。所以理论上只要用Google Play下载一个Connect,然后重新注册一个美国的帐号应该是可以链接到MyFitnessPal,不过我也懒得折腾了。

还有就是有时候冻结APP的时候会弹出一个提示”XXX卸载后,手机仍有残留目录和文件,是否立即删除”,最好选”暂不删除”,要不然下次APP使用的时候可能会有问题,然而我没找到什么地方来关闭这个提示。。。发现这个提示是华为手机管家弹出的,把它冻结就可以了。

SSH连接时报key exchange错误

几个月前(我这是有多懒!)有一天早上一开机,发现Bitvise SSH客户端连不上服务器了,报了一个KEX错误:

09:41:56.381 Connecting to SSH2 server shelu.net:22.
09:41:56.751 Connected.
09:41:56.761 Starting first key exchange.
09:41:57.942 Server version string: SSH-2.0-OpenSSH_5.3
09:41:57.946 Session terminated on client’s behalf:
SSH_DISCONNECT_KEY_EXCHANGE_FAILED
failed to negotiate key exchange algorithm

把客户端里头所有的key exchange全选上了,也不管事儿。PuTTY也连不上,直接就connection reset了。买这个共享服务器除了博客,还有一个主要作用就是当梯子了,毕竟VPN容易被封,而且PC上还是Chrome加SwithySharp方便些,访问国内网站速度也快。于是找Bluehost客服,客服给了一篇文档:SSH Access – Generating a Public/Private Key,大概意思是怎么通过一个key来登录SSH,PuTTY试了一下,不行,说bad connection;而且觉得也不靠谱,毕竟Bitvise里头没有这个选项。于是Google一下错误信息,SSH连接建立的时候服务器和客户端要沟通一下支持的加密算法,最后选一种双方都支持的,应该是服务器升级了SSH服务之后把很多的Key Exchange算法给屏蔽了,而我的客户端不支持他的算法。于是再找客服,说了这个问题,结果人就说我这儿好着呢,能连上,那不是我们的问题。我说我这儿有一段代码(修改SSHD配置并重启),你在服务器上执行一下呗。。。果断被拒绝,并趁机推销:买个dedicated server吧,这样你就有root权限想干嘛就干嘛。。。果断拒绝。

既然服务器端解决不了问题,那就只能找找自己的问题了,先升级一下Bitvise,这下错误信息就很能说明问题了:

The SSH2 session has terminated with error. Reason: Error class: LocalSshDisconn, code: KeyExchangeFailed, message: FlowSshTransport: no mutually supported key exchange algorithm. Local list: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1. Remote list: diffie-hellman-group-exchange-sha256.

选中diffie-hellman-group-exchange-sha256后顺利连上。

下载了最新的PuTTY之后还是不行,还是bad connection,查了一下,PuTTY是支持diffie-hellman-group-exchange-sha256的(包含在Diffie-Hellman group exchange里头)。想起来最早的时候PuTTY是connection reset,那可能是前面配private key的时候弄坏了,重新配了一下就可以了。

PS:最近试了一下AWS,虽然我只launch了一个Windows instance, 但是如果来一个centos之类的话用那个22端口应该也是可以达到梯子的效果的,AWS可以免费用12个月。

Thinkspad T400连接缤特力M1100蓝牙耳机

搞了一个蓝牙耳机,这样我的大手机打电话就方便很多了,有一天想把它连在笔记本上,这样Skype打个电话也方便,这耳机本来就支持连接两个手机的。

于是按说明书上写的,按住通话键直到红绿灯闪烁,然后从电脑上点添加蓝牙设备,找到之后成功添加,可是,为啥没声音呢。。。于是网上找答案。

开始以为是电脑不支持A2DP,后来看应该是支持的,据说是驱动有问题,需要Broadcom的蓝牙驱动。最后从联想官网找到这个: ThinkPad Bluetooth with Enhanced Data Rate II 软件(Windows 7/Vista),下载下来一看,结果我早就安装了。。。汗,那就是设置问题了。

于是开始查找,先看蓝牙设备里头的PLT_M1100属性,Services里头有一个Audio Sink没选,直接勾上。还是没声音,再右键一点右下角的声音图标,出来一个Playback devices,应该就是这个了,驱动没问题,只是没选择用;进去之后直接把Bluetooth Hands-free audio设成默认的设备就可以了。Recording设备也选择蓝牙,这样就可以了。

Chinese Word Count插件导致WordPress白屏无法访问

每天早上开机之后看到WordPress提示有插件更新,一般也不仔细看,直接就点批量更新了。昨天早上好像也有两个插件可更新,点了之后就没再细看。后来下午在客户端上发布完中午拍的照片,结果网站无法访问了,直接。看了一下后台的PHP日志,有报错:

[21-Apr-2014 05:18:35 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /home3/shelunet/public_html/wp-includes/pluggable.php on line 1317

看样子是内存不够了,加了内存,结果问题还在;以为是刚才上传的那篇文章有什么问题,于是客户端删除,结果还是不行,看来XMLPRC接口没问题,UI访问有问题。

于是找HostMonster的客服,说wordpress无法访问了,他说可能是Theme或者Plugin的问题,帮我弄了一下,结果就可以了。俺当然要问什么情况,后来他就给了个链接:

WordPress White Screen of Death

看了一下,再想想日志里头那个pluggable.php,应该就是插件的问题,早上升级过的,后来没注意,以为是上传的文章有问题。链接里头是通过cPanel操作的,我是直接在Terminal上,过程也有点不一致,他是要把plugins目录移走,但是似乎光移走不行,还得再放回去,总之就是把那个目录挪动一下就行。然后wordpress就可以登录了,到Plugins页面一看,所有的插件都Disabled了,一个一个Active,很快就发现是这个Chinese Word Count引起的问题,一看版本,14.4.19,应该就是早上更新过,所以出问题了。这个插件如果在浏览器上写文章还有点用处,现在我都用客户端,也没什么意义了,索性不用了。

Skype和Windows Live Messenger的整合

有个以前的同事在Skype上对我说:你怎么还Skype和MSN Messenger一起登录呢?
我:我只开了skype啊。。。
同事:我这显示有两个你,一个是Messenger另一个是Skype。
我:我使用msn帐号登录skype的。。。
同事:登录不是有个合并的提示么
我:我已经合并了啊。。。不对,你也一样。。。
同事:啊?我也有两个呀?
我: 恩,没错
同事:啊……看来不智能……
我:恩,估计整合得不完全
同事:我都已经合并了,就应该知道那两个账号是一个人的。
我:其实就是把你当两个帐号登录。。。
同事:估计是这样。
我:其实只是把两个客户端搞成一个了,服务端没怎么改

大概看了一下,虽然说Messenger已经停止服务了,但是服务器没有动,只是除大陆以外的用户不让用messenger登录了,而让Skype分别去登录Skype和Messenger(Skype还支持facebook账户登录,这种多账户的IM客户端其实很常见,比如说MirandaIM),但是各个服务之间是互相独立的,不能交互,比如不能够把一个Skype用户和一个Messenger用户加到同一个群聊里头。所以这里头所谓的整合其实名不副实,只是换了个皮而已。正在的整合是要把messenger的数据都导入到Skype里头,而且对于已经合并的用户要做去重处理,不过这样的工作量可能就会比较大了。

关于整合,可以看看对面的这个介绍,我觉得挺全的。

PS:下载Skype的时候建议用原版的,不要用国内的。以前那个tom-skype里头嵌了好多乱七八糟的东西,现在虽然换了运营商了,但是估计也差不多。国外版下载链接