为WordPress启用Memcached

经过我的亲自测试,WordPrss在开启了Memcached以后,速度有质的提升,几乎可以媲美WP Super Cache等静态化插件。下面是安装方法。

前提条件:
1,php安装了memcache扩展(可以在phpinfo.php中查看)
2,服务器安装了memcached(服务端软件,默认端口11211)

为WordPress启用Memcached
方法超级简单,下载object-cache.php文件到wp-content目录即可。

然后,享受飞一般的WordPress吧!

网上还有另一种说法,说是要进行以下步骤,经过我的测试,以下步骤是不需要的
1,在wp-contents目录建立cache目录,并给予775、777权限
2,在wp-config.php里添加一行 define(‘ENABLE_CACHE’, true);
3,为PHP安装memcached扩展 (more…)

Read More

Python re正则匹配中文

Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用将输入的utf-8中文解密为unicode,然后交由python处理(2014.10.09感谢QQ85897930纠正)。

unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符

>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='这里是中文内容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news
这里是中文内容:123456aa哈哈哈bbcc

(more…)

Read More

解决OSError: [Errno 2] No such file or directory: ‘/dev/urandom’

最近自己的CentOS6在yum update以后,所有的yum命令都会遭遇如下错误

Traceback (most recent call last):
  File "/usr/bin/yum", line 4, in 
    import yum
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 46, in 
    import tempfile
  File "/usr/lib/python2.6/tempfile.py", line 34, in 
    from random import Random as _Random
  File "/usr/lib/python2.6/random.py", line 873, in 
    _inst = Random()
  File "/usr/lib/python2.6/random.py", line 96, in __init__
    self.seed(x)
  File "/usr/lib/python2.6/random.py", line 110, in seed
    a = long(_hexlify(_urandom(16)), 16)
OSError: [Errno 2] No such file or directory: '/dev/urandom'

解决方法:

mknod -m 644 /dev/urandom c 1 9
Read More

安装Pyhton MySQLdb

安装很简单,几步就好

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ./ez_setup.py

wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
tar -zxvf MySQL-python-1.2.3.tar.gz 
cd MySQL-python-1.2.3
python setup.py install

可能出现问题1:error: command ‘gcc’ failed with exit status 1
解决:yum install python-devel

Read More

将wordpress博客中的yupoo图片片下载至本地

2007年建立这个博客的时候,使用的还是虚拟主机,出于容量不够及备份等因素的考虑,当时我使用了Yupoo相册来保存及外链博客里的图片,6年过去了,博客里的这些图片仍然可以显示,外链的地址没有失效,说明Yupoo还是一个靠谱的网络相册的。

但国内的互联网形势风云变幻,谁也说不准将来会发生什么事儿,曾经风极一时的拍拍乐(886.cn)到现在已经不能访问了,巴巴变也经历了数次改版,在2008年中旬,Yupoo进行了一次大的改变,限制了用户的外链,强行将外链的图片加上了广告,当时我还在博客上极其强烈的吐嘈了Yupoo一顿。从那时起,我就一直在思考,如何更好的保存博客中的图片.

到2010年,VPS兴起了,这个博客用上了Burst.net家的VPS,20G的空间,再也不用担心容量不够了。从那时起,基本也开始用博客自身的空间来保存图片了,在VPS上部署了备份脚本,这下再也不用担心空间跑路或者其它的因素了。但有个显著的问题,博客里以前Yupoo外链的图片太多,要如何转移过来?一直到今天,写了这个Python脚本,解决了这个问题。

脚本会把数据库中的所有yupoo图片下载至本地的yupoo目录,图片的文件名不变,把yupoo目录上传至博客的/wp-content/uploads/目录,然后,博客就彻底脱离了Yupoo!

yupoo相册的图片地址类似于以下这几种:
http://pic.yupoo.com/用户名/xxxxxx/xxxxxxxxx.jpg
http://photo14.yupoo.com/年月日/xxxx_xxxxxxx_xxxxxxx.jpg
http://photo15.yupoo.com/年月日/xxxx_xxxxxxx_xxxxxxx.jpg (more…)

Read More

使用python备份远程FTP上的文件和Mysql

写这个脚本初衷是想借助VPS来定期备份虚拟主机上的文件和数据库。最近对美国VPS的速度有点不满了,想把博客搬到香港的虚拟主机上,但虚拟主机的备份不太方便,于是就冒出了这样一个想法:用VPS备份虚拟主机。

其实备份文件是个简单的事情,但要把数据库都导出,就麻烦了。大部分Mysql有个locahost的限制,只能在本地连接,不能远程连接数据库,想来想去,只能是在localhost弄个php的脚本,用来导出数据库

程序包含2个文件,分别是
db_backup.py:主程序,在里面设置好虚拟主机的FTP地址,用户名和密码信息,然后执行备份程序,如果要定时执行,在crontab里设置这个脚本即可
db_backup.php:导出Mysql的脚本,主程序会把此脚本发送至FTP服务器,然后自动访问http://ftp/db_backup.php把Mysql导出至FTP服务器上的的db_backup目录。因此需要在此文件里填写好Mysql的连接信息。备份完成以后主程序会删除FTP服务器上的此文件和db_backup目录,保证了数据库不被泄露

前提条件:
1,VPS安装Python,这个一般没问题,VPS的虚拟化技术不能是OpenVZ。
2,虚拟主机必须是php型的,且支持passthru()函数,国内的主机一般都支持,不过还是建议事先用探针检测一下

脚本打包下载请点击这里 (more…)

Read More

python中文件的复制

文件的复制
file类中没有提供专门的文件复制函数,因此只能通过使用文件的读写函数来实现文件的复制。这里仅仅给出范例:

src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()

src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()

(more…)

Read More