Posted on 30-07-2012
Filed Under (技术) by waterlin

在新公司全新安装的 Windows7 系统下,Emacs 无法用快捷键 M-w 来复制东西,但是用命令 M-x copy-region-as-kill 却可以,C-W 也可以剪切内容。

这是怎么回事呢?这样的问题,估计多半是由于热键冲突造成的,Emacs 的快捷键被其它软件的高优先级热键给拦截了。

仔细找了找,原来是 QQ 语音输入的快捷键被设置成了 Alt + W,难怪我无法使用 M-w 这个快捷键。把 QQ 语音输入的快捷键换成其它的热键,从而就解决了这个问题。

虽然看起来一个小小的热键冲突问题,却困惑了我好几天,找死我了!不知道有没有这样的软件,可以查看 Windows 所有的热键,或者说,在这个软件上使用一些热键,它能告诉你哪个软件会响应这个热键?

哪个软件达人说说,有没有这样的软件,或者做一个出来吧。我觉得这个软件,很多情况下还是有一点点用处的,也会有一定市场的。

(8) Comments    Read More   
Posted on 24-07-2012
Filed Under (技术) by waterlin

如果你的 WordPress 博客都是原创文章,相像你一定需要一个版权声明,来提醒转载你文章的朋友注明出处、保障你的权利等。

你直接在模板文件里修改添加版本声明,但是这种方法太过麻烦,并且当你更换模板后,依然需要重新修改新的模板。我们完全可以通过使用插件来完成这个需求。

插件1:Blog Copyright

Blog Copyright 这个插件,可以在你的 WordPress 博客页脚添加一个版权声明。当然,这是按默认配置来做,你也可以按照配置说明,在你博客模板的任意地方添加这个声明,当然,这需要一定的”功力”。

这个插件的优点是,可配置性高,缺点是最好针对当前博客作为整站声明来使用。针对单独的文章添加版权声明(比如说在文章的尾部添加版权声明),使用这个插件并不是特别方便。

插件2:Post Copyright Plugin

如果你需要的是把版本声明显示在每一篇文章的结尾,怎么办?

可以使用这个插件:Post Copyright Plugin,该插件的使用很简单,但是功能过于简单,连版权声明的内容你都没办法控制。

所以,使用这个插件你需要做好在代码里进行风格定制与修改的准备。

插件3:Copyrighted Post

以上两个插件都有一些 Geek 的本性在里面,我们需要使用一个更加自动化的东西,谁不想更方便呢?

Copyrighted Post 可以实现上述功能,并且配置比较简单:在管理后台,通过菜单 Settings ==> Reading 来设置这个插件针对当前博客的设置。

如果你不喜欢默认风格,也可以通过管理员控制面板来编辑这个插件,从而修改该插件的默认风格,比如添加居中标记等。

或者如果你对 WordPress 文件结构熟悉的话,可以直接编译下面这个文件:

/wp-content/plugins/wp-copyrighted-post/wp-copyrighted-post.php

如果需要把你的版权声明文字东西置中,则需要把下述代码修改一下:

if($outIt) $content .= "\n<p style='text-align:left'>&copy; $cpDate, $owner. $srString $srStringEx</p>";

修改为:

if($outIt) $content .= "\n<p style='text-align:center'>&copy; $cpDate, $owner. $srString $srStringEx</p>";

当然,你可以对上述 <p> 里的 CSS 代码做任意修改,从而满足你的任意修改作用。

结论

我喜欢 Copyrighted Post 这个插件,你呢?

(0) Comments    Read More   
Posted on 22-07-2012
Filed Under (技术) by waterlin

FastCGI 用来作为 Web 服务器的设计方案,有着很多优点。要搭建这样一个服务,有一个最简单的办法来搭建,可以使用 Apache 以及 mod_fcgid 模块来实现。

鉴于网上有关 FastCGI 的中文资料(尤其是实战资料)比较少,下面就用 Ubuntu 11.04 及 Apache2.2 为例,说明一下 FastCGI 服务器配置的基本流程。

Apache 及 mod_fcgid 模块的配置

首先,正确安装 Apache,这个直接从命令行安装就可以了:

$ sudo apt-get install apache2

然后,再安装 mod_fcgid 模块,同样可以直接从命令行安装:

$ sudo apt-get install libfcgi-dev

安装好 Apache 及 mod_fcgid 模块以后,再到配置文件

/etc/apache2/sites-enabled/000-default

