日历

« 2008-10-10  
   1234
567891011
12131415161718
19202122232425
262728293031 

统计信息

  • 访问量: 1705
  • 日志数: 7
  • 图片数: 1
  • 建立时间: 2007-08-21
  • 更新时间: 2007-08-27

RSS订阅

我的最新日志

  • 男人25岁前应该知道的事!

    2007-8-27

    自己不久就是这个年龄的人了,什么事都得抓紧时间做,抄下这此文,勉励自己
    ---------------------------------------------------------

    1.男人是社会的主体,不管你信或不信.所以男人应该有种责任感.   

    2.25岁之前,请记得,爱情通常是假的,或者不是你所想象的那样纯洁和永远.如果你过了25岁,那么你应该懂得这个道理.   

    3.吃饭7成饱最舒服.对待女友最多也请你保持在7成.   

    4.30岁之前请爱惜自己的身体,前30年你找病,后30年病找你.如果你过了30岁,你自然也会懂得这个道理.   

    5.事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现.   

    6.受到再大的打击,只要生命还在,请相信每天的太阳都是新的.   

    7.不要轻易接受追求你的女孩.女追男隔层纱.如果你很容易就陷进去,你会发现你会错过很多东西,失去很多东西.   

    8.请你相信,能用钱解决的问题,都不是问题.如果你认为有钱有女人,没钱没女人,那么女人不是问题.   

    9.请永远积极向上.每个男人都有他可爱的地方,但是不可爱的地方只有不积极面对生活.   

    10.不要连续2次让同一个女人伤害.好马不吃回头草,是有他道理的.如果认真考虑过该分手,那么请不要做任何舍不得的行动.   

    11.如果你和你前女友能做朋友,那么你要问自己:为什么?如果分手后还是朋友,那么只有2个可能:.你 们当初都只是玩玩而已,没付出彼此最真的感情.或者:必定有个人是在默默的付出无怨无悔!   

    12.永远不要太相信女人在恋爱时的甜言蜜语.都说女人爱听甜言蜜语,其实,男人更喜欢.   

    13.请不要为自己的相貌或者身高过分担心和自卑.人是动物,但是区别于动物.先天条件并不是阻挡你好好生活的借口.人的心灵远胜于相貌,请相信这点.如果有人以相貌取人, 那么你也没必要太在意.因为他从某种意义来讲,只是只动物.你会跟动物怄气吗?   

    14.失恋时,只有2种可能,要么你爱她她不爱你,或者相反.那么,当你爱的人不再爱你, 或者从来没爱过你时.你没有遗憾,因为你失去的只是一个不爱你的人.   

    15.请不要欺骗善良的女孩.这个世界上,善良的女孩太少.   

    16.不能偏激的认为金钱万能,至少,金钱治不好艾滋病.   

    17.请一定要有自信.你就是一道风景,没必要在别人风景里面仰视.   

    19.爱情永远不可能是天平.你想在爱情里幸福就要舍得伤心.  
       
    20.如果你喜欢一个认为别人应该对她好的mm,请尽早放弃.没有人是应该对一个人好的.如果她不明白这个道理,也就是她根本不懂得珍惜.   

    21.不要因为寂寞而找gf,寂寞男人请要学会品味寂寞.请记住:即使寂寞,远方黑暗的夜空下,一定有人和你一样,寂寞的人不同,仰望的星空却是唯一.   

    22.任何事没有永远.也别问怎样才能永远.生活有很多无奈.请尽量充实自己,充实生活.请善待生活.  
  • 爱情语录

    2007-8-24

    2

    2

    1

    1

    3

    3

    4

    4

    5

    5

    6

    6

    7

    7

    8

    8

    9

    9

    10

    10

    11

    11

    12

    12

    13

    13

    14

    14

    15

    15

    16

    16

    17

    17

    18

    18

    19

    19

    20
  • smarty实例教程

    2007-8-24

    smarty实例教程

    作者:未知    来源:网络    日期:2005-7-21


    smarty的程序设计部分:

    在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程

    序设计。

    PHP代码:--------------------------------------------------------------------------------

    首先来介绍一下在上一节中我们使用的过的.php文件中的一些元素。同样,我们拿上一节中最开始的那个index.php文件来说明一下:

    ================================================
    index.php
    ================================================
    <?php
    /*********************************************
    *
    * 文件名: index.php
    * 作 用: 显示实例程序
    *
    * 作 者: 大师兄
    * Email: teacherli@163.com
    *
    *********************************************/
    include_once("./comm/Smarty.class.php"); //包含smarty类文件

    $smarty = new Smarty(); //建立smarty实例对象$smarty
    $smarty->templates("./templates"); //设置模板目录
    $smarty->templates_c("./templates_c"); //设置编译目录


    //****大家注意,这里我是我新加入的****//
    $smarty->cache("./cache"); //设置缓存目录
    $smarty->cache_lifetime = 60 * 60 * 24; //设置缓存时间
    $smarty->caching = true; //设置缓存方式

    //----------------------------------------------------
    //左右边界符,默认为{},但实际应用当中容易与Javascrīpt
    //相冲突,所以建议设成<{}>或其它。
    //----------------------------------------------------
    $smarty->left_delimiter = "<{";
    $smarty->right_delimiter = "}>";

    $smarty->assign("name", "李晓军"); //进行模板变量替换

    //编译并显示位于./templates下的index.tpl模板
    $smarty->display("index.tpl");
    ?>

    我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:
    1。/**/语句:
    包含的部分为程序篇头注释。主要的内容应该为对程序的作用,版权与作者及编写时间做一个简单的介绍,这在smarty中不是必

    需的,但从程序的风格来讲,这是一个好的风格。

    2。include_once语句:
    它将安装到网站的smarty文件包含到当前文件中,注意包含的路径一定要写正确。

    3。$smarty = new Smarty():
    这一句新建一个Smarty对象$smarty,简单的一个对象的实例化。

    4。$smarty->templates(""):
    这一句指明$smarty对象使用tpl模板时的路径,它是一个目录,在没有这一句时,Smarty默认的模板路径为当前目录的templates

    目录,实际在写程序时,我们要将这一句写明,这也是一种好的程序风格。
    5。$smarty->templates_c(""):
    这一句指明$smarty对象进行编译时的目录。在模板设计篇我们已经知道Smarty是一种编译型模板语言,而这个目录,就是它编译

    模板的目录,这里要注意,如果站点位于*nix服务器上,请确保teamplates_c里定义的这个目录具有可写可读权限,默认情况下它的编译目录

    是当前目录下的templates_c,出于同样的理由我们将其明确的写出来。

    6。$smarty->left_delimiter与$smarty->right_delimiter:
    指明在查找模板变量时的左右分割符。默认情况下为"{"与"}",但在实际中因为我们要在模板中使用<scrīpt>,scrīpt中的函数定

    义难免会使用{},虽然它有自己的解决办法,但习惯上我们将它重新定义为"<{"与"}>"或是"<!--{"与"}-->"或其它标志符,注意,如果在这里

    定义了左右分割符后,在模板文件中相应的要使每一个变量使用与定义相同的符号,例如在这里指定为"<{"与"}>",tpl模板中也要相应的将

    {$name}变成<{$name}>,这样程序才可以正确的找到模板变量。


    7。$smarty->cache("./cache"):
    告诉Smarty输出的模板文件缓存的位置。上一篇我们知道Smarty最大的优点在于它可以缓存,这里就是设置缓存的目录。默认情

    况下为当前目录下的cache目录,与templates_c目录相当,在*nix系统中我们要确保它的可读可写性。

    8. $smarty->cache_lifetime = 60 * 60 * 24:

    这里将以秒为单位进行计算缓存有效的时间。第一次缓存时间到期时当Smarty的caching变量设置为true时缓存将被重建。当它的

    取值为-1时表示建立起的缓存从不过期,为0时表示在程序每次执行时缓存总是被重新建立。上面的设置表示将cache_lifetime设置为一天。

    9. $smarty->caching = 1:
    这个属性告诉Smarty是否要进行缓存以及缓存的方式。它可以取3个值,0:Smarty默认值,表示不对模板进行缓存;1:表示

    Smarty将使用当前定义的cache_lifetime来决定是否结束cache;2:表示Smarty将使用在cache被建立时使用cache_lifetime这个值。习惯上使

    用true与false来表示是否进行缓存。

    10. $smarty->assign("name", "李晓军"):
    该数的原型为assign(string varname, mixed var),varname为模板中使用的模板变量,var指出要将模板变量替换的变量名;其

    第二种原形为assign(mixed var),我们要在后面的例子详细的讲解这个成员函数的使用方法,assign是Smarty的核心函数之一,所有对模板变

    量的替换都要使用它。

    11. $smarty->display("index.tpl"):
    该函数原形为display(string varname),作用为显示一个模板。简单的讲,它将分析处理过的模板显示出来,这里的模板文件不

    用加路径,只要使用一个文件名就可以了,它路径我们已经在$smarty->templates(string path)中定义过了。

    程序执行完后我们可以打开当前目录下的templates_c与cache目录,就会发现在下边多出一些%%的目录,这些目录就是Smarty的编译与

    缓存目录,它由程序自动生成,不要直接对这些生成的文件进行修改。
    以上我简单的把Smarty程序中的一些常用的基本元素介绍了一下,在后边的例子中你可以看到将它们将被多次的使用。


    接下来介绍一个section循环块与foreach循环块,本来它应该属于模板部分,但是由于它们是smarty的精华所在,而且与smarty程序设计

    部分联系非常紧密,所以就在本节单独拿出来讲一下。

    1. foreach:用于循环简单数组,它是一个选择性的section循环,它的定义格式为:

    {foreach from=$array item=array_id}
    {foreachelse}
    {/foreach}
    其中,from 指出要循环的数组变量,item为要循环的变量名称,循环次数由from所指定的数组变量的个数所决定。{foreachelse}用来当

    程序中传递过来的数组为空时的处理,下面是一个简单的例子:
    ===========================================
    example6.tpl
    ===========================================
    <html>
    <head><title>这是一个foreach使用的例子</title></head>
    <body>
    这里将输出一个数组:<br>
    {foreach from=$newsArray item=newsID}
    新闻编号:{$newsID}<br>
    新闻内容:{$newsTitle}<br><hr>
    {foreachelse}
    对不起,数据库中没有新闻输出!
    {/foreach}
    </body>
    </html>

    ==========================================
    example6.php
    ==========================================
    <?php
    /*********************************************
    *
    * 文件名: example6.php
    * 作 用: 显示实例程序2
    *
    * 作 者: 大师兄
    * Email: teacherli@163.com
    *
    *********************************************/
    include_once("./comm/Smarty.class.php");

    $smarty = new Smarty();
    $smarty->templates("./templates");
    $smarty->templates_c("./templates_c");
    $smarty->cache("./cache");
    $smarty->cache_lifetime = 0;
    $smarty->caching = true;
    $smarty->left_delimiter = "{";
    $smarty->right_delimiter = "}";

    $array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
    $array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
    $array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
    $array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
    $array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
    $array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");

    $smarty->assign("newsArray", $array);

    //编译并显示位于./templates下的index.tpl模板
    $smarty->display("example6.tpl");
    ?>

    =================================================
    example6.php 输出文件
    =================================================
    <html>
    <head><title>foreach使用的例子</title></head>
    <body>
    这里将输出一个数组:<br>

    新闻编号:1<br>
    新闻内容:第1条新闻<br><hr>

    新闻编号:2<br>
    新闻内容:第2条新闻<br><hr>

    新闻编号:3<br>
    新闻内容:第3条新闻<br><hr>

    新闻编号:4<br>
    新闻内容:第4条新闻<br><hr>

    新闻编号:5<br>
    新闻内容:第5条新闻<br><hr>

    新闻编号:6<br>
    新闻内容:第6条新闻<br><hr>
    </body>
    </html>

    foreach还可以用foreachelse来匹配,用foreachelse来表示当传递给foreach的数组为空值时程序要执行的操作,具体的使用方法,请参考

    手册的说明。

    2. section:
    section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内的循环块,它较为复杂,可极大程序上满足程序需要,所

    以在程序中我习惯使用它而不使用foreach,基本原形为:

    {section name = name loop = $varName[, start = $start, step = $step, max = $max, show = true]}

    name: section的名称,不用加$
    $loop: 要循环的变量,在程序中要使用assign对这个变量进行操作。
    $start: 开始循环的下标,循环下标默认由0开始
    $step: 每次循环时下标的增数
    $max: 最大循环下标
    $show: boolean类型,决定是否对这个块进行显示,默认为true

    这里有个名词需要说明:
    循环下标:实际它的英文名称为index,是索引的意思,这里我将它译成"下标",主要是为了好理解。它表示在显示这个循环块时当

    前的循环索引,默认从0开始,受$start的影响,如果将$start设为5,它也将从5开始计数,在模板设计部分我们使用过它,这是当前

    {section}的一个属性,调用方式为Smarty.section.sectionName.index,这里的sectionName指的是函数原型中的name属性。
    {section}块具有的属性值,分别为:
    1. index: 上边我们介绍的"循环下标",默认为0
    2. index_prev: 当前下标的前一个值,默认为-1
    3. index_next: 当前下标的下一个值,默认为1
    4. first: 是否为第一下循环
    5. last: 是否为最后一个循环
    6. iteration: 循环次数
    7. rownum: 当前的行号,iteration的另一个别名
    8. loop: 最后一个循环号,可用在section块后统计section的循环次数
    9. total: 循环次数,可用在section块后统计循环次数
    10. show: 在函数的声明中有它,用于判断section是否显示

    它们的具体属性大家可以参考手册,在程序中可灵活使用它的这些属性,模板部分我就使用过index属性,大家可以回过头去看看。

    同样,{section}也可以配合使用{sectionelse},用来表示传入的数组变量为空时对模板进行的处理。

    我们把上边的那个例子使用{section}来替代{foreach}来实现现样的功能,注意,在这个例子中我只将tpl模板中的{foreach}用

    {section}来实现,php程序文件中没有任何改动,同时加了{sectionelse}处理块:

    ===========================================
    example7.tpl
    ===========================================
    <html>
    <head><title>这是一个foreach使用的例子</title></head>
    <body>
    这里将输出一个数组:<br>
    {section name=loop, loop=$News}
    新闻编号:{$News[loop].newsID}<br>
    新闻标题:{$News[loop].newsTitle}<br><hr>
    {sectionelse}
    对不起,没有任何新闻输入!
    {/section}
    </body>
    </html>

    ==========================================
    example6.php
    ==========================================
    <?php
    /*********************************************
    *
    * 文件名: example7.php
    * 作 用: 显示实例程序2
    *
    * 作 者: 大师兄
    * Email: teacherli@163.com
    *
    *********************************************/
    include_once("./comm/Smarty.class.php");

    $smarty = new Smarty();
    $smarty->templates("./templates");
    $smarty->templates_c("./templates_c");
    $smarty->cache("./cache");
    $smarty->cache_lifetime = 0;
    $smarty->caching = true;
    $smarty->left_delimiter = "{";
    $smarty->right_delimiter = "}";

    $array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
    $array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
    $array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
    $array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
    $array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
    $array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");

    $smarty->assign("newsArray", $array);

    //编译并显示位于./templates下的index.tpl模板
    $smarty->display("example6.tpl");
    ?>

    =================================================
    example7.php 输出文件
    =================================================
    <html>
    <head><title>foreach使用的例子</title></head>
    <body>
    这里将输出一个数组:<br>

    新闻编号:1<br>
    新闻内容:第1条新闻<br><hr>

    新闻编号:2<br>
    新闻内容:第2条新闻<br><hr>

    新闻编号:3<br>
    新闻内容:第3条新闻<br><hr>

    新闻编号:4<br>
    新闻内容:第4条新闻<br><hr>

    新闻编号:5<br>
    新闻内容:第5条新闻<br><hr>

    新闻编号:6<br>
    新闻内容:第6条新闻<br><hr>
    </body>
    </html>

    这里的{section}块的对于变量的命名方式感觉有些别扭,不过没关系,你只要记住模板变量使用:
    $loopName[name].var这种模式就行了,loopName为loop处赋予的变量名,[name]为name处赋予的字符串,.后为为你要在程序数组中设定要

    与值相对应的下标名称就行了。


    好了,smarty学习指南---程序设计篇就写到这里,对于一般的应用,这些知识已经够用了,其它的一些高级技巧大家请参看手册中的例子

    ,下一节将讲讲Smarty在实际应用中的例子,将分别以php内置的mysql语句,phplib中的DB类,ADODB,Pear中DB类来分别讲一下各个类库在同一个例子中的实现。
  • mplayer安装

    2007-8-21

    step1. 下载必要的文件(总共约20分钟)
    下载主程序:
    MPlayer-1.0pre8(有更新版的,建议用这个版本)
    官方解码器:
    essential-20061022.tar.bz2

    官方win32_CODES-all:
    windows-essential-20061022.zip

    皮肤:
    Blue-1.4.tar.bz2

    上面的那几样东西都在官方网站找到并顺利下载
    下载网址: http://www.mplayerhq.hu/homepage/design7/dload.html
    step2. 安装codec(键盘输入请仔细)
    tar vjxf essential-20061022.tar.bz2
    mv essential-20061022 /usr/lib/codecs
    chmod 644 /usr/lib/codecs/*
    chown root.root /usr/lib/codecs/*

    unzip windows-essential-20061022.zip
    mv windows-essential-20061022 /usr/lib/wincodecs
    chmod 644 /usr/lib/wincodecs/*
    chown root.root /usr/lib/wincodecs/*

    3.安装MPlayer

    tar vjxf MPlayer-1.0pre8.tar.bz2
    cd MPlayer-1.0pre8
    ./configure --prefix=/usr/local/mplayer/ --enable-gui --enable-freetype --with-codecsdir=/usr/lib/codecs/ --with-win32libdir=/usr/lib/wincodecs/ --disable-gcc-checking --language=zh_CN
    (这一步中,为了防止打错字,最好把这句话拷贝到终端窗口中。回车后,它会让你确认是否真的愿意disable-gcc-checking ,回车就行了。)
    重要参数说明:
    --prefix=             安装路径为/usr/local
    --enable-gui          使用图形界面,mplayer有命令行和图形界面两种运行方式
    --enable-live         使用流媒体支持
    --enable-freetype     字幕字体可以使用ttf字体
    --enable-win32        可以使用win32的.dll格式的解码器
    --enable-real         支持real格式
    --language=zh_CN      mplayer界面的格式为中文
    --with-codecsdir=/usr/local/lib/codecs         指定解码器搜索路径
    --with-win32libdir=/usr/local/lib/codecs       指定win32解码器搜索路径
    --with-reallibdir=/usr/local/lib/codecs        指定real解码器搜索路径
    --with-livelibdir=/usr/local/lib/live          指定live解码器搜索路径
    make
    make的时间相当的长。输入 make 命令后,建议您听完三首mp3或者吃完饭后再回来继续。

    make install

    cd etc
    cp example.conf /usr/local/mplayer/etc/config
    cp codecs.conf /usr/local/mplayer/etc/

    4.安装字体

    把你想用的字体(如 simsun.ttc ,windows系统的字体目录下就有)放到/home/<你的用户名>/.mplayer 下(root用户放到/root/.mplayer下)并且改名为subfont.ttf .
    拷贝(这里假设您的simsun字体临时放在 /root/ 目录下,用户为root):
    cp /root/simsun.ttf /root/.mplayer/
    改名:
    mv /root/.mplayer/simsun.ttf /root/.mplayer/subfont.ttf
    (windows系统c\windows\font中有很多字体,你选择一个拷贝到/home/<你的用户名>/.mplayer,如果没有.mplayer就新建一个,并改名为subfont.ttf,这样同样可以安装好字体,不必输入那么多命令)
    5.安装皮肤
    tar vjxf Blue-1.4.tar.bz2
    mv Blue /usr/local/mplayer/share/mplayer/skins/
    cd /usr/local/mplayer/share/mplayer/skins/
    ln -s Blue default

    6.如果运气还不错的话,应该就可以运行了。在终端中输入
    /usr/local/mplayer/bin/gmplayer
    就可以运行程序了。


    (一)mplayer的web插件
    下载本压缩包:
    http://www.linux-ren.org/modules/newbb/dl_attachment.php?attachid=1150433696&post_id=2269

    解压所有的xpt后缀的文件到/usr/lib/firefox/components

    解压所有的so后缀的文件到/usr/lib/firefox/plugins

    关闭firefox所有页面重新打开firefox去听歌看电影吧。
    (二) 故障分析与解决
      安装完后,我们启动MPlayer,有可能会出现如下这样的错误:
      "New_Face faild. Maybe the font path is wrong. please supply the text font file. ( ~/.mplayer/subfont.ttf )."
      这时候我们用系统自带的字体来代替.
      [root@fc4 mplayer]# cd /usr/share/fonts/zh_CN/TrueType/
      找其中一个字体文件复制到当前用户目录的 .mplayer/ 目录下
      [root@fc4 TrueType]#cp gbsn00lp.ttf ~/.mplayer/subfont.ttf
      这样就解决了字体问题了.
      (三) 注意问题
      卸载mplayer只需在刚刚由MPlayer- 1.0pre8try2.tar.bz2解压出来的MPlayer-1.0pre8目录下运行 make uninstall即可。所以,这个解压出来的文件夹不要删除,如果删除了,卸载的时候也可以到安装目录下直接删除,linux下没有注册表的概念,放心删除!
       (这个偶比较赞同,如果不记得安装到那里了,可以用whereis mplayer查看结果)
      (四) 安装总结
      1. 安装的最初的配置是最重要的.选项并不是越多越好的.只要可以实现播放各种格式,包括rmvb和windows下各种媒体类型就行了.因为windcodecs和codecs已经包含了常用的格式了.
      2. 要多留意在./configure过程中的错误或者没有符合的依赖关系.有时候无法进行make.就是在这一步出了问题.如果不能进行make,一般有提示的,其日志在config.log中.还有一个办法,就是通过管道输出到文本文件中,可以了解到安装的过程. 如 # ./configure tee tmp.txt .这样就可以分析错误了.
      3. 在make的安装过程中,往往有好多警告,这并不是错误,而是编写程序的人没有注意到的问题,如变量定义不恰当等,并不影响程序的安装.
      4. 如果安装过程中不能顺利进行,要想还原到最初源代码状态. 使用命令 # make distclean 清除之前的配置,再进行新的配置.




  • lamp安装centos+apache+mysql+php+gd2+phpmyadmin集成安装

    2007-8-21

    Redhat Linux 下 PHP5 + MySQL5 + GD2 + Proftpd + phpmyadmin 简易安装配置
    一直想写篇关于Linux下 PHP环境的详细安装配置文章, 没什么时间
    趁现要配几台服务器, 借此机会把自己安装配置的步骤写出来, 供初学者参考!

    先找到 apache php mysql proftpd 源码包下载的URL地址
    请浏览
    http://www.apache.org
    http://www.php.net
    http://www.mysql.com
    http://www.proftpd.org/
    等官方网站

    第一步:安装apache
    注:当前目录为/tmp,
    目录下有httpd-2.2.4.tar.gz, php-5.2.3.tar.gz等二进制源码包
    #号代表为root 根权限,#后是输入的一条命令

    执行下列命令
    解压源码包
    # tar -zxf httpd-2.2.4.tar.gz
    进入安装目录
    # cd httpd-2.2.4
    配置apache安装信息
    # ./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite
    执行make安装
    # make; make install
    安装完后
    # vi /usr/local/apache/conf/httpd.conf
    找到 prefork.c 下的
    MaxClients 150
    改为
    ServerLimit 2000
    MaxClients 1000
    apache默认工作在prefork.c模式下,并发进程为150,超过后就无法访问,150是远远不够的,所以这里按自己网站的需求改, 如1000
    由于apache默认最大并发进程是 256 所以要先设置 ServerLimit 2000 将服务器可设的最大并发数设为2000, 然后再设置最大并发数 MaxClients 1000

    找到 #ServerName www.example.com:80 在其下设置 ServerName 如下
    ServerName www.mysite.com
    基中 www.mysite.com 为你网站名,也可用IP代替
    找到 DocumentRoot "/usr/local/apache/htdocs"
    设置你的 WEB 服务器的根目录 如
    DocumentRoot "/myweb"
    找到 DirectoryIndex index.html index.html.var 改为
    DirectoryIndex index.html index.php index.htm
    找到 ForceLanguagePriority Prefer Fallback 在其下加上
    AddDefaultCharset gb2312
    改完后保存(vi 的用法请查 Linux vi 命令)
    用下面命令启动WEB服务器
    # /usr/local/apache/bin/apachectl start
    查看自己的站点是否正常 http://www.mysite.com 也可用IP
    用 # /usr/local/apache/bin/apachectl stop 可停止服务


    安装MYSQL二进制文件包,解压即可使用
    # tar -zxf mysql-standard-5.2.10-linux-i686.tar.gz
    # cp -r mysql-standard-5.2.10-linux-i686 /usr/local/mysql
    # vi /usr/local/mysql/support-files/my-medium.cnf
    在后面加上
    max_connections = 1000
    log-slow-queries
    long_query_time = 5
    注 max_connections 为允许的最大连接数
    log-slow-queries 打开低速查询日志
    long_query_time 低速查询的秒数(运行一句sql达到此时间记录在日志里)
    然后COPY 它为 /etc/my.cnf 文件
    # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
    添加mysql用户及用户组
    # groupadd mysql
    # useradd -g mysql mysql
    修改mysql目录权限
    # chown -R root /usr/local/mysql
    # chgrp -R mysql /usr/local/mysql
    # chown -R mysql /usr/local/mysql/data
    生成mysql系统数据库
    # /usr/local/mysql/scrīpts/mysql_install_db --user=mysql&
    启动mysql服务
    # /usr/local/mysql/bin/mysqld_safe --user=mysql&
    如出现 Starting mysqld daemon with databases from /usr/local/mysql/data
    代表正常启动mysql服务了, 按Ctrl + C 跳出
    修改 mysql 的 root 密码
    # /usr/local/mysql/bin/mysqladmin -u root -p password 123456
    回车出现 Enter password: 最开始密码默认为空 继续回车即可
    123456 即为你的新密码
    注意:在安装MySQL5.0的时候会出现一个问题,就是和PHP联合编译的时候提示-lmysqlclient错误,这个原因是因为使用了另外一个版本的MySQL,我们需要使用的是Linux x86那个版本,不要是glibc-2.2那个。参考(http://forums.mysql.com/read.php?45,100371,101591#msg-101591)
     

    安装GD库(让PHP支持GIF,PNG,JPEG)
    首先下载 jpeg6,libpng,freetype 并安装模块
    wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
    wget http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
    wget http://keihanna.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.10.tar.gz
    wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz

    安装 jpeg6
    建立目录
    # mkdir /usr/local/jpeg6
    # mkdir /usr/local/jpeg6/bin
    # mkdir /usr/local/jpeg6/lib
    # mkdir /usr/local/jpeg6/include
    # mkdir /usr/local/jpeg6/man
    # mkdir /usr/local/jpeg6/man/man1
    # cd /tmp
    # tar -zxf jpegsrc.v6b.tar.gz
    # cd jpeg-6b
    # ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
    # make; make install

    安装libpng
    # cd /tmp
    # tar -zxf libpng-1.2.8.tar.gz
    # cd libpng-1.2.8
    # cp scrīpts/makefile.std makefile
    # make; make install

    安装 freetype
    # cd /root/soft
    # tar -zxf freetype-2.1.10.tar.gz
    # cd freetype-2.1.10
    # ./configure --prefix=/usr/local/freetype
    # make;make install

    安装最新的GD库
    # cd /tmp
    # tar -zxf gd-2.0.33.tar.gz
    # cd gd-2.0.33
    # ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png --with-zlib --with-freetype=/usr/local/freetype/
    # make; make install

    安装PHP

    由于php5需libxml2的支持, 所以先下载并安装libxml2
    # cd /tmp
    # wget http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.19.tar.gz
    # tar -zxf libxml2-2.6.19.tar.gz
    # cd libxml2-2.6.19
    # ./configure --prefix=/usr/local/libxml2
    # make; make install

    安装 libxslt
    # cd /tmp
    # wget http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.15.tar.gz
    # tar -zxf libxslt-1.1.15.tar.gz
    # cd libxslt-1.1.15
    # ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
    # make; make install

    # tar -zxf php-5.2.3.tar.gz
    # cd php-5.2.3
    # ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --enable-ftp --with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib --with-xsl=/usr/local/libxslt --enable-xslt --with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-zlib-dir=/usr/lib --with-png --with-freetype-dir=/usr/local/freetype --enable-mbstring
    # make
    # make install

    其中./configure 后的
    --prefix=/usr/local/php5
    --with-apxs2=/usr/local/apache/bin/apxs
    --with-mysql=/usr/local/mysql/
    --with-libxml-dir=/usr/local/libxml2
    是必要的选项

    --with-gd=/usr/local/gd2/
    --with-jpeg-dir=/usr/local/jpeg6/
    --with-png
    --with-zlib-dir=/usr/lib
    --with-freetype-dir=/usr/local/freetype
    这是让PHP支持GD库的配置选项

    配置 httpd.conf 让apache支持PHP
    # vi /usr/local/apache/conf/httpd.conf
    找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    重启apache
    # /usr/local/apache/bin/apachectl restart
    在这里有一个问题,如果你的系统安装了SELinux模块,那么由于安全控制的原因,会出现如下错误:
    Starting httpd: Syntax error on line 191 of /etc/httpd/conf/httpd.conf:
    Cannot load /etc/httpd/modules/libphp5.so into server: libxml2.so.2: failed to map segment from shared object: Permission denied
                                                               [FAILED]
    这样需要我们到指定的库文件的目录下执行如下命令:
    restorecon libxml2.so.2.6.19
    把类似的错误都解决之后,Apache就可以正常启动了。
     
    在你Web目录里建一内容为 <? phpinfo(); ?> PHP文件, 输入URL地址查看PHP配置是否正确


    安装 phpmyadmin
    下载
    # cd /tmp
    # wget http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.10.1.tar.gz
    # tar -zxf phpMyAdmin-2.10.1.tar.gz
    phpMyAdmin必须需要PHP支持MySQL。
    并且在2.8以后的版本,解压完毕后,首先需要手工建一个config目录,然后配置完毕后,需要点击页面上的Configuration中的Save把文件存成config.inc.php。
    # vi phpMyAdmin-2.10.1/config.inc.php
    找到 $cfg['Servers'][$i]['auth_type'] = 'config'; 将config 改为 http
    保存后
    mv phpMyAdmin-2.10.1 /你的phpmyadmin目录
    进入phpmyadmin管理
    注: PHP连接mysql4.1和5.0 数据库后需指定字符集 需执行如 mysql_query("SET NAMES 'gb2312' ");
    否则会产生中文乱码问题!
     
  • CentOS4.5安装

    2007-8-21

    1.硬盘安装 从redhat9解压doutils文件到c盘目录下,从centos下载文件中initrd-xxxx.img,vmlinuz.xxx解压到dosutils文件下的autoboot文件夹下,在纯dos运行dosutils下的autoboot文件,根据向导完成安装即可.选择安装文件所在的位置
    2.网络安装 选择相应的ftp
    3.光盘安装 最简单的,插入光盘运行安装即可
  • 我的空间开通了

    2007-8-21

    给我一个支点,我可以撬动地球--阿基密德
    给自己一个目标。。精通PHP。。challenger800

我的最新图片

Open Toolbar