解决 Debian Wheezy 使用 Nginx 1.6 官方包和 php-fpm 时返回空白页的问题 7

Nginx 1.6 终于迎来了 SPDY 3.1 以及其他激动人心的新特性, 然而, 如果从 Nginx 官方提供的 Debian 仓库安装 Nginx 1.6, 并配合 php-fpm 等 fastcgi 程序时, 却会遇到蛋疼的空白页问题. 之所以说这个问题蛋疼, 是因为页面上没有错误信息(完全空白), 而 Nginx 返回的状态码是 200, 就连 php-fpm 也没有写下任何日志 (这个可能是因为其他原因, 不过本猫暂时没有细查). 从故障现象上看很像是 fastcgi_params 的问题, 因为确认了 nginx 的权限等方面均无错, 而且如果按照网上说的增加 PATH_TRANSLATED 之类的变量却可以得到 “File not found.” 的返回. 最后, 本猫通过比较 Nginx 官方包和 Debian 提供的 Nginx 包中的 fastcgi_params 文件, 确认是因为 ...

让 PyMongo + MongoDB 2.6 继续支持空 $set 1

tl;dr 这只是一个丑陋的 monkey-patch 方法. 在 MongoDB 2.4 及以前版本中, db.foo.update({…}, {“$set”: {}}), 也即 “空 $set” 是可以正常执行的. 配合 upsert 等参数执行时可以有不同的方便用法. 但是升级到 MongoDB 2.6 以后, 由于引入了严格的参数检查, 试图进行空 $set 操作时, 会出现这样的错误: OperationFailure: '$set' is empty. You must specify a field like so: {$mod: {<field>: ...}}" 由于本猫不太想改依赖这个方法的代码逻辑(有点多…), 于是写了一个丑陋的 monkey patch 来 workaround 这个问题: # Monkey patch pymongo to allow empty ...

让 Pipelight 用中文 Locale 运行 – 解决非中文 Locale 下 Pipelight 插件中文显示为方框问题的简单方法 2

让 Pipelight 用中文 Locale 运行 - 解决非中文 Locale 下 Pipelight 插件中文显示为方框问题的简单方法
如果你和我一样, 系统语言喜欢用英语等非中文语言, 但是又需要 pipelight 的插件能正常显示中文(比如 flash player + AB 站之类的), 那么这个简单的方法可以让你两者兼得! 先上效果图: 方法其实很简单, 只是因为 pipelight 还在开发中, 所以没看到相关的介绍哈. 以下方法是 pipelight 开发者在 irc 中告诉我的, 特此感谢~! (如果你的 pipelight 安装的地方和我不一样, 别忘记相应修改路径哈) 1. 创建文件 /usr/local/bin/wine-pipelight-zh_cn-wrapper: #!/bin/sh LANG=zh_CN.utf8 /opt/wine-compholio/bin/wine "$@" 给它加上执行权限. 2. 复制 pipelight 配置文件以便编辑: (以 flash 为例) $ cp /usr/share/pipelight/configs/pipelight-flash ~/.config/ 3. 编辑 pipelight 配置文件: 找到 winePath = /opt/wine-compholio/bin/wine 修改为: ...

搜狗拼音 for Linux 新版发布 20

搜狗拼音 for Linux 新版发布
官网地址: http://pinyin.sogou.com/linux/ 本猫折腾了一下, 做了一个 PKGBUILD, Hack 了一下 curl 版本的问题, 目前自己测试可以用哈~ 坑爹之处在于, 这次放出的版本必须用内置的 qimpanel 界面! 也就是说, 经典 UI 和 kimpanel (包括 gnome-shell 那个 kimpanel 插件之类的) 都不能用, 否则你会看到一条超坑的提示: “请启用fcitx-qimpanel面板程序,以便更好的享受搜狗输入法!” 做好的包和完整的 src 包下载: http://pkgbuild.com/~fyan/staging/fcitx-sogoupinyin/ PKGBUILD: (偷懒的猫只做了 x86_64 的) # Maintainer: Jove Yu <yushijun110[AT]gmail.com> # Contributor: csslayer <wengxt[AT]gmail.com>   pkgname=fcitx-sogoupinyin pkgver=1.0.0.0011 pkgrel=1 pkgdesc="Sogou Pinyin for Linux" arch=('x86_64') url="http://code.google.com/p/fcitx" license=('custom') ...

尝鲜: 新的网络连接管理工具 systemd-networkd 21

在吃掉 udev 和谋划收编 dbus 后, systemd 又将它的魔爪伸向了网络管理方面. 虽然这已经是 systemd 209 时候的旧闻, 不过因为整个功能太过不完善 (被吐槽有超多 bug, 以及各种基本功能缺失) 以及没有文档, 上游一直没有大力推广. 本文仅就最为简单普通的有线网络连接介绍 systemd-networkd 的打开方式. (wifi 呀, ppp 呀, vpn 呀之类的复杂配置现在都不支持哦) (大部分信息翻译自 ArchWiki) 先介绍一些基本的信息: 配置文件存放在 /usr/lib/systemd/network (上游提供的配置), /run/systemd/network (运行时配置), 以及 /etc/systemd/network (本地配置). 其中 /etc/systemd/network 有着最高的优先级. 有三类配置文件: .network 文件: 给匹配到的设备应用一个网络配置 .netdev 文件: 给匹配到的环境创建一个虚拟的网络设备 .link 文件: 当一个网络设备出现时, udev 会寻找第一个匹配到的 .link 文件. 他们都遵循一些相同的规则: ...

