wordpress问题

将网站上的wordpress安装到本机,数据库在wp-config.php中配好了,但是访问主页一直报500 internal错误。看apahe日志,

[Wed Nov 23 20:53:42 2011] [warn] [client 127.0.0.1] mod_fcgid: read timeout from pipe
[Wed Nov 23 20:53:42 2011] [error] [client 127.0.0.1] Premature end of script headers: index.php

在网上查,没有对症的。

以我的经验很可能是数据库连接问题,于是另写个页面专门连数据库,成功了!这就让人郁闷了。

没办法,打开define('WP_DEBUG', true);只好一行行用echo定位了,最后发现确实是数据库问题。在load.php中require_wp_db函数,定位到wp-db.php::db_connect函数。

mysql_connect这一句有问题。晕,我不是专门测试了吗?

经过比照,就只host一个用127.0.0.1可以,而用localhost就不行!

问题在这!但是我使用jdbc使用localhost是可以的啊?

查看host文件,果然localhost没有配置,映射localhost 127.0.0.1后,再测试就可以了。

仍然不懂为什么jdbc可以自动找到localhost而php需要通过dns配置才行?

这个问题解决后,数据库需要修改wp_options表,将siteurl和home设置成本机url。

打开Mod_Rewrite模块,因为wordpress使用到了这个模块,所以要在apache http.conf中将LoadModule rewrite_module modules/mod_rewrite.so前面的注释去掉来启用此模块。另外需要为文件夹配置打开.htcaccess配置。如:

<Directory "xxxx/public_html">   
    AddHandler fcgid-script .php 
    FcgidWrapper "xxxx/php-cgi.exe" .php
    Options execCGI FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all   
</Directory>

注意蓝字部分配置。

wordpress根目录下的.htcaccess文件直接拷贝过来就行了。

到这一步,本机的wordpress环境基本可用了!

至于.htcaccess中的php.ini配置什么的,是虚拟主机具体环境需要的,这是wordpress安装时自动生成的??反正对本机环境运行wordpress没什么问题。

参见:

http://www.leapsoul.cn/?p=25  Apache Mod_Rewrite实现URL重写的配置方法

http://hi.baidu.com/%D1%F8%C0%CF%D4%BA%B3%A4/blog/item/6fb6764fd0533ff4d72afcd8.html  suPHP - 以属主身份来运行php

但是访问本机wordpress比访问站点还慢!这是怎么回事?关了xdebug也是一样!后来发现是wp-utf8-excerpt这个插件比较慢,关了就好了。

另外xdebug也是性能因素的很重要的个原因,打开xdebug会慢一倍以上,但是不打开又不好看调试信息。

有的环境下会出现admin中样式乱套,发现是load-styles.php这个样式加载有问题,换个php版本试试看,例如5.3.3就可以解决这个问题。

 

将最后编辑时间显示在文章上,需要在single.php和index.php中添加如下代码:

<?php 
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
echo "and last modified on ";
the_modified_time('F jS, Y');
echo " at ";
the_modified_time();
echo ", "; } 
?>

 

无法使用wlw发布私有文章。MS宣称还没提供这种功能也没有提供插件的方式。

 

Continue reading wordpress问题

raphael 介绍

对于无插件web chart,不久前还是头疼的事情,大部分解决方案是flash,包括extjs3。当前extjs4出来了,发现它是封装了vml和svg。虽然extjs4是基于沙箱的,可以和extjs3合用,但是我试过了,那性能是惨不忍睹。

我看到jquery的chart插件flot http://code.google.com/p/flot/, 但是它是使用canvas的,对于ie使用excanvas来包装,但是在我的ie浏览器中就报错了。

让我们看看raphael,它是封装了vml和svg,而且,extjs4的chart也是基于它的!所以,完全可以使用raphael来画图!

文档: http://raphaeljs.com/reference.html

它的接口是按照svg来设计的,所以会参考到 w3c svg文档 http://www.w3.org/TR/SVG/painting.html

首先创建一个raphael对象:

var r = Raphael('holder', 500, 300);

上面的代码在页面的holder元素下创建了一个Paper对象。

下面画一条线: Paper.path

r.path('M0,0,L200,200');

