2008年11月19日

本站部分文章和评论丢失

今天由于本人操作失误,登录错了数据库,导致误删数据,数据库恢复到了本月的14号。

两个字伤心啊,教训啊,看来需要每天备份+写完完整备份。

  • » 阅读全文...
  • 2008年11月18日

    FreeBSD与Linux比较

    今天在ChinaUnix.net看到又一几个无聊的家伙在讨论FreeBSD好,还是Linux好,甚至有一点火药味。今天就比较一下FreeBSD和Linux。

    传说中FreeBSD比linux稳定,大型网站几乎都建立在FreeBSD系统上,我一直疑惑难道linux是否真的不能做大型网站。于是用netcraft网站做了个测试:
    http://toolbar.netcraft.com/site_report?url=www.phpchina.com
    按照上面的链接你就可以查询任何一个网站的服务器架构,当然,可信度和准确度我不能保证。下面是我测试的案例:
    www.phpchina.com 清一色linux;
    www.tencent.com 清一色linux;
    www.qq.com 清一色linux;
    www.taobao.com linux;
    www.ebay.com.cn 查询显示OS清一色linux,WebServer清一色IIS,令人费解;
    www.alibaba.com 清一色linux;
    www.bokee.com 清一色的linux;
    www.google.com 清一色linux;
    www.pconline.com.cn linux;
    www.yninfo.com 清一色的linux;
    www.tom.com  清一色Debian(也是Linux);
    www.cctv.com linux+sun的服务器;
    www.126.com 清一色linux
    www.163.com 清一色linux,大家或许都认为网易是使用FreeBSD的,
    但163/126就全部用上了linux,令人费解。
    看来用linux做大站的也不少啊!!!谁说linux不能做大站呢?

    另外又发现两个奇怪的东东:
    www.ebay.com 居然清一色的win2000!!!
    http://www.myspace.com 全美访问量第一,居然也清一色的win2003;

    在我印象中,大型网站是压根不能用windos系统的。但这两个案例给我的理论一个有力的回击:系统稳定与否,关键还是在人!
    无论是Windows还是FreeBSD还是Linux都可以做大型网站,只要人足够牛X就行。这里不谈windows了,还是从大家口水仗打得最厉害的linux和freebsd分析分析吧。
    首先说明一点:为什么不拿linux和windows比较,而只是和freebsd比较呢?答案在于linux或是freebsd都感觉到了对方带来的压力,都认定对方是自己的竞争对手。既然称得上是对手,自然是各有所长,难分轩轾,谁也不能把谁压倒罢了。

    论坛里争论FreeBSD和linux谁谁更好,其实是从一个静态的角度来看的,在某个特定时间里,FreeBSD或许比linux更稳定,linux或许比FreeBSD更快捷,但两家都在动态发展,没有谁永远领先,没有谁永远落后,FreeBSD稳定的特性,Linux2.6可以超越它;而linux 快捷的优势,FreeBSD也会迅速居上。我就不信,linus和他的黑客团队在技术上会输给学院派的FreeBSD团队?或者FreeBSD的高手们比不上一群黑客,?他们谁都可以暂时领先,谁都可以暂时落后,但谁都不是吃干饭的!

    目前流行这么一种传说:linux和freebsd内核性能上相比:linux2.2比freebsd要差,linux2.4和freebsd难分伯仲,而linux2.6比freebsd好得多。这里freebsd被静态化了,以一个动态发展的linux去比较某个固定版本的freebsd,显然是有失公平的。有道是:士别三日,即更刮目相看,更何况是技术日新月异的IT行业!
    又有这么一种说法:LINUX被黑的多而FreeBSD被黑的少,盖出于安全性较逊?这也是无稽之谈,用liunx的人基数比freebsd大,菜鸟自然也就更多了。系统安不安全关键在人,如果你不信,可以尝试去黑一下www.ebay.com或www.myspace.com,他们的服务器可都是windows哟。

    其实两家最根本的差别不在技术,而在于设计理念:linux不求最稳,但求最新;FreeBSD不求最新,只求最稳——这样说也许不对,但也能反映一些问题。
    我对FreeBSD与Linux比较的最终结论是:谁好谁稳定都只是暂时的,两家的存在状态,是一个“既生瑜何生亮”的问题,在长久的发展过程中,技术上的常胜将军并不存在,双方只有此消彼长,各领风骚。至于大家为什么非要证明FreeBSD比Linux好或Linux比FreeBSD好,我想程序员普遍都喜欢追求完美,非要用最好最完美的系统才甘心吧!

    FreeBSD和Linux我都用过,不在超大型应用中,很难感受两者的差别。个人选择的linux,考虑到使用linux的人比较多,商机自然也就更多吧,钱在哪眼光就看哪,至少linux的就业机会比FreeBSD多。当然,这是非技术因素的考虑了。
    Licess 最后说一句:其实用FreeBSD也好,用Linux也好,只要你用牛叉叉了,适合你的才是最好的。

  • » 阅读全文...
  • 2008年11月17日

    网站运营五字诀:势 时 使 适 实

    指是否能按时推进开发和推广计划。计划做好后重要的执行,坚定不移地执行。
    指是否善于造势。人们往往不是靠自己的大脑分析而是靠自己的眼睛判断。

    使 指是否便于用户使用。追求用户使用方便,创造用户完美体验是网站日常管理的重心。

    指是否有适合的营销模式。营销模式没有最好,只有适合,你的营销模式能充分体现你的网站优势和特色吗?能吻合用户的消费心理和购买行为吗?

    指是否能给参与各方带来实惠的效益,靠面子不会长久,要靠实实在在的分配和激励政策。

  • » 阅读全文...
  • 2008年11月13日

    用穿越火线快速入门php面向对象

    1. <?php  
    2. /*  
    3. *用穿越火线快速入门php面向对象!  
    4. *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水!  
    5. *,借助此文希望对初学者有所帮助,假设Crossfire用php来开发.  
    6. * 1类与对象  
    7. */ 
    8. class Crossfire  
    9. {  
    10.         public $Category='1,2,3'//枪械种类,3个选择武器类别  
    11.         public $Weapon='ak|awp|m4a1';//购买的武器,拥有的武器  
    12.         public $Flashlight=true;//是否购买闪光弹  
    13.         public $Bomb=false; //购买了闪光同等条件下不能再次购买手雷  
    14.         function attack()  
    15.         {  
    16.                 //攻击的代码 $this->Weapon;使用武器  
    17.     }  
    18.         function repair()  
    19.         {  
    20.                 //修理武器的代码  
    21.         }  
    22.         function destroy()  
    23.         {  
    24.                 //武器坏了自动销毁代码  
    25.         }  
    26.         /*  
    27.          * 我们把cf看成是一个类,cf里面有主武器,副武器,枪械,刀类,弹物,防弹衣,喷图等等..  
    28.          * 以上都是类中的成员属性,假如武器坏了,那么我们就得维修,维修就是类的成员方法!  
    29.          * 每种枪械都有不同的威力,不同的子弹数量,大小不同但是都是武器类,这是类和对象的关系(类的实例化结果就是对象)。  
    30.          *   
    31.          */ 
    32.           
    33.         function __construct()  
    34.         {  
    35.                 //武器维修 $this->repair();  
    36.         }  
    37.         function __destruct()  
    38.         {  
    39.                 //武器超过耐久自动消失 $this->destroy();  
    40.         }  
    41.         private function buy()  
    42.         {  
    43.                 //购买武器私有属性代码  
    44.         }  
    45.         private function __get()  
    46.         {  
    47.                 //调用购买的武器代码  
    48.         }  
    49.         private function __set()  
    50.         {  
    51.                 //给买的武器购买子弹数量代码  
    52.         }  
    53.         private function __isset()  
    54.         {  
    55.                 //检查钱数是够购买子弹数  
    56.          }  
    57.         private function __unset()  
    58.         {  
    59.                 //如果中途死亡自动掉落武器  
    60.         }  
    61. }  
    62. class role extends Crossfire   
    63. {  
    64.         //个人角色继承cf的属性,角色可以使用购买,销毁上面的物品  
    65.         function attack()  
    66.         {  
    67.                 Crossfire::attack();  
    68.                 $this->Weapon='awm-a';  
    69.                 //如果中途换枪,加入换枪的弹量,伤害!  
    70.         }  
    71.         final function vip()  
    72.         {  
    73.                 //购买vip,final关键字是禁止方法和属性继承!vip是需要money购买,所以因此不能被继承!  
    74.         }  
    75.           
    76.         public static $awm=100;//awm 伤害是固定的所以用静态  
    77.         public static function awm()  
    78.         {  
    79.          self::$awm;//awm攻击代码,self调用静态. 方法的重载  
    80.         }  
    81.         public function __toString()  
    82.         {  
    83.                 return $this->repair(); //自动返回武器维修的费用  
    84.         }  
    85. }  
    86. interface map  
    87. {  
    88.         //地图代码,一个子类只能继承一次父类,地图是每个玩家都要用的,显而意见继承是不能够满足需求的,接口为我们解决瓶颈!  
    89.           
    90.         public function map1()  
    91.         {  
    92.                 //黑色城镇  
    93.         }  
    94.         function map2()  
    95.         {  
    96.                 //运输船  
    97.         }  
    98.           
    99. }  
    100. interface vipmap extends map   
    101. {  
    102.         //如果是会员就显示会员地图,继承接口总地图  
    103.         function _vipmap()  
    104.         {  
    105.                 //vip建图颜色先是红色  
    106.         }  
    107.         function _vipmap1()  
    108.         {  
    109.                   
    110.         }  
    111. }  
    112.  
    113. $cf=new Crossfire();  
    114. echo $cf->Weapon;//输出拥有的武器!  
    115. /*  
    116.   *   $对象名称= new 类名称();  
    117.        创建新类我们使用new,我们新创建了一个cf类,$cb就是Crossfire的对象!  
    118.  &nb sp;     多态的应用,抽象类没有讲,当然一个完整的游戏是不可能从此简单的,只是做个比喻!  
    119.     
    120.  
    121. */ 
    122. $cf2=clone $cf//克隆操作表示所有玩家都使用此类!  
    123. ?> 

     

  • » 阅读全文...
  • 2008年11月11日

    Nginx下Discuz!的Rewrite配置

      昨天说了一些Nginx的Rewrite配置 今天主要说一下Nginx下Discuz!的Rewrite .

    需要说明的是,下网上以前一直流传的Rewrite都是有误的。
    下面的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    正确的应该是
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。包括Discuz!官方,目前已经给cnteacher反馈了。

     

    Nginx实例代码
    server {
    listen 80;
    server_name www.ccvita.com ccvita.com;

    location / {
    index index.html index.htm index.php;
    root /www/www.ccvita.com;
    rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
    rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
    rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
    rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
    rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
    rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;

    }

    location ~ .php$ {
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:8694;
    fastcgi_param SCRIPT_FILENAME /www/www.ccvita.com$fastcgi_script_name;
    }

    location /www.ccvita.com-status {
    stub_status on;
    access_log off;
    }
    }

    预告:明天将会说一下Nginx下Wordpress的Rewrite配置。

  • » 阅读全文...
  • 2008年11月10日

    Nginx的Rewrite配置

           wnmp 已经发布好几天了,参加试用的人也不少,不少人反映如何设置Rewrite 和虚拟主机,在接下来的几天我将会陆续发表相关的文章。

    Nginx的Rewrite
    经过网上查阅和测试,发现Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。比如在Apache中这样写规则
    rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last;
    而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号:
    rewrite “^/([0-9]{5}).html$” /viewthread.php?tid=$1 last;
    同时将RewriteRule为Rewrite,基本就实现了Nginx的Rewrite规则到Apache的Rewite规则的转换。

    Rewrite的Flags
    last - 基本上都用这个Flag。
    break - 中止Rewirte,不在继续匹配
    redirect - 返回临时重定向的HTTP状态302
    permanent - 返回永久重定向的HTTP状态301

     

    官方文档请点击这里

    Discuz!在Nginx下的Rewrite
    需要说明的是,下网上以前一直流传的Rewrite都是有误的。
    下面的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    正确的应该是
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。包括Discuz!官方,目前已经给cnteacher反馈了。

    完整正确的Discuz!在Nginx下的Rewrite如下:
    rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
    rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
    rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
    break;

           Nginx以其良好的并发性能,目前正在逐渐取代Apache成为大家的Web server首选,但是Nginx目前的中文资料很少,需要大家努力贡献。

  • » 阅读全文...
  • 2008年11月6日

    QQ/MSN/Gtalk在线状态与临时对话代码

      大家可以看到在我Blog的右边有 截图1225937151.jpg 一个联系我的小工具。在网上也有很多问的,就分享出来吧。

      QQ的用 http://is.qq.com/webpresence/code.shtml 生成就可以,不过,稍微的麻烦一下,好像功能多一点。或者直接用下面这段代码:

    1. <a target=blank href=tencent://message/?uin=123456789&Site=qq.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:123456789:1 alt="有事点此聊天"></a> 

     

       MSN可以用 MSN在线 http://im.live.cn/imme/ 。

      GTalk 可以用Google提供的http://www.google.com/talk/service/badge/New 这个服务来生成代码。

     

  • » 阅读全文...
  • wnmp 1.0.1 绿色服务器套件|Nginx+PHP集成环境

        wnmp 是一个快速搭建Nginx  0.7.19、PHP    5.2.6、MySQL  5.0.51b、PHPMyAdmin 2.11.9.2、eAccelerator 0.9.5.3、ZendOptimizer 3.3.3、OpenSSL 0.9.8h的绿色服务器套件。只要将opt文件夹拷贝到任意分区、目录,双击运行start.bat即可。
     
        Nginx [engine x]是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器。

        Nginx已经在俄罗斯最大的门户网站——Rambler Media(www.rambler.ru)上运行了3年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。

        注意事项:wnmp程序所在路径不能含有汉字和空格。
        MySQL默认用户名:root,密码为空
        MySQL数据库文件存放目录:mysqldata
        网站根目录www
        访问本机请用 http://127.0.0.1/http://localhost/
        非默认端口,网址为 http://127.0.0.1:端口/ 或 http://localhost:端口/

        wnmp集成一下软件:
      Nginx  0.7.19
      PHP    5.2.6
      MySQL  5.0.51b
      PHPMyAdmin 2.11.9.2
      eAccelerator 0.9.5.3
      ZendOptimizer 3.3.3
      OpenSSL 0.9.8h

    下载wnmp 1.0.1

  • » 阅读全文...
  • 2008年11月5日

    Fatal error: Unable to read 1365 bytes 类似错误解决方法

    以前在安装Discuz/supersite时,出现过Fatal error: Unable to read 35202 bytes in /XXXX.php on line X

    今天在Linux服务器上安装J_Space 4.2的时候,又出现了这个问题~

    记下来吧,好记性不如Blog,呵呵

    看看你上传到服务器上的文件是不是通过二进制传的。

    具体的如何使用二进制,各个FTP软件都不一样,我就不说了。

  • » 阅读全文...
  • 2008年11月4日

    J_Space 4.2 人才招聘系统 破解版 免费下载

    J_Space 4.2 人才招聘系统

    book.gif

    演示地址:http://www.licess.cn/j_space/

    这个是自己买的,给需要的兄弟姐妹~

    不收费,留下邮箱即可,不能用于买卖,支持本站请打开 http://www.ziddu.com/register.php?referralid=(y[YO]x@wL  注册一个帐号,随便上传一个文件。

    最近比较忙,暂停发放~

    支持本站请点击,前面的图片,注册一个用户,随便上传一个文件,谢谢!

    请勿再留邮箱,打开 http://www.ziddu.com/register.php?referralid=(y[YO]x@wL  注册一个帐号,随便上传一个文件。然后在打开 J_Space下载地址:http://www.ziddu.com/download/2812150/J_space4.2.rar.html 输入验证码,下载就OK了。

  • » 阅读全文...