金老师,一路走好。
金国兴老师,敬爱的地理都是,虽然只教我们一年地理,事隔10载记忆犹新,不幸的是,他于1月11日中午突发心肌梗死离世,英年45岁。愿他天堂之路走好。
金国兴老师,敬爱的地理都是,虽然只教我们一年地理,事隔10载记忆犹新,不幸的是,他于1月11日中午突发心肌梗死离世,英年45岁。愿他天堂之路走好。
今天编译memcache扩展,由于从别的机器拷过来的,忘记make clean,出了点插曲,备忘下
cd memcache-2.2.5
/usr/local/bin/phpize
make clean
./configure –enable-memcache –with-php-config=/usr/local/bin/php-config –with-zlib-dir
make
make install
编译后会生成memcache.so
例如我的是:
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/
修改php.ini
将extension_dir改为以上目录或将生成的so文件移至extension目录
添加行
extension=memcache.so
当您需要创建一些内容和菜单部分很多的大型网站时,往往需要多级的菜单来将内容分类,这里收集合了38个 css 和 jQuery 多级下拉菜单解决方案,主要是基于jQuery和CSS下拉或多层次的下降可加载的文件,并且您只需要修改下CSS。就能快速搭建您自己的多级下拉菜单。
昨天将服务器配置了svn服务,现作整理(以centos linux为例),以作备忘。
yum install subversion subversion-tools yum install libapache2-svn mod_dav_svn
假定我们将版本库存放在/data/svn/repos
mkdir -p /data/svn/repos cd /data/svn/repos svnadmin create test
如果要导入一些已有的代码,假定/data/www/test有一些写好的代码要导入到库中
svn import file:///data/www/test /data/svn/repos/test
这里导入成功后版本为1
(该文件在安装mod_dav_svn后自动产生)
取消注释以下行
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /data/svn/repos # <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Authorization Realm" AuthUserFile /data/svn/passwordfile Require valid-user # </LimitExcept> </Location>
说明:SVNParentPath指明SVN父目录,如果以一个版本库管理所有项目,则使用SVNPath即可。
AuthType
AuthName
AuthUserFile
这几项我指明了要经过http认证才可以访问该svn
使用htpasswd -c /data/svn/passwordfile username来创建密码文件
当然还可以使用mysql验证用户,需使用mysql_auth_module模块。
如下
Revision 1: /
* config.inc.php
* htmls/
* includes/
* sqlite/
参考文档: http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/
Powered by Subversion version 1.4.2 (r22196).
由于公司网站的日志文件按天为目录存放,格式如下
20090901
20090902
……
时间一长,硬盘老暴满,正好前些天看过点shell的知识,应用一下^_^
#!/bin/bash #日志保留月份数 reserveMonth=2 #需保存的最早一天的日志 oldest=`date -d "-$reserveMonth month" +%Y%m%d` #日志存放目录 workdir='/home/phpman/test' #搜索目录 dirs=`ls $workdir -F | grep -P '\d{8}/' | sed 's/.$//'` for i in $dirs;do #早于最早那天的,删除 if test $i -le $oldest then tmp_dir=${workdir}/$i #记录此次操作的记录 echo "Directory '$tmp_dir' deleted at `date '+%Y-%m-%d %H:%M:%S'`" >> ${workdir}/delete.log rm -rf $tmp_dir fi done
然后将计划放入crontab
30 1 * * 5 root /root/clean_log.sh
每周六1:30执行下
周末不想加班的雷人大帝
PHP处理XML类文档主要有两个模块,一般简单点用SimpleXML,不过他只能作遍历、取值、取属性等操作,而不能进行删除修改节点的操作。使用libxml的DOMDocument功能比较强大,不过也比较麻烦。今天就遇见一问题,折腾很久~
有XML格式如下:
<foo xmlns="test"> <bar attr='a'></bar> <bar attr='b'></bar> <bar attr='c'></bar> </foo>
开始尝试解析
<?php $dom = new DOMDocument; $dom->loadXML($xmls);//xmls变量为以上XML的字符串内容 $messages = $dom->getElementsByTagName('bar'); foreach($messages as $k=>$message){ if(!is_object($message) || ($message->getAttribute('attr') == 'a')){ continue;//属性attr 为a的保留 } $message->parentNode->removeChild($message); } echo $dom->saveXML();
//原以为删除了attr属性不为a的bar节点,可是却混淆了!后来尝试了replaceChild等,也不是太理想,而且还麻烦
//最后在PHP官方发现也有人提了此问题,并且人家找到办法绕过了此BUG
You can’t remove DOMNodes from a DOMNodeList as you’re iterating over them in a foreach loop. For example… 意思是说在遍历节点的时候进行删除操作会得到意想不到的结果,因此将要删除的结点暂存起来,最后再来删除
修正以上代码:
<?php $dom = new DOMDocument; $dom->loadXML($xmls);//xmls变量为以上XML的字符串内容 $messages = $dom->getElementsByTagName('bar'); $deletemessages = array(); foreach($messages as $k=>$message){ if(!is_object($message) || ($message->getAttribute('attr') == 'a')){ continue;//属性attr 为a的保留 } $deletemessages[] = $message; } //删除 foreach($deletemessages as $k=>$v){ $v->parentNode->removeChild($v); } echo $dom->saveXML();
好了!这样就正常了……
参考PHP文档:http://us3.php.net/manual/en/domnode.removechild.php
上月下载了很多百家讲坛的mp3,每天上下班用来打发时间。昨刚把阎崇年老师的明亡清兴60年听完。
明亡清兴从袁崇焕之死说起,经过明万历、泰昌、天启、崇祯,最后又以袁崇焕的历史评价终。把这60年历史讲述的淋漓尽致,人物个性,历史功过描述得很明朗。将明亡清兴的诸重要战役贯穿整个讲座,如萨尔浒大战、锦宁之战、宁远大捷、后来北京之战及最后的山海关大战等。同时还把这时期的主要历史人物作了描述,如万历皇帝的荒淫,不理朝政;天启皇帝爱做木工,是个十足的木匠皇帝;崇祯皇帝的多疑残暴;努尔哈赤的英勇睿智;袁崇焕的大仁、大智、大勇、大廉及尤其是崇高的爱国精神,值得我们借鉴与学习。
感谢大师阎崇年~将毕生的历史研究献给我们^_^
使用putty的用户都知道,可以使用-l -pw参数设置快捷方式,以自动连接至远程主机,也可以用key方式 。
ubuntu下要用终端terminal自动连,也可以实现。首先装sshpass,apt-get就可以了。
然后在system->preferences->main menu里加一个new item项,其中command写上gnome-terminal –command ’sshpass -p pass ssh user@anyhost’就可以了。怎么样,很方便吧^_^
当然,putty亦有linux版的~