这里画了一个斜线,从画布原点,也就是左上角向坐标200,200处画线。其中的M表示将画笔起点移动到,L表示向某处画线。这是svg的语法,可参见: http://www.w3.org/TR/SVG/paths.html#PathData

上面的代码返回的是Element对象。

然后我们来为这条线添加颜色:Element.attr

r.path('M0,0,L200,200').attr({stroke:'red','stroke-width':'5px'});

使用attr方法将画笔属性设置成红色和5像素宽。

效果如图:

Snap1

我们再画个三角形:

r.path('M{0},{1},L{2},{3}L{4},{5}Z',0,100,50,150,0,200).attr({fill:'blue'});

注意到,使用path的另外的形式,使用大括号中的参数来生成语句。其中的索引分别对应后面的参数位置。更多的格式见Raphael.format。另外我们指定了三个顶点,最后一个Z表示将此路径封闭。然后我们使用蓝色来填充这个封闭的三角形。

Snap2

我们再来写上文本:

r.text(100,90,'Hello!').attr({stroke:'black','stroke-width':'2px',fill:'green','font-size':'90px'});

在上面的代码中,我们在100,90坐标处,写上了hello的文本。它是用2px黑色外框,绿色填充,90px大小的字体来绘制的。

Snap3

完整的代码是:

html代码:

><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript" src="raphael.js"></script>

Continue reading raphael 介绍

【转】ExtJS 4.0 的改变--较为完整的介绍。

因为有过删帖的经验,还是转过来吧! 原文:http://andy-ghg.iteye.com/blog/1133456

惯例,看之前先看看我的很久很久以前的学习笔记(就是那个Word文档,没兴趣的可以不看,不影响):
http://wenku.baidu.com/view/ce8d3e08763231126edb1146.html
本文里面不会详细介绍某些方法函数具体如何使用,例子全部自己写的(部分参考API和ExtJS 4.0 Developer Preview),应该不会有错,提到的方法函数只提供名字,自己去API看(在此严重鄙视一些照搬API就出本书捞钱的人)
基础上的变化:
兼容性
ExtJS4最终会提供一个兼容ExtJS 3的解决方案。
沙箱模式
可是使用alias来为组件添加别名,类似以前的Ext.reg,不过alias会用不同的类别区分开来,例如,widget.xxxxx和feature.xxxxx是不一样的,虽然它们都是用alias来定义的,但是类别完全不同。
包和命名空间的改变
现在的ExtJS不再使用混乱的分包机制(其实以前的感觉更加直白),例如以前的Window,包名是Ext.Window,但是现在则是 Ext.window.Window,Ext.window包下还包括了Ext.window.MessageBox等。SplitButton则是 Ext.button.Split。
创建新的对象
现在ExtJS使用Ext.define函数来创建组件类,该函数还能实现自动加载JS类(uses属性,需设置Ext.Loader为开启详见下文,看不懂看API),它会自动的完成以前的ns(namespace)功能。例如下面

Js代码

  1. Ext.ns("Foo.bar"); 
  2. Foo.bar = Ext.extend(Ext.util.Observable,{ 
  3. //your code here
  4. }); 
  5. Ext.reg("foobar",Foo.bar); 

所以现在创建一个组件应该是这样的:

Js代码

  1. Ext.define("Foo.bar",{ 
  2.         extend : "xxxxxx", 
  3.         alias : "widget.foobar"
  4.        //your code here
  5. }); 

现在ExtJS不再使用new关键字(当然你想用也没关系),而是推荐使用Ext.create函数来解决这个问题,例如以往我们创建一个组件的代码是

Js代码

  1. var win = new Ext.Window({ 
  2. //some options
  3. }); 

而现在则是

Js代码

  1. var win = Ext.create("Ext.window.Window",{ 
  2. //some options
  3. }); 

新的类加载方法--Class Loading
现在ExtJS可以动态加载JS文件(类)了,新的Ext.Loader类和一些其它的方法可以完成分别加载所需的JS文件,例如Ext.Loader里的setPath、require等方法函数可以做到动态加载。
如果要使用这个功能,你首先得启用它:

Js代码

  1. Ext.Loader.setConfig({ 
  2.       enabled: true, 
  3.       paths: { 
  4. 'My': 'my_own_path'
  5.       } 
  6. }); 

