日历
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | 30 | 31 | ||||
存档
搜索标题
最新来客
最新留言
统计信息
- 访问量: 1705
- 日志数: 7
- 图片数: 1
- 建立时间: 2007-08-21
- 更新时间: 2007-08-27
我的最新日志
-
男人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
-
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

