PHP 7找回MySQL扩展解决WordPress问题

PHP 7 使用 MySQL 的问题 最近将 VPS 上的博客程序都迁移到 Bluemix 容器上之后,运行起来倒还算稳定,前两天手贱将 Bluemix 系统上的 LNMP 环境更新到了 1.3 版本,顺带地把 PHP 也更新到 7.0.7 版本了,不过更新完成之后访问博客就碰到了 WordPress 报错: 这才想起来 PHP 7 已经完全移除了 MySQL 扩展支持,通过 phpinfo 也能看到老的 mysql_ 系列的函数都不能使用了,一般建议使用新的 PHP mysqli 或者 pdo 扩展进行替换。 我的博客程序使用的还是 WordPress 3.6 版本,自然不支持 PHP 7, […]

暂时迁移被爬虫扒得内存不足的VPS

VPS 内存不足问题 最近一两个月我在查看 VPS 运行日志的时候,经常发现 kernel 日志中会有 Out of memory 内存不足报错,而且报错基本都是 php-fpm 引起的: 从日志里可以看到每个 php-fpm 进程的 rss 内存占用都接近 30 MB,我之前就已经将 LNMP 环境里的 php-fpm.conf 配置文件中的 pm.max_children 改为 8,这样如果碰到同时请求数较多的情况,php-fpm 就可能会占用 240 MB 内存。再加上 MySQL、BTSync 等其它程序也要占用内存,我这个在 HighSpeedWeb 上购买的 256 MB 内存的 […]

使用lunr.js为Wiki系统增加全文搜索支持

搜索 Wiki 知识库的问题 今年早些时候我捣鼓了一个基于 Wikitten 和 MDwiki 的 个人知识库系统,我一般使用基于 PHP Wikitten 的 动态 Wiki 知识库,本地预览或者测试时可以用基于 MDwiki 的 静态 Wiki 知识库,两个配合使用并通过 BitTorrent Sync 与 VPS 进行数据同步,这样需要更新时也是很方便的。 我在实际使用中还是发现 Wikitten 的搜索功能比较薄弱,只支持通过文档或目录名称进行搜索(Wikitten 显示时是直接遍历 Wiki 文档的,出于效率考虑也不好直接进行目录遍历全文搜索);MDwiki 则由于是纯静态实现,根本 […]

Android使用Shell命令配合Tasker控制手机

Secure Settings 对比 Shell 命令 去年我写过一篇 Android 使用 Trigger + Tasker 设定 NFC 标签 的文章,主要介绍怎么使用 Tasker 和 Trigger App 设定 Android 手机刷 NFC 标签时执行指定的操作。该文章中对于手机的 飞行模式 / GPS / NFC 等功能的控制操作都是通过 Secure Settings App 实现的。 不过可惜的是我的华硕 Zenfone2 手机 ROM 升级到 6.0 版本之后,Secure Settings App 就有很多功能不能正常工作了,而且由于开发者也基本不再维护该 App 也有差 […]

Win10 Bash下使用KeePass KeeAgent插件

Win10 Bash 使用 KeeAgent 问题 出于管理不同服务器以及自己几个 VPS 的需要,我都会把这些 SSH 密钥保存到自己的 KeePass 密码数据库中,KeePass 软件安装了 KeeAgent 插件之后,可以在用户需要登录服务器时方便地自动加载 SSH 密钥。KeeAgent 同时支持 PuTTY 和 OpenSSH 格式的私钥,而且支持 Windows / Linux / Mac 系统。我在平时使用中无论用 Windows 下的 PuTTY / SecureCRT / XShell 软件还是 Linux 下用 ssh 命令都能愉快的自动加载 KeeAgent 保存的 S […]

Bluemix容器系统更新udev的问题

Bluemix 更新 udev 的问题 最近在 IBM Bluemix 管理控制台中查看容器状态时发现一直会报 策略违例 问题,进入容器详细信息界面,可以看到漏洞顾问程序扫描到的容器系统中存在的违例情况,主要是系统中某些软件包版本比较老,Bluemix 建议进行安全更新升级: 由于我的 Bluemix 容器使用的是 Ubuntu 14.04 系统,起初想着直接运行 apt-get 命令将系统中的软件包都进行升级应该就差不多可以搞定了: 但是在升级 udev 软件包的时候发现能正确下载软件包但升级失败,提示 /etc/modprobe.d 内核模块配置目录无法正常写入: 我如果跳过升级 udev […]

简单PHP实现Pocket抓取知乎专栏文章

Pocket 抓取知乎专栏的问题 Pocket 是我平时用的比较多的 稍后阅读 类网络服务,其收集抓取网上文章正文的效果比较好,去除页面广告等无关内容还算给力,支持标记和搜索,同步速度也还可以,免费会员限制也挺少,所以看到一些来不及马上阅读消化的文章我都会先加到 Pocket 队列里,有空时再去查看归档。 只是由于目前抓取网页正文原理的限制,Pocket 对现在越来越多的 AJAX 动态网页基本上都支持的不太好,比较典型的就是知乎专栏文章了。知乎专栏之前曾经是支持 Pocket 直接抓取的,改为 AJAX 加载数据之后,发送文章到 Pocket 之后就是这种效果: Pocket 正常抓取的文章 […]

Chromebook上使用Zed进行远程编辑

之前我写过一篇文章介绍 Chromebook 上比较强大的 Zed 编辑器 的上手体验,目前主要用于编辑自己的 MDwiki 知识库 目录。不过本地文件编辑完之后需要用 BTSync 之类的工具同步到 VPS 上,因此还是想把 Zed 的远程编辑功能用起来,而且配合 Zed 自带的 Web Server 功能还能直接本地查看 MDwiki 知识库。 Zed 目前支持 zedrem 和 zedd 这两种远程编辑方式,下面分别介绍一下另,另外也说明了如何使用 Zed 自带的 Web Server。 zedrem 远程编辑 zedrem 是用 Go 语言编写的工具,按照 Zed 官网的介绍一条命令就 […]

Linux下使用tcpkill工具重置NFS连接

有些时候在 Linux 系统中使用 NFS 挂载远程共享(使用默认的 TCP 方式)之后,偶尔会因为网络异常出现 NFS 连接出错的问题,这种情况下使用任何 ls 或者 df 等等常用的命令对 NFS 挂载目录进行简单的查看操作都可能卡顿几十秒乃至几分钟的时间。 此时如果在别的 Linux 客户机系统上又是可以正常访问 NFS 共享的,而 NFS 服务器端考虑到有多个客户机正在使用不方便直接重启服务,一般只能等待 NFS 挂载连接恢复正常或者重启客户端系统,这样还是很麻烦的,为此我专门找了个使用 tcpkill 命令重置 NFS 连接的方法分享给大家。 tcpkill 命令属于 Dsniff […]

在Linux容器中使用ZeroTier P2P VPN

关于 ZeroTier P2P VPN P2P VPN 和我们平常使用的 PPTP、OpenVPN 等 VPN 的不同之处在于其只负责将两个或多个主机通过点对点的方式进行连接,不需要中心服务器支持,多个主机之间通过 STUN 打洞或者 TURN 中继等方式进行连接,比较适合不同网络间的多个主机进行直接连接,不像 PPTP 这种在国内用的最多的就是拿来爬墙的。 目前使用的比较多的包括 n2n、tinc 和本文要介绍的 ZeroTier 等几种免费开源的 P2P VPN 软件。 n2n 由于已经没人继续开发支持了所以不予考虑,我在对比了 tinc 和 ZeroTier 之后发现 ZeroTier […]