里配置一下有关 mod_fcgid 的选项(注意,根据 Apache 版本及安装方式不同,配置文件所在路径会有所不同,详细情况请查阅 Apache 手册),配置示例如下所示:

<Directory /var/www/>
SetHandler fcgid-script
Options +ExecCGI

# Customize the next two directives for your requirements.
Order allow,deny
Allow from all
</Directory>

这里配置的目录,是指把后面编译好的 FastCGI 程序放到目录 /var/www/ 下,当然,你也可以选择任意一个 Apache 有权限运行的目录。

安装 fcig 开发库

在 Linux 下,需要安装库 libfcgi 才能在 C, C++, Java, Perl 等程序下开发 FastCGI 功能,这样才能在 C/C++ 程序里正确使用 FastCGI,fcgi 库把 FastCGI 封装好了,你不需要关注 FastCGI 协议的任何细节。可以使用下面的命令来安装:

$ sudo apt-get install libfcgi-dev

在你的工作目录里新建一个 .c 文件,并输入下面这段代码,并保证可以正确编译:

#include "fcgi_stdio.h"
#include <stdlib.h>

void main(void)
{
    int count = 0;
    while(FCGI_Accept() >= 0)
        printf("Content-type: text/html\r\n"
               "\r\n"
               "<title>FastCGI Hello!</title>"
               "<h1>FastCGI Hello!</h1>"
               "Request number %d running on host <i>%s</i>\n",
                ++count, getenv("SERVER_NAME"));
}

使用下面的命令编译上述代码:

$ gcc tiny-fcgi.c -o tiny-fcgi -lfcgi

编译好的 FastCGI 程序应该可以直接运行(是的,就像普通可执行程序一样),会输出相关的结果,你可以试试。

然后把编译出来的文件,拷贝到上面 Apache 设置的 FastCGI 程序可执行目录里:

$ cp tiny-fcgi /var/www/

访问你的 FastCGI 服务

重启 Apache 服务:

$ sudo /usr/sbin/apachectl restart

然后在浏览器里输入类似下面的网址,就可以访问这个 FastCGI 提供的服务了:

http://127.0.0.1/tiny-fcgi

小结

上述整体配置还算很简单,以后再介绍一些 FastCGI 高级使用技巧。FastCGI 这种比较古老的协议,特别适合用来设计需要做分布式计算、用 C 来实现计算代码的场景。服务器与计算引擎的分开,能很方便地让 Web 开发人员与后台服务器人员不受干扰,各自发挥自己的特长。

(0) Comments    Read More   
Posted on 22-07-2012
Filed Under (技术) by waterlin

如果你是用 WordPress 来做你自己的站点,那你在首页的导航条里,肯定希望这个导航条可以链接到本站点以外,比如说你的 Wiki 站点、你的微博、你的图片网站等。

可是 WordPress 后台管理中,默认 Pages ==> Add New 菜单功能,只是给你的导航条里添加一个新的页面(可以是留言、关于等功能页面)。可是,你如果想在这里链接到其它站点,却是无能为力了,因为这个页面的网址,WordPress 已经帮你基本定型了,你无法让它重定向到外部站点。

这个时候,很多人都会告诉你,去编辑你的模板,手动添加几个导航链接到你的模板里。这样做,有诸多的不方便,尤其是现在 WordPress 是多博客系统,你的多个博客可能使用同一个博客模板,就像我的英文博客中文博客,使用的就是同一个模板,对这个模板的修改,会同时影响到这两个博客。

要坚信,这世界上大部分的工作,其他人都帮我们做好了。上述需求,除了修改模板代码这个土方法外,我们还可以通过下面这两个插件起到类似的作用。

SoJ Page Link

SoJ Page Link 是我最早用来设置导航链接到 WordPress 以外站点的插件,不过这个插件太久没有维护了,不知道还能不能用。

朋友们试用一下,然后告诉我结果。

Page Links To

Page Links To 可以实现和 SoJ Page Link 一样的功能,甚至实现得更好。安装好了以后,在管理面板里添加新的页面时,会有一个选项如下所示:

Point this content to:

* Its normal WordPress URL

* An alternate URL

你可以根据需要进行选择。

(0) Comments    Read More   
Posted on 21-07-2012
Filed Under (已报) by waterlin

前两年在公司里比较忙,疏于对博客的管理,现在从公司离职出来在新的地方从事普通工程师的工作,慢慢地会有更多时间来打理博客了。想当年,对写博客是多么的热情,我的青春岁月呀!