path的意思是,当前引用这个JS的HTML文件同级的my_own_path目录被命名为My,所以以后该目录下的所有类名为My.xxxx的类都能被动态加载。
例如以下文件目录:
d副本
在定义的时候就是:

Js代码

  1. Ext.Loader.setConfig({ 
  2.       enabled: true, 
  3.       paths: { 
  4. 'NS': 'app'
  5.       } 
  6. }); 

app/person文件夹中的类名为LKPerson的定义代码为:

Js代码

  1. Ext.define("NS.person.LKPerson", { 
  2.     extend : "Ext.panel.Panel", 
  3.         alias : "widget.lkperson",//当然,这个属性不是必须的
  4.     border : false, 
  5.         initComponent : function(){ 
  6. this.callParent(arguments);//这个arguments你懂,不懂Google
  7.         } 
  8. }) 

注意一点的就是,NS.person.LKPerson中的LKPerson就是文件名称(换句话说文件名必须是LKPerson且必须在person目录下)
好了,下面看看动态加载的两种方式:
require的用法如下:

Js代码

  1. Ext.require("Foo.bar"); 
  2. Ext.define("AA.bb.CC",{ 
  3. //some options
  4. }); 

require的意思是:在这个类(AA.bb.CC)被加载之前必须要加载Foo.bar并且被实例化(虽然好用但是劝各位不要滥用)。
uses的用法如下:

Js代码

  1. Ext.define("AA.bb.CC",{ 
  2.         uses:["Foo.bar"] 
  3. }); 

