为memcached创建启动脚本
作者:pakey 发布时间:April 14, 2012 分类:Linux
memcached是个好东西,自从用了之后欲罢不能,干什么都想memcache一下。
之前的开发环境是win7下装个wampserver,虽说版本和生产环境差不多,但是win和linux的差距是个不可逾越的鸿沟,最近开始了使用虚拟机装个ltmp的实际环境来进行开发,尽量达到一次完成,不需要将来在进行调整。
环境安装很好说,网上教程一大堆,只是在安装完memcached的时候出现了问题
无法使用service启动,甚至于连/etc/init.d/下的启动脚本都没有,这让我百思不得其解,无奈只有自己创建memcached的启动脚本了
空间转移完毕,恢复访问!
作者:pakey 发布时间:April 6, 2012 分类:Other
学了一段时间linux,感觉成熟了,于是把这个博客从win上面转到了这个linuxvps上面
用的yardvps的 感觉还可以 比较稳定
vm虚拟机中centos关闭桌面服务后无法联网的解决
作者:pakey 发布时间:April 6, 2012 分类:Linux
vmware真费资源,为了减轻一下资源占用,于是决定关闭centos的桌面服务
vi /etc/inittab 修改为3即可,然后reboot重启,即可进入不带桌面服务的centos
但是进去之后,发现无法联网。
通过ifconfig发现原来是没有配置
vi /etc/sysconfig/network-script/ifcfg-eth0
BOOTPROTO=dhcp
GATEWAY=192.168.79.2
NETMASK=255.255.255.0
ONBOOT=yes然后重启network服务即可,当前这里面需要根据你的情况进行配置
service network restart THINKPHP SQL解析缓存bug的研究及修复
作者:pakey 发布时间:April 2, 2012 分类:Thinkphp
BUG形式:
我缓存默认方式为memcache ,然后开启了sql解析缓存。
这样日志一直报连接错误。错误如下
而不开启sql解析缓存则无错。
memcache中set和replace方法的区别
作者:pakey 发布时间:March 30, 2012 分类:PHP
在memcache中replace和set在一定程度上作用是一致的,都是改变某个元素的值,但是之间略有不同。
我们来用例子说明
$mem=new Memcache;
$mem->connect("localhost", 11211);
//直接set
$mem->set("mystr1", "this is a memcache test1!<br>", MEMCACHE_COMPRESSED, 3600);
echo $str=$mem->get("mystr1");
//直接replace
$mem->replace("mystr2", "this is a memcache test2!<br>", MEMCACHE_COMPRESSED, 3600);
var_dump($str=$mem->get("mystr2"));
//先add在replace
$mem->add("mystr3", "this is a memcache test3!<br>", MEMCACHE_COMPRESSED, 3600);
echo $str=$mem->get("mystr3");
$mem->replace("mystr3", "this is a memcache test31!<br>", MEMCACHE_COMPRESSED, 3600);
echo $str=$mem->get("mystr31");
//先add在set
$mem->add("mystr4", "this is a memcache test4!<br>", MEMCACHE_COMPRESSED, 3600);
echo $str=$mem->get("mystr4");
$mem->replace("mystr4", "this is a memcache test41!<br>", MEMCACHE_COMPRESSED, 3600);
echo $str=$mem->get("mystr41");运行结果这里我们就不写出了,个人强烈建议你运行一下,这样可以加深印象!
最终的结论就是在对已有值的元素处理上两者是相同的,但是对于一个不存在的元素,set的作用就和add相当,replace则是只能对已经存在的元素进行处理
开始使用< !DOCTYPE HTML >吧
作者:pakey 发布时间:March 29, 2012 分类:WebDesign
不管是刚接触前端,还是你已经“精通”web前端开发的内容,你应该知道在你写html的时候需要定义文档类型;你知道如果没有它,浏览器在渲染页面的时候会使用怪异模式;你知道各个浏览器在怪异模式下对各个元素渲染是有差异的。所以你会写像这样的doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">好在现在的各种web开发工具都足够强大,支持插入模板代码,因此你并不需要把这又长又臭的doctype一个个字母的敲出来。但是如果你受够了它,你也许可以尝试下面这个写法:
Tp中如何自定义默认模版目录?
作者:pakey 发布时间:March 25, 2012 分类:Thinkphp
今天在论坛中看到了这个问题,当时随手回复了个“配置DEFAULT_THEME”,后来想想觉得不对,于是自己研究一下,发现当初的回答确实是错误的,DEFAULT_THEME是指的修改默认模板,而不是模版目录,主要用于多模版支持。而默认模板目录如何修改呢?Tpl这个。
我们可以打开Common/runtime.php文件,看到如下一行代码
defined('TMPL_PATH') or define('TMPL_PATH',APP_PATH.'Tpl/'); // 项目模板目录
defined('HTML_PATH') or define('HTML_PATH',APP_PATH.'Html/'); // 项目静态目录我想这样大家就知道了吧?
在模版入口定义TMPL_PATH常量即可
类的连贯操作的实现办法
作者:pakey 发布时间:March 24, 2012 分类:PHP
在有的代码中我们看到
$User->where('status=1')->order('create_time')->limit(10)->select();
$User->order('create_time')->where('status=1')->limit(10)->select(); 是不是觉得很帅呢?
今天小研究了一下 终于知道了如何写一个这样子的类
直接上例子
class test{
var $aaa='1';
function a(){
echo 'aaaaaaaaaa<br>';
return $this;
}
function b(){
echo 'bbbbbbbbbb<br>';
return $this;
}
public function c(){
echo 'ccccccccc<br>';
return $this;
}
}
$t=new test();
$t->a()->b()->c();如何看明白了么?关键就是return $this;这个啊
这样return以后