之前一直想为博客添加的一个功能,就是在对评论进行回复后,会自动发送一个邮件给被评论者,以方便读者进行互动与追踪。因为少了这个功能,都不知道我的博客少了多少访问量呢,哈~~

找了找,原来 WordPress Thread Comment 这个插件可以起到上述功能,功能特点如下:

  1. 对现有评论(留言)进行回复,并可以显示出评论的层次逻辑关系;
  2. 以邮件方式自动通知被评论者,方便读者互动;
  3. 自定义功能很强,当然,由此带来的设置也比较复杂。

这些功能对我来说足够了,呵,以后欢迎各路朋友踊跃发言,再也不用担心看不到别人对你的回复了!

(0) Comments    Read More   
Posted on 15-07-2012
Filed Under (技术) by waterlin

相信大多数的 WordPress 博主,都是在海外建站。一大把数据放在国外的空间里,要是哪一天被 GFW 了,要导回数据可就麻烦了。

最安心的做法,是在本地机器里定期备份服务器的数据,并且保证它们能跑起来。

平时的话,可以多采用自动备份的方式来备份 WordPress 数据,这样可以节省不少时间。有大量的自动备份插件可以使用:

  1. 备份数据库插件:WP-DB-Backup

    用这个插件来备份数据库,然后在 Tools ==> BackUP 里可以进行备份,支持手动备份,蛮好的。

  2. 同时备份文件和数据库的插件:wp Time Machine

    这个插件蛮好的,可以同时备份数据库和文件,只不过它默认提供 Dropbox 和 Amzon S3 服务,对中国人来说,的确不是”靠谱”的服务。

    本插件的缺点是只能备份到第三方平台,而没有办法 Email 备份给你,或是直接提供下载。

  3. 提供多种角度的备份:BackUpWordPress

    在目录 Tools ==> Backups 里可进行手动备份,目前从我的使用来看,该插件的效果比较好。

另外,备份需要注意以下几点:

  1. wp-content 目录下是各个博客的图片等数据存放地点,尤其要记得备份。
  2. 当使用自动备份时,一定要注意,它只是备份你当前的博客。如果你的 WordPress 提供了多个博客,则需要在每一个博客里提供备份服务。
  3. 第一次备份需要确保建立完整镜像的步骤,即确保你备份下来的数据能在另外的服务器上重新搭建完整的博客系统:建立了完整的镜像后,以后就可以直接备份数据库与 WordPress 的文档了。
  4. 手动备份的话,在我的服务器上,我是先把 public_html 目录里所有的文件备份一下,然后把 WordPress 所属的数据库备份一下。

希望大家能异地、容灾备份自己的数据,安全第一!

(2) Comments    Read More   
Posted on 15-07-2012
Filed Under (技术) by waterlin

WordPress 的自动升级相当方便,可是如果服务器没有配置好,也一样不能自动升级,比如说我的本地测试用 WordPress 升级时就碰到了这样的错误:

Downloading update from http://mu.wordpress.org/wordpress-mu-2.8.6.zip.

Fatal error: Maximum execution time of 60 seconds exceeded in F:\xampp\htdocs\wordpress-mu\wp-includes\http.php on line 1324

这是因为我本地下载 WordPress-MU 升级包的速度太慢了,导致 php 脚本运行超时。

要修复这个错误很简单:把 php.ini 里对于脚本执行时间的限制改得宽松一些,即下面这一行里的数字:

max_execution_time = 60     ; Maximum execution time of each script, in seconds

我本地的测试环境为 Windows XP SP3 加 Xampp 1.6.5,这里值得强调一下的是,如果你本地是用 Xampp 来做开发和测试服务器使用,则需要注意 php.ini 文件的存放路径

Xampp 下的 php.ini 文件,默认位置是在xampp根目录下的 apache\bin 目录里

例如 Xampp 安装在

C:\xampp

那么其对应的 php.ini 文件则是

C:\xampp\apache\bin\php.ini

切记不是

C:\xampp\php\php.ini

弄错了 php.ini 文件位置的后果很严重,很可能不方便你追踪服务器的一系列问题。没有办法采用你设置正确的参数来启动服务器,导致一系列的调试误区。

又例如要在 Xampp 下启用 domxml 扩展,那么就要修改

C:\xampp\apache\bin\php.ini

;extension=php_domxml.dll

前面的分号去掉,还要注意 extension_dir 的位置。

(2) Comments    Read More