@xirang.ca -> 访问嘻来嚷往国际版

热度:623°C

噪音:23分贝

利用cPanel Cron jobs定时备份和优化网站程序以及数据

分类:信息时代 | 编程开发  标签: | | | | |

当广大Wordpresser欢欣鼓舞地升级到2.9,享受着在线图片编辑器、回收站等一系列新功能的时候,却发现Wordpress的生理周期突然失调了——以前她能够自动地定时为我们发布文章、清除缓存、备份数据库等等等等,而现在这一切都需要我们手工完成。经过在Wordpress官方论坛一番搜寻,发现原来这是Wordpress 2.9的大BUG——定时模块失效……

又,最近在国内互联网“扫黄打非”的狂风暴雨下,个人网站的站长们被弄得一个个诚惶诚恐,一觉醒来说不定域名就“被”停止解析,服务器就“被”关停!所以,及时备份网站的程序和数据对于当下的中国站长们极为重要,然而Wordpress 2.9偏偏又在这当口来一个定时模块失效,这的确是雪上加霜!

CPanel

不过,如今最优秀的主机面板cPanel已经越来越普及了,如果您有幸用上了采用cPanel面板的主机,那么其中的Cron jobs模块就是雪中送炭了。您不但可以使用Cron jobs结合Linux bash shell脚本更加细致地控制各种自动定时作业——备份数据库优化数据库备份网站程序,还可以永久性地省掉几个Wordpress插件,提高Wordpress的运行速度。

定时自动备份MySQL数据库

Cron jobs如右图所示,首先请在您的cPanel面板中的Advanced部分找到Cron jobs。点击进入,您就会看到Cron jobs的操作页面,不过先别着急,我们要首先编写备份网站数据库的Linux bash shell脚本。

我们需要首先用mysqldump命令导出整个数据库至一个文本文件,然后用压缩工具将数据文件压缩打包,最后用mutt命令将数据库压缩包发送至您指定的电子邮件地址。

现在我们开始,请用远程登录软件(如SecureCRT、Putty)或者FTP软件(如FileZilla、FireFTP)连接到您的主机,并创建一个存储备份脚本和临时文件的文件夹,比如我在我的主机根目录建立了一个backup目录。根据cPanel主机的文件夹格式,该目录的绝对路径应为/home/cPanel登录名/backup。

下面以/home/xirangus/backup目录为例。请打开任意一个文本编辑软件,录入如下内容。[XXX]处请更换为您的真实数据(去掉[和])。 挺有意思,往下瞧瞧 »

热度:302°C

噪音:2分贝

WP Super Cache之诡异GZip压缩包下载BUG

分类:信息时代 | 编程开发  标签: | | |

请各个基于Wordpress架设并且开启了WP Super Cache插件进行提速的网站的站长们注意,在嘻来嚷往热心读者的帮助下,我们发现了WP Super Cache 0.9.8版本所引入的一个十分诡异和难以察觉的BUG!

bug-fest

前提条件

  1. WP Super Cache Status: 开启
  2. Super Cache Compression: 开启
  3. Expiry Time & Garbage Collection: 较长,比如嘻来嚷往设定为86400秒(一天)

如果您Wordpress网站的WP Super Cache设置符合上述三个条件,请向贵站的读者咨询他们在访问网站时是否出现过以下(比较罕见,就算您自己刷新网站100次可能也不会出现,所以做好求助于网站的大量访问者)

现象

浏览器无法打开网站,而是提示访问者下载GZip压缩包,该压缩包解压后,为网站首页的html文档。并且任何内核的浏览器都可能出现此情况。 挺有意思,往下瞧瞧 »

热度:954°C

噪音:21分贝

SkyDrive 外链自动获取插件 WP-Skydrive-Outlink 完善版

分类:信息时代 | 编程开发  标签: | | |

话说为了为本站的视频文件找个家,Tim可是费尽心思,国内外的外链文件存储网站几乎全部注册试用了一遍,到最后还是锁定在了垂手可得的微软 25G 不限流量外链空间 SkyDrive 。一来是微软的服务器那是相当的稳定,二来是在我有生之年估计微软也不会倒闭,那就把视频文件存在 SkyDrive 吧。