添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态 / 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行 2

添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态 / 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行
首先解释下这个奇怪的需求哈: 1. 添加 Linux 原生游戏到 Wine Steam 里并记录游戏状态: 可以让 Steam 好友知道自己在玩什么, 而同时又可以避免用 Wine 跑相应游戏带来的性能损失. 如果直接用 Wine 自带的 start.exe 启动 Linux 游戏, 因为 start.exe 会在启动游戏后直接退出 (/wait 参数对 Linux 进程无效), 因此游戏时 Steam 状态会显示为不在游戏中, 这样我们的目的就达不到了… 2. 让 Wine Steam 里的不同游戏用不同的语言(环境变量)运行: Wine 对 CJK 字符编码的修正是和语言(Locale)环境变量有关的, 比如 Touhou 用 ja_JP 环境跑表现一切正常, 而在 zh_CN 或者 en_US 下标题栏均是不同程度的乱码 (其它程序有更严重的问题, 包括全部字符变成问号等). 但是用 Steam ...

开源图形驱动也可以流畅 Wine “原生的” DX9! 7

想在 Linux 里 Wine 点什么 Direct X 游戏? 买 A 卡啦? Intel 集显啦? 用 nouveau 开源驱动啦? 哈哈哈哈哈哈哈哈(大雾 其实我们改改 Gallium3D (Mesa) 再改改 Wine 的话, Direct X 9 还是可以跑得刷刷的快的哦~! (虽然这个其实不是新闻了) 首先解释一下原理, Gallium3D 拥有一种被称为 “State Tracker” 的机制, 下面的介绍翻译自维基百科: Gallium3D 提供了一个统一的 API, 将标准的硬件功能暴露出来, 比如现代硬件中的着色器单元. 因此, 如 OpenGL 1.x/2.x, OpenGL 3.x, OpenVG, GPGPU 平台, 或者甚至 Direct3D (存在于 Wine 兼容层中) 都将只需要一个后端 ...

Pipelight – 让 Linux 原生 Chromium/Chrome 无缝支持 ActiveX 控件 (看! 网银!) 24

Pipelight - 让 Linux 原生 Chromium/Chrome 无缝支持 ActiveX 控件 (看! 网银!)
工行网银, Silverlight, 支付宝控件, 放开那个 Windows 虚拟机, 让 Wine 上吧~ 无图无真相: 基本的原理是, 利用 Chrome 里已有的 npactivex (ActiveX for Chrome) 扩展, 配合 pipelight 提供的 npactivex NPAPI 插件, 将 ActiveX 控件本身用 wine 执行, 并且无缝地嵌入 Chrome 网页中. 因为此功能依然在活跃开发中 (今年 FOSDEM 2014 的一个碰撞产生的火花神马的), 稳定版本的 pipelight 暂时没有加入此功能. 大家如果想尝鲜的话, 我下面介绍一下 Arch Linux 里的安装测试方法 (暂时只针对 64 位测试用户哈): 2014/2/27 更新: 因为 pipelight 0.2.5 已经添加了 ...

来尝鲜 KDBus 吧! 16

虽然这玩意现在还不被认为稳定, 而且有些东西用它之后工作不正常, 但是我还是想介绍一下 - 怎么说不折腾不舒服是吧! 首先介绍下 kdbus (及相关的用户态工具), 这玩意是 Greg KH (Linux 内核稳定版本负责人, 主要负责 kdbus 部分) 和 Lennart Poettering (混乱邪恶的 Avahi, Pulseaudio, Systemd 作者, 主要负责 libsystemd-bus 部分) 等大神写的, 用来在内核态实现一个 dbus 的实现, 而用户空间的 dbus-daemon (包括 session dbus) 则交由 libsystemd-bus 来提供(兼容)接口. 下面引用的介绍来自Solidot: kdbus支持内核消息过滤、提供了可靠的次序保证,支持传送文件描述符,它被认为比用户空间的D-Bus能提供更强的安全性和更好的性能。 不过对于咱用户来说, 关心的主要问题当然是更好的性能啦, 根据一篇 Gentoo 的如何玩 kdbus 的介绍, 咱能感觉到的变化有: dbus 本身更快了! 机器启动也更快了! 下面就是 Arch 里测试的步骤啦, ...

将 Gitlab 迁移到新服务器 20

今天把一台服务器上的 Gitlab 换了个地儿, 记录一下遇到的大大小小的各种坑们: 原服务器系统是 Ubuntu, 而新的是 Debian, 各种库版本不一样(从 glibc 开始), 于是 Ruby 的 vender 文件夹显然不能留, 各种清空重新跑 bundle. Gitlab 用到了 Redis, 虽然主要的配置说明里没有用力提及. 因此搬的时候连 Redis 的数据库一起搬过去. (当然主力数据库比如 MySQL 也必须不能忘记啦) /home/git/.ssh/authorized/keys 保存了能用 git 帐号登陆服务器的所有小伙伴的 SSH PubKey 们, 需要一起搬过来 gitlab-shell 需要重新安装以走进科学 (只需要跑它那个 bin/install) initscript 脚本和 logrotate 配置都要重新安装不能忘记的说 nginx 需要访问 gitlab 的 socket, 而 rsync 过来的目录里因为 exclude 掉了 gitlab/tmp/ ...
QR Code Business Card