uses的意思是:在这个类(AA.bb.CC)在运行过程中要用到Foo.bar这个类,用到的时候再加载。
其它的就不多解释,具体看API(这句话我最后说一遍
混入类
将一个类混入到另外一个类中,创建的时候一同创建:

Js代码

  1. Ext.define("Dog",{ 
  2.     sayHello : function(){ 
  3.         alert("AAAA") 
  4.     } 
  5. }) 
  6. Ext.define("Animal",{ 
  7.     mixins:{ 
  8.         dog:"Dog"
  9.     } 
  10. }); 
  11. Ext.onReady(function(){ 
  12. var an = Ext.create("Animal"); 
  13.     an.mixins.dog.sayHello(); 
  14. }) 

静态方法
现在所有的类(是所有的ExtJS类,Ext.define定义的)都提供静态方法,可以很方便的定义:

Js代码

  1. Ext.define('Computer', { 
  2.      statics: { 
  3.          factory: function(brand) { 
  4. // 'this' in static methods refer to the class itself
  5. return new this(brand); 
  6.          } 
  7.      }, 
  8.      constructor: function() { ... } 
  9. }); 
  10. var dellComputer = Computer.factory('Dell'); 

Config
这个东西很时髦,看看用法:

Js代码

  1. Ext.define("Foo",{ 
  2.     config: { 
  3.         title: 'Default Title'
  4.     }, 
  5.     constructor: function(cfg) { 
  6. this.initConfig(cfg); 
  7.     } 
  8. }); 
  9. Ext.onReady(function(){ 
  10. var an = Ext.create("Foo",{ 
  11.         title:"My Title"
  12.     }); 
  13.     console.log(an.getTitle()); 
  14. }); 

运行以下看看会出现什么?是My Title,config会自动生成getter和setter还有apply方法。
Ext.env.Browser
这个东西很好很强大。。。。记得以前有Ext.isIE、Ext.isFF等方法判断浏览器,这次ExtJS 4不仅保留了以前的函数,还提供了更为强大Ext.env包来干这些事情,这个包下面还有其它两个类:
Ext.env.OS,顾名思义判断操作系统的,印象中ExtJS3中好像也有,不过这次新增了一些操作系统(主要是移动领域的操作系统)。

Js代码

  1. if (Ext.os.is.Windows) { 
  2. // Windows specific code here
  3. if (Ext.os.is.iOS) { 
  4. // iPad, iPod, iPhone, etc.

Ext.env.FeatureDetector,这个绝对是新加的,主要用于判断HTML5和CSS3的,例如

  • CSS3/动画/转换
  • Canvas/ SVG/ VML
  • 触摸屏是否可用/方向
  • 地理位置(HTML5的东西相信不陌生吧?)
  • SqlDatabase
  • WebSockets
  • History
  • 音频
  • 视频

Lang包的修改
不知道lang是什么意思?(想想java.lang.String和java.lang.Number吧)
现在ExtJS 4一直在为新的ECMAScript标准做准备,这就是为什么要有这个包存在的原因,新的ECMAScript标准大家可以在ActionScript3 中详细看看,AS3基本上是遵循了下一代ECMAScript标准的,例如数据类型String、Number、Array、uint等等,ExtJS 4为了能与下一代的ECMAScript标准兼容,提前提供了这些东西的JS实现。
Ext.Function
这个东西不知道大家平时用不用(也许大家用了没察觉到),我是经常用的。例如在以往的ExtJS版本中的代码:

Js代码

  1. function foo(){ 
  2. //这里
  3. }.createDelegate(scope,arguments); 

现在变成了(这里使用了一个综合的例子,大家可以重点看看bind的用法):

Js代码

  1. Ext.define("Foo",{ 
  2.     config:{ 
  3.         bar:"I don't need sex,the government fucks me every day!"
  4.     }, 
  5.     constructor : function(cfg){ 
  6. this.initConfig(cfg); 
  7.     } 
  8. }); 
  9. function fun(str){ 
  10. if(str){ 
  11.         alert(str); 
  12. return; 
  13.     } 
  14.     alert(this.getBar()); 
  15. Ext.onReady(function(){ 
  16. var foo = Ext.create("Foo"); 
  17.     Ext.bind(fun,foo)();//后面的括号你懂
  18. //如果要传递参数可以以数组的形式放入,例如这样:
  19. //Ext.bind(fun,foo,["私はセックスを必要としない、政府は毎日私をファック!"])();
  20. }); 

好了,我承认我有点那啥,不过希望不影响你继续读下去的兴趣。
相同的还有
ExtJS 3中的

Js代码

  1. myFunction.defer(1000, scope); 

变成了4中的

Js代码

  1. Ext.defer(myFunction, 1000, scope); 

还有callBack变成了pass,其它的自己去发掘。
ExtJS的工具,
就是它: 

使用工具来编译你的JS,别想歪了,我知道JS是解释性的,详细的先看看这篇文章关于JSBuilder的作用:
http://hi.baidu.com/mallor/blog/item/5aec22f3e3dcbadc0b46e074.html
ExtJS的senchaSDKtools里面还提供了theme的制作(命令行的??!!!),如果嫌ExtJS审美疲劳了可以试试这个。没玩过,所以不多解释,这里就告诉大家有这么回事儿就行了。
关于大家最关心的数据
这个Store想必是最关心的吧?(好了,外面貌似下冰雹了我晕,楼顶啪啪的!没时间去核实有北京的2011年七月二十六号晚上21:40:00左右的网友如果核实了留言证实一下)。
嗯,说到冰雹,我觉得转载这篇文章的人应该注意一下告诉出处,这篇文章来自流水无心的ITEYE博客http://andy-ghg.iteye.com/
扯远了,再回来继续说,这个Store现在改变可不小,详细的参看一下这个文章
[url src='http://www.sencha.com/blog/ext-js-4-anatomy-of-a-model/']Countdown to Ext JS 4: Anatomy of a Model[/url]
好了,我知道我很懒,但是我可以简单说一下:modal代替了以往store中fields:[""]的功能,但是我没用(实际使用有问题- -!学艺不精),其实它是一个对象。。。对的是对象,MVC中的Model,好了,具体看API中关于MVC的介绍吧。
Store中有一个变化就是baseParams变程了extraParams,注意下。每一个Store必须(?是否必须我也不知道,不过我现在是这么用的)要有一个Proxy且必须给一个type,现在的Store是这样写的:

Js代码

  1. Ext.define('User', { 
  2.     extend: 'Ext.data.Model', 
  3.     fields: [ 
  4.         {name: 'name',  type: 'string'}, 
  5.         {name: 'age',   type: 'int'} 
  6.     ] 
  7. }); 
  8. Ext.create("Ext.data.Store",{ 
  9.     modal:"User", 
  10.     proxy{ 
  11.         url : "xxxx.do", 
  12.         type : "ajax"
  13.     } 
  14. }) 

确实像那么回事儿,但是我不买账。。。在实际项目中我还是用我的fileds,在没彻底搞明白之前,不太敢这么弄
当然Store的改动远远不止这些,例如Proxy中新增了一个localStorage(Ext.data.proxy.LocalStorage)用于过渡到HTML5的localStorage等等。
Draw绘图
这个东西喜欢吗?我喜欢嘿嘿
ExtJS4中提供了绘图,夸浏览器的,它内部实现了Canvas、SVG、VML等绘图方法,所以不同的浏览器它会自动使用该浏览器支持的绘图方式。支持IE6789、基于Gecko的浏览器(FF)、基于WebKit内核的浏览器(Chrome)。
FX
从ExtJS提供这个以来我就不怎么用,原因很简单,浪费我的资源。。。。在新的ExtJS中,提供了类似Flex中关于动画的包方法Ext.fx.target.*,因为我不怎么用,所以不再阐述。
布局
这里的改变也很大,但是我觉得我在这个博客里说再多也没有你自己去运行它的例子来得要直观。
好了,说了这么多,当然没有说完。。。。更多细节的改变的大家自己去发掘,推荐一篇文章《ExtJS 4.0 Developer Preview》,地址我忘了,网络时代相信对你来说找到它不难。
最后做一下小小的广告:
我自己写的AS3(Flex)流程图例子快要完工了~!以前提供了一个简易的Demo版本,这次是经过重大修改后的(不是说以前有重大的BUG,而是以前的实在太难用- -!),虽然是例子,但是如果您喜欢,完全可以用来做二次开发~!嘿嘿。下面是最新版的截图: 

目前提供了这些小组件: 

最后的最后
从ExtJS 2.0一直用到4.0,从Flex 3用到Flex 4.5,感慨很多,在ExtJS成长的过程中我已渐渐的从前端转向了后端,不是因为我不再热爱前端和RIA,而是因为我觉得多方的了解与涉及能让自己得到更好的升华,目前专注j2ee开发,主要涉及Spring、Spring Security、CAS SSO、JMS ActiveMQ、Hibernate、jBPM、Oracle。
其它的包括C#、C++QT4、jQuery等等也装模作样的学了些,所以不要再讨论某个语言某个框架的优劣,有这个时间可以学到很多很多东西。何必眼光这么狭隘呢?,争论太浪费精力。少点争论多点实际付出。
Happy coding~!

 

参见:

http://blog.csdn.net/zhangxin09/article/details/6191740  Ext JS 4的倒数:程序员预览 Countdown to Ext JS 4: Developer Preview

Continue reading 【转】ExtJS 4.0 的改变--较为完整的介绍。

重装mysql无法启动服务的问题

之前装的mysql5.1,但是经过系统还原后服务没有了,干脆升级到5.5,但是安装好了,配置时最后一步就是启动不了!

查看日志:programdata/data/pc.err发现:

111121 22:16:50  InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 10 MB
InnoDB: Database physically writes the file full: wait...
111121 22:16:50  InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
111121 22:16:50 InnoDB: Cannot initialize created log files because
111121 22:16:50 InnoDB: data files are corrupt, or new data files were
111121 22:16:50 InnoDB: created when the database was started previous
111121 22:16:50 InnoDB: time but the database was not shut down
111121 22:16:50 InnoDB: normally after that.
111121 22:16:50 [ERROR] Plugin 'InnoDB' init function returned error.
111121 22:16:50 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
111121 22:16:50 [ERROR] Unknown/unsupported storage engine: INNODB
111121 22:16:50 [ERROR] Aborting

在网上一查,原来要将ib_logfile0,ib_logfile1,还有ibdata1这三个文件删掉才行,它们分别在data和programdata目录中(在配置时由你指定的)。

但是最后还是连不上,即使是服务启动了,就是连不上。

总是在第四步的security setting上提示1045 Error,死活不能连接'root'@'localhost' password[YES]

找这篇文章来:http://marclee.blog.163.com/blog/static/40317017201157101349210/ 任然不行。

没办法,退回去下载5.1的,安装顺利。

╮(╯▽╰)╭,还是老老实实用5.1吧!

Continue reading 重装mysql无法启动服务的问题

Pagination


Total views.

© 2013 - 2019. All rights reserved.

Powered by Hydejack v6.6.1