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库是否被正确导入。

Crontab的使用

最近在使用crontab定时执行一些计划,于是把过程记录下来。

配置crontab的方法有两种:

方法一:crontab –e进行配置,如图。

方法二: vim /etc/crontab进行配置。

 

这两种方法的区别是前者不需要配置执行的用户,即是user-name,而后者需要配置。原因是前者默认是以当前登录的用户权限执行,所以不用配置。后者的配置文件位置是/var/spool/cron/usrname

因为本人是root权限,故本人的配置路径是/var/spool/cron/root。这是CentsOS路径,而在ubuntu曾经搜索过,但仍是找不到明确位置存放个人cron配置,只知道每次使用crontab –e编辑都会新建一个临时文件进行编译,保存后就会消失。

* * * * * python ‘/data/apps/cloudbak_stat/client/net_postdatas_info_perform.py’ >/dev/null 2>&1表示每分钟执行一次。

为什么要使用”>dev/null 2 >&1″呢?因为确使其标准输出和错误输出都重定向到空设备。如果没有正确处理标准输出和错误输出,则命令程序所产生的错误和标准输出会被输出到某文件或某邮件里,默认crontab是输出到管理者邮件中,如果邮件没有被正确处理,会导致邮件文件数量太多,最终拖慢系统。

最后调用:/sbin/service crond restart重启计划

w3cschool网站

网址:http://www.w3cschool.cc/

主要特色,就是服务器相关技术比较全面,界面友好舒服。任何菜鸟都能轻松地找到你要的知识点和即时功能体验。

比较喜欢的功能点:体验一下和尝试一下。

正在学习的技术有:boostrap\jqueryui\css\python

SPDY编译和测试

SPDY是谷歌努力推动的一项基于TCP的网页传输协议,目的是压缩、多路复用和优先级来缩短网页的加载时间。这点相对于HTML1.0和1.1协议来说是很具有诱惑力的。也是值得去尝试和体验的。以下是我的编译和测试过程。

1.编译准备

下载nginx1.6.0版:http://nginx.org/download/nginx-1.6.0.tar.gz,为什么是1.6.0呢?因为nginx当前所有版本只有某些版本是明确标识支持SPDY的,而标识的SPDY的版本有1.6.0、1.5.11、1.5.10、1.3.14,而本人也取1.6.2版来测试,确实是只有标识支持SPDY的版本才有SPDY功能。不建议使用1.3.14版本,因为1.3.14版本是使用补丁的方式支持,需要下载patch文件进行修改。

2.编译

可参考官网说明:http://nginx.org/en/docs/http/ngx_http_spdy_module.html

$ ./configure –with-http_ssl_module –with-http_spdy_module

$ make

3.配置文件conf文件。

需要准备server.key和server.crt证书,证书是很麻烦的,按照网上的openssl流程操作,会被搞得晕头转向。我也因为是被搞得晕头转向后,痛定思痛才想到是否有现成的工具可以生成证书。

答案是肯定的,但道路是迂回且曲折,国内没有相关现成工具介绍,也没有什么下载站可以提供下载。只有通过到国外网站去找才可能有,毕竟最大的网络资源在那道”墙”外。

经过谷歌搜索和各条搜索结果排查,找到一个网站:http://www.selfsignedcertificate.com/

Conf文件修改如下:

4.检验结果,

使用谷歌浏览器打开以下地址:chrome://net-internals/#spdy