存档

  • 在Godaddy的主机上配置CodeIgniter

    之前在CodeIgniter上部署过一个小的CodeIgniter的应用,参考了这篇文章,当时顺利的完成了部署运行的任务。主要是因为在Godaddy的虚拟主机上使用rewrite模块产生的问题,原因不知道,只知道一种解决问题的办法。主要的步骤为: 在config.php里修改配置,使用QUERY_STRING的方式来解析URL $config['uri_protocol'] = "QUERY_STRING"; 然后,修改.htaccess文件,使其内容为如下所示: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?$1 [L] 这样,某个请求,如http://www.example.com/blog/view/123 ,实际上会被解析成http://www.example.com/index.php?blog/view/123 ,但是,假如我使用的请求必须通过GET方法传参数呢?这种解决方案就不能解决问题了。如http://www.example.com/index.php?blog/view/123?from=1009&author=bbiao ,这个时候就无法通过parse_str($_SERVER['QUERY_STRING'], $_GET);的方法来获得GET的数据了。但是我们可以观察到$_SERVER['REQUEST_URI']里保存了blog/view/123?from=1009&author=bbiao的值,OK,解析一下这个数据就可以了。代码如下: $arr = explode(‘?’, $_SERVER['REQUEST_URI']); parse_str($arr[1], $_GET); 另外说一句,由于CI里是把$_GET的数据清空的,所以才有了以上的这些说法,CI本身是不推荐使用GET来传递参数的,但有时候又不得不用,比如使用OAuth的时候,别人回调你的接口的时候都是这样传的,你能怎么办呢?事情总有解决办法的,现在我的程序在Godaddy上跑的一切正常。

    329 次查看 | 没有评论
    2010年6月2日 | 归档于 CodeIgniter, Linux, opensource
  • Xen Cloud Platform 0.1.1

    Xen Cloud Platform 是一个基本Xen虚拟化技术的云计算基础平台,这半年一直在使用另外一个商业版本XenServer,少对XCP有所关注,今天看了它的官方主页,XCP今年有一个新的版本发布,版本号是0.1.1,我去年使用XCP的时候,其版本还是0.1,这里对新版本做一个简单的介绍。 版本0.1.1发布于今年1月18号(汗,现在才知道),新增加的功能包括: Openvswitch XCP Console Documentation VNC Console Proxy and Web Front-End Standalone Front-End – *openxencenter* VM Lifecycle Queuing Deadlock Fixed Rare Post-Fork() Spinning XAPI Process Fixed Active Directory Authentication Fixes Memory Ballooning Fixes 其中描述的单独的前端就是XenCenter的一个开源Python实现,试用了一下,与XenCenter 5.5还是有一定差距的,但是总算是有一个前端可以选择了,之前用xe cli和Web管理太痛苦了,详细信息和下载,可以到XCP的主页查看。

    550 次查看 | 没有评论
    2010年5月22日 | 归档于 Linux, opensource, 云计算, 虚拟化
  • 使用JDK进行Performance Tuning

    JDK里有三个很好用的工具,jmap,jconsole和jvisualvm,三个工具都各有所侧重,但是如果你的系统遇到性能瓶颈(内存不足或是CPU占用率过高),你可以通过这三个工具来发现应用里的hot spot。我今天只记一下大概的用法,给自己做个备忘,详细的使用说明,等忙完了这段时间,整理一下。 先介绍一个小工具,jps,这也是jdk自带的工具之一,可以列出系统里所有的java进程。 jmap可以查看程序中堆的使用情况,具体的用法是: jmap –histo:live <pid>; 以及可以将堆dump到一个文件,命令是: jmap –dump:format=b,file=heap.bin <pid>; 请在<pid>处填入相应的进程的id。 jconsole可以查看某个java进程的内存使用、CPU占用率等, 如果想要远程查看某一java程序,则需要在该程序启动参数里加下如下参数: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 上文使用的9001是监听的端口号,你可以指定其他的值。然后在你的终端键入jconsole,选择连接远程进程,并填入相应的主机名和端口即可。如果无法连接,请修改/etc/hosts里的内容,将localhost绑定到机器的外部ip地址。 相应的数据可以导出为一个csv文件,这个很方便。 jvisualvm功能与jconsole的基本类似,但是可以做性能分析。 即可以分析出CPU时间被哪些线程所占用了,等等,并且它支持jmx,这东西我只听说过没用过,先放一边不表。 配置jvisualvm不需要改动原程序的启动参数,只需要在远程主机上运行jstatd即可。 新建一个叫jstatd.all.policy的文件,内容是: grant codebase "file:${java.home}/../lib/tools.jar" {     permission java.security.AllPermission; }; 然后使用如下命令启动jstatd, jstatd -J-Djava.security.policy=jstatd.all.policy 然后在jvisualvm里选择添加远程主机即可。如果无法连接,请修改/etc/hosts里的内容,将localhost绑定到机器的外部ip地址。

    563 次查看 | 2 条评论
    2010年4月12日 | 归档于 Java, Linux, 技术, 软件
  • CentOS配置vsftpd遇到550错误的解决办法

    安装vsftpd很简单:yum install vsftpd 启动vsftpd也很简单:service vsftpd start 默认情况下用root是无法连接的,你可以创建一个非root帐户登录,但是登录是可以登录,却没有办法创建或是上传文件。有人说,可以把SELinux关掉,可是这样未免也有点尺度太大了,其实是SELinux里的设置问题,只要修改相应的配置就可以了。 发现问题的方法: # getsebool -a | grep ftp allow_ftpd_anon_write –> off allow_ftpd_full_access –> off allow_ftpd_use_cifs –> off allow_ftpd_use_nfs –> off ftp_home_dir –> off httpd_enable_ftp_server –> off tftp_anon_write –> off 将红色字体部分的值改成on就可以了,设置的方法如下: # setsebool -P ftp_home_dir 1 然后就可以上传文件,做你想做的事情了。

    596 次查看 | 没有评论
    2010年1月27日 | 归档于 Linux, 技术, 软件
  • Python and RRD

    RRD是Round Robin Database的意思,RRDTool是用来管理RRD的一个工具。RRDTool的主页在这里,Wikipedia的页面在这里。RRD其实就是一个时序数据库,使用一个固定大小的环型buffer,适用于存储一些统计性的信息,如CPU负载呀,气温变化呀。我为什么要说这个东西呢,因为XenServer里的性能统计是用的RRD,你可以访问诸如http://xenserver-host/rrd_updates?cf=AVERAGE&interval=5&start=123131321形式的网址来获取统计信息。XenServer将返回一个XML文件,这个XML文件其实就是用rrdtool里的export工具导出的。 好,下载完成了这个文件以后,我们假设文件名是data.xml,你可以使用rrdtool restore data.xml data.rrd的方式将数据重新恢复成rrd的格式,然后就可以使用rrdtool进行一系列操作。rrdtool的操作可以写十篇博客,这不是我今天想说的重点。 我今天想说的是,当我把rrdtool跟Python集成的时候,发现Python提供了若干封装的工具,比如Python-PyRRD,Python-rrd,Python-rrdtool,我想没几个人能搞明白这几者之间的关系吧。我来说一下。 Python-rrdtool,这个就是rrdtool的一个Python封装,调用方式与rrdtool里命令的格式是一致的。 Python-rrd,这个据说应该是rrdtool的前身,命名方式不符合Python的命名策略,所以改名成了Python-rrdtool,但是debian和ubuntu的源里还保留了一个过渡性质的傀儡包(transitional dummy package),其实就是Python-rrdtool Python-PyRRD,这个是OO化的rrdtool封装,个人比较推荐用这个包,方便,代码也更容易让人理解。 另外,Java也提供了两个rrdtool的封装,一个是JRobin,一个是rrd4j,后者是在前者的基础上做的,提供了更好的OO的支持和性能。但是这两个项目似乎更新得很慢,XenServer导出的rrd数据(version 0003)他们现在不支持(只支持到version 0001)。所以想用Java分析XenServer的性能,还是自己去解析那个xml文件吧。

    825 次查看 | 3 条评论
    2010年1月8日 | 归档于 Java, Linux, Python, Unix, 技术, 数据库
  • Linux\Unix性能测试

    最近在做云计算,接触到一些虚拟化的技术,所以想测试一下虚拟机的性能到底如何,这里给出一个方法,利用UnixBench来为服务器做性能测试。 1: wget http://byte-unixbench.googlecode.com/files/unixbench-5.1.2.tar.gz 2: tar -xzvf unixbench-5.1.2.tar.gz 3: cd unixbench-5.1.2.tar.gz 4: make 5: ./Run .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { [...]

    295 次查看 | 没有评论
    2009年12月18日 | 归档于 Linux, Unix
  • Windows 7 引导信息修复方法

    bootsect /nt60 SYS /mbr 你可以使用win7安装盘(非OEM安装盘)启动系统,并选择修复系统。然后选择命令行,敲入以上命令。一般可以修复由于安装Linux失误,或是先装Windows XP再装Windows 7造成的引导信息错误。

    1,211 次查看 | 没有评论
    2009年12月16日 | 归档于 Linux, Windows
  • 在CentOS 5.4上安装CouchDB

    CouchDB一种半结构化面向文档的分布式,高容错的数据库系统,具体的可以参见其网站上的文档,以及这里的一篇技术简介的翻译。CouchDB在Ubuntu下安装非常方便,只需要使用sudo apt-get install couchdb即可,我以为在CentOS中也会比较容易,没想到却遇到了比较多的问题。主要包括: CentOS的安装源里不包含CouchDB CouchDB需要Erlang的运行时支持,CentOS的安装源里也没有Erlang OK,我们一步一步来搞定在CentOS下安装CouchDB。首先需要安装Erlang,却Erlang的官方网站下载源码,然后在本地编译安装:具体的脚本为: 1: wget http://www.erlang.org/download/otp_src_R13B02-1.tar.gz 2: tar–xzvf otp_src_R13B02-1.tar.gz 3: cd otp_src_R13B02-1 4: ./configure 5: make && make install 中途有可能会遇到一些依赖的问题,比如缺少icu、ncurses、wxWindows等,前面几个大略都可以从yum时行安装,wxWindows可以不问,如果你之后不准备使用Erlang进行UI编程的话,这些也足够用了。 Erlang安装完成之后,测试一下在bash里erl和erlc能否使用,若能,则这一步就完成了。 接着是安装CouchDB,由于CouchDB里用到了JavaScript,所以其依赖于SpiderMonkey,需要先安装libmozjs这个库,步骤为: 1: wget ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz 2: tar–xzvf js-1.8.0-rc1.tar.gz 3: cd js/src 4: make BUILD_OPT=1–f Makefile.ref 编译应该不会出什么问题,如果你的机器没有配置编译环境,你可以参考这篇文章进行配置。 可以当我执行make –f Makefile.ref install的时候傻了,没有这个target,好吧,我们自己写脚本安装这个库。代码如下: 1: #!/bin/bash 2: mkdir -p /usr/include/mozjs/ -v 3: cp *.{h,tbl} 4: [...]

    358 次查看 | 没有评论
    2009年11月17日 | 归档于 Freeware, Linux, 未分类
  • Freeware – XAMPP

    自己使用过很长一段时间的Apache+MySQL+PHP,虽然各自都有安装文件,但是对于一个刚接触这些东西的人来说,一定会被它的配置困扰过,刚开始不懂,去网上一通乱查,后来知道了去看文档,但是这种成熟的软件,一般配置项都比较复杂,而且像mysql更是缺少一个易用的管理客户端。xampp现在看来是一个不错的选择,安装以后,apache,mysql,php便立即可用,推荐。 另外,推荐安装xampplite,这个版本不包括FileZilla Server,一般做开发也不需要架设FTP。 下载:http://sourceforge.net/projects/xampp/

    258 次查看 | 没有评论
    2009年8月24日 | 归档于 Freeware, Linux, Windows
    标签: , , ,
‘Linux’ 分类的存档