不过,天下可以有免费的午餐,但是真的没有又免费又丰盛的午餐……为了防止像本站一样,长期、稳定地外链 SkyDrive 文件,微软可是做足了功夫,某个文件的外链地址随时都在改变。唯一不变的就是下载页面,为的就是让你去看广告。搜了半天,在《Skydrive外链(wp-skydrive-outlink)插件》这里找到了高人编写的,通过分析那个不变的文件下载页面代码找出此时此刻该文件的外链地址的 WordPress 插件。

但是 Tim 在使用的时候发现了不尽人意的地方。原插件是通过搜索页面代码的如下内容:

1
<a href="http&#58;&#47;&#47;zmmbva.bay.livefilestore.com&#47y1pIqCe7pRjb5SoIojzYoEoZwIWrS4ydWQbUfVTc9AzsqDWEPyeTDpBTN2zresvpobyBvHUv1ApuBAcoojvXGkYYg&#47;Breath&#37;20Under&#37;20Water&#37;20HQ.mp4&#63;download" title="Download">

中的 title=”Download” 来截取外链地址。但是 SkyDrive 的页面语言会根据浏览器 Cookie 和浏览者 IP 地址而做出自动选择。如果浏览者的 Windows Live 语言设置为非英文,或者是浏览者从没登录过 Windows Live ,那么他所得到的这个下载页面的 title=”Download” 很可能就变成 title=”下载”、title=”télécharger”、title=”ダウンロードする” 等等等等,那么这个插件也就失效了。

所以,Tim又瞧了瞧 SkyDrive 文件下载页面的源码,发现在靠近底部,有一段 javascript 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var $SelfPage = new function()
{
    var_download = 'http\x3a\x2f\x2fzmmbva.bay.livefilestore.com\x2fy1pIqCe7pRjb5SoIojzYoEoZwIWrS4ydWQbUfVTc9AzsqDWEPyeTDpBTN2zresvpobyBvHUv1ApuBAcoojvXGkYYg\x2fBreath\x2520Under\x2520Water\x2520HQ.mp4\x3fdownload';
    var_demote = 'http\x3a\x2f\x2fzmmbva.bay.livefilestore.com\x2fy1pIqCe7pRjb5SoIojzYoEoZwIWrS4ydWQbUfVTc9AzsqDWEPyeTDpBTN2zresvpobyBvHUv1ApuBAcoojvXGkYYg\x2fBreath\x2520Under\x2520Water\x2520HQ.mp4\x3fdownload';
    var_dirty = false;

    this.MarkDirty = function() { _dirty = true; }
    this.Download = function()
    {
        if (_dirty)
        {
            _dirty = false;
            window.location = _demote;
        }
        else
        {
            window.location = _download;
        }
    }
}

这个地方就是生成链接地址的函数,而且这个函数的内容不随页面语言和访问者 IP 地址的改变而改变。接着Tim就开始修改代码。本人对 PHP 一窍不通,还好 PHP 的字符串操作和 C++ 蛮像的,这里也只用修改一下搜寻字符串的地方,原作者其它那些代码对我来说是一本天书。修改后的地方是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function skydrive_get_outlink($url)
{
    if ( IsAbsoluteUrl($url) === false ) {
        $url = $sdoldefaulturl . $url;
    }
    $body = ffox_get_http_body($url);

    $pos = stripos($body, 'var _demote');
    $body = substr($body, 0, $pos);
    $startstr = 'var _download = \'';//Tim modified in version 0.3: to locate the start position of the outlink
    $endstr = '\\x3f';//Tim modified in version 0.3: to locate the end position of the outlink
    $start = strripos($body, $startstr) + strlen($startstr);
    $end = strripos($body, $endstr);
    $outlink = substr($body,$start, $end-$start);
    $outlink = str_replace('\\x3a', ':', $outlink);//Tim added in version 0.3: to replace \x3a to :
    $outlink = str_replace('\\x2f', '/', $outlink);//Tim added in version 0.3 to replace \x2f to /
    $outlink = str_replace('\\x25', '%', $outlink);//Tim added in version 0.3 to replace \x25 to %
    preg_match_all("/\&amp;\#([0-9]+)\;/", $outlink, $acs);
    $acs = $acs[1];
    foreach($acs as $ac) {
        $outlink = preg_replace("/\&amp;\#([0-9]+)\;/", chr($ac), $outlink,1);
    }
    return $outlink;
}

