月度归档:2014年10月

WordPress的学习资源

以前一直想深入了解WordPress的架构和能自由的修改其页面。但只是缺少资料,现偶有发现这样一个专注介绍WordPress的网站。其相关二次开发的资源都较为丰富,令人不得不添加。

http://www.wpdaxue.com/

其它相关的网站有如下:

http://www.nifree.com/category/website/dowordpresstheme

http://320press.com/wpbs/

http://upplex.de/bootstrap-3-wordpress-theme-framework/

512内存MySQL因out of memory启动失败

重启阿里云服务器后,发现MySQL启动失败。原因如下:

Starting MySQL…The server quit without updating PID file /alidata/server/mysql/data/AY140620200054865f40Z.pid).[失败]

查找syslog日志,发现以下错误。

“Out of memory: Kill process 9682 (mysqld) score 9 or sacrifice child”

经查资料分析,是内核里的 Out of Memory (OOM) killer主动强制杀死mysql进程,以保护系统因不足内存而崩溃。

经多方资源查找分析,原来是mySQL版本升级为5.6版本后,其默认缓存配置被修改为较大值,故会造成这情况。于是把my.cnf文件增加如下:

performance_schema_max_table_instances 12500  =>修改1250
table_definition_cache 1400 =>修改为140
table_open_cache 2000 =>修改200

贴图如下,重启后问题解决。

image

Django的调试模式

关闭Django的调试模式,会在程序报错时,显示500或404等错误。但这个错误是无法帮助我们直接找到原因的。故在开发或遇到问题时,应该养成先检查调试模式是否打开的习惯。

image

利用Python的traceback功能打印异常点出错信息

使用Django1.2.5进行网页开发,导入代码调试,发现报告如下错误:

image

再看看源代码:

image

由于是刚刚新装的环境,很多包是不存在,在try except的语句中import settings.py失败,但这种方式已经把包不存在或导入失败的错误隐藏掉了,从而弹出一些莫名其秒的错误,对新手来说,真是一种障碍。

所以在这情况下,只有找到except点,然后增加如下语句:

import traceback

print traceback.format_exc()

这样可以方便直观看到出错原因。

Python与ActivePython-Free版的区别

ActivePython是Python的超集,是基于Python的开源内核,增加了Windows的扩展,以及pip和easy_install工具。简单说即是ActivePython = Python + GUI + PIP + easy_install+其它开发包。

这GUI的扩展是因平台而异,如果是微软Win32平台,则可能会增加com,win32api,mfc模块,如果是Linux的则是什么就没有去对比,如下是通过BCompare工具对比后,ActivePython所增加元素的截图。

image

由此可见,如果是开发人员,则安装ActivePython是可以节省很时间,因为它已经集成了我们常见的PIP和EASY_INSTALL工具。至于Windows扩展包,那就看开发者的需求了。

python配置自定义路径

在python的安装路径site-packets下:如:C:\Python27\Lib\site-packages创建xxx.pth,xxx为import xxx时所导入的包名。

用记事本打开xxx.pth文件。添加库如下内容

D:\\cmwork\\

d:\\cmwork\\xxx\\

在cmwork目录下能找到xxx子目录。

打开python的命令行,依次输入如下命令:

import sys

import sys.path    从sys.path返回路径中,检查刚才所输入的路径是否存在。

import xxx   检查该xxx库是否被正确导入。