这么一修改,插件运作地就很良好了,Tim用Firefox、Chrome、Safari、Opera、IE都做了测试,效果非常不错!《Mairé Digby YouTube 官方站高清 MV 合集》中的所有视频都是采用 SkyDrive 存储,此插件获得外链地址的,您可以点过去瞧瞧效果。怎么样,这个插件的确不错吧,那么请

点击下载(2010.1.1更新,请将下载的文件的后缀名改为.zip)

在这里Tim要感谢Flarefox ,他的所做工作是开创性的,我只是站在Flarefox 的肩膀上对插件做了一点小小的修改,让它工作得更棒!请Flarefox看到此修改版、并且觉得Tim修改的还不错后,将我的版本合并到你的官方版本中,以让更多人更好的享受这顿“又免费又丰盛的午餐”!

热度:628°C

噪音:想要打破沉默吗?

基于维基百科的WordPress全站中文繁简转换插件

分类:信息时代 | 编程开发  标签: | | |

毫无疑问,维基百科WordPress都是它们各自领域的佼佼者。当它们的威力组合在一起的时候,那只能用圣斗士小宇宙爆发来形容了。

笔者曾在文章《利用中文维基百科实现基于表达习惯的高质量中文简繁转换》中介绍过巧妙使用中文维基百科的用户页面实现免费高质量中文简繁转换的方法。

然而今天笔者发现,WordPress世界里面有位超级高人已经把这项功能实现为WordPress的插件了!安装了这个插件后将其添加到您WordPress网站的侧边栏里,将会为你的网站提供实时的、服务器端的、基于MediaWiki引擎的高质量全站中文简繁转换。

WikipediaWordPress

这真是个价值连城的东西,笔者赶紧把它装在了我的WordPress中。现在,您可以点击嘻来嚷往站侧边栏中第二个名为“全站中文简繁转换”部件中的转换链接,查看这个插件的转换效果。

如果您也使用WordPress架设自己的网站,那么赶紧下载吧。您也可以先看看后面的插件介绍,在决定您是否下载使用它)。 挺有意思,往下瞧瞧 »

热度:955°C

噪音:3分贝

为跨平台数据库引擎 SQLite 实现加密扩展

分类:信息时代 | 编程开发  标签:

SQLite 简介

SQLite 是非常优秀的跨平台数据库引擎。与最常见的需要服务进程的数据库引擎(如 MySQL )不同,SQLite 引擎不是独立的进程,而是与主程序编译在一起、并运行在同一个进程空间中的代码。数据的存取则是通过程序内直接调用其 API 实现的,整个数据库都在宿主主机上存储在一个单一的文件中。这些使得 SQLite 在读写效率、消耗总量、延迟时间和整体简单性上具有很大的优越性。 挺有意思,往下瞧瞧 »

热度:1,168°C

噪音:11分贝

编译Windows平台下真正意义上的静态Qt库

分类:信息时代 | 编程开发  标签: | | |

我在国内外Qt论坛上看到的最多的问题之一就是如何编译静态Qt库,可见在动态链接库 (Windows: .dll, Linux: .so)大势所趋的今天,静态链接库还是具有其存在的合理性和广泛需求。首先看看动态库给我们带来了什么:

  1. 开发时的复用性:成千上万的各种实用库,包含它们的头文件,你就可以开始使用它们提供的功能;
  2. 编译时的快捷化:进行过静态链接编译的人都知道,其编译过程的时间消耗是动态链接的数倍倍甚至更多;
  3. 部署时的轻量化:如果你的程序使用操作系统自带的动态库,或者是一些非常流行的库。那么部署你的软件时,这些库便可以不用包含在你的packge里面,大大减小了其体积;
  4. 使用时的可维护性:某个库如果发布了更新的版本,那么你只需替换这个动态库文件,而不需要重新编译你的整个程序。 挺有意思,往下瞧瞧 »

Switch to our mobile site