计算机语言

CentOS6.0精简版已发布,http://www.wdlinux.cn/wdlinux_CentOS_6.0精简定制由来由于原版ISO文件大(DVD4.5G,CD8张光盘),默认安装的服务也多,安装步骤烦琐(新手更不容易),不管是下载或安装使用都不太方便,而且,很多的服务和文件都是及少用到或特殊服务才会应用,基于此原因,便想定制,精简这样的一个小巧,易安装易使用的精简版本,对一些常规选项进行了自动化处理进行安装和系统一些优化处理,更便于安装和使用,基本上安装好就是一个最优化的系统,极大方便了安装和使用,对于不熟悉或常需安装系统(如IDC机房)的朋友来说更是一个便利.iso版本简介[我的Linux,让Linux更易用]wdlinux是基于最新的CentOS5.6版本定制,精简而来,是定制版,也是精简版,主要是去除了大部分不常用软件包,筛选了系统基本包和web应用基础包,并进行了更新和优化,以达到最小最优.同时增加一些较常用的工具包,如iptraf,nmap,sysstat,strace,tcpdump,curl等,便于日常维护中使用和排错,同时,同时集成wdcp服务器管理系统(lamp,lnmp安装版),可方便在线管理服务器和网站.分i386(32位)和x86(64位)两个版本,大小500M左右,一个光盘搞掂,比原来的几个光盘或一个DVD盘方便多了.下载也更快.并且,此ISO将安装过程进行简化,只需在设置IP,网关,密码(base版为可以设置自定分区)时提示并设置,其它的均为自动,整个安装,大概5分钟左右,就可以安装完一个系统.更方便和简洁,快速.对一些机房工作人员或是对Linux又不是那么熟悉的人来说,省时又方便,何乐而不为?对大多站长来说,lamp,lnmp集成版更是方便.即使不懂Linux的人,也可以很容易就安装和使用Linux服务器了.节省大量人力物力...安装简单,方便,快速,整个安装过程,只需要几个操作即可完成,大概10分钟,即可全部装完有些人问:wdlinux稳定不?应该问linux稳定不?wdlinux安全不?应该问linux安全不?其实这些问题不用回答,看互联网上的大站,巨头都在用,就已经有答案了.wdlinux只是在安装上做一些处理和优化,并未修改内核源码等之类,所以,本质上,并无区别分三个版本集成lamp(linux+apache+mysql+php的简写)+zend+eAccelerator+wdcp请看http://www.wdlinux.cn/wdlinux_lamp集成lnmp(linux+nginx+mysql+php的简写)+zend+eAccelerator+wdcp请看http://www.wdlinux.cn/wdlinux_lnmpbase版,也就是基本版,不含web环境,就是一个最小化安装的Linux系统外加一些工具包集成lamp,lnmp版与base版的安装区别是lamp,lnmp会自动格式化硬盘和分区(注意有重要数据的请勿用此安装ISO)base版需要自己手工进行划分,且只是一个最小系统,没安装服务和环境下载地址(32和64位)base版http://dl.wdlinux.cn:5180/wdlinux_base_32_5.6.isohttp://dl.wdlinux.cn:5180/wdlinux_base_64_5.6.isolamp安装版http://dl.wdlinux.cn:5180/wdlinux_lamp_32_5.6.isohttp://dl.wdlinux.cn:5180/wdlinux_lamp_64_5.6.isolnmp安装版http://dl.wdlinux.cn:5180/wdlinux_lnmp_32_5.6.isohttp://dl.wdlinux.cn:5180/wdlinux_lnmp_64_5.6.iso5.5版的看这里http://www.wdlinux.cn/wdlinux_CentOS_5.5本文连接:http://www.wdlinux.cn/wdlinux_CentOS_5.62011.04.18零时更新增加lamp,lnmp安装版转自:http://www.wdlinux.cn/old/wdlinux_CentOS_5.6

计算机语言

LAMP之LINUX安装总结1、插入光盘或ISO文件2、以文本模式安装,输入:text3、跳过CD检验Skip4、WelcometoCentOS!ok5、语言选择English6、键盘选择us7、提示:会初始化设备,所有数据库将被清空,因为是全新安装。yes8、进入文本分区界面==========================removeallpartitionsonselecteddrivesandcreatedefaultlayout.移除所选磁盘上的所有分割区,并建立预设的分割模式。removelinuxpartitionsonselecteddrivesandcreatedefaultlayout.移除所选磁盘上的linux分割区,并建立预设的分割模式。usefreespaceonselecteddrivesandcreatedefaultlayout.使用所选取磁盘上的未使用空间,建立预设的分割模式。createcustomlayout.手动分区============================选择如第一个。9、确认信息YES10、将磁盘分为三个区。===========/bootswap/===========/分区选择Fillallavailablespace(全部剩余空间)分区选择Forcetobeaprimarypartition(主分区)OK确认。11、启动加载配置GRUB.默认回车。12、BootLoaderConfiguration设置一个与独立不重复的名字OK13、选择UseaGRUBPassword为GRUB设立一个密码。14、其它一路默认回车。15、NetworkConfigurationforeth0设置网络信息选择Activateonboot和EnableIPv4support回车16、选择ManualaddressconfigurationIPAddress本机ip(如):192.168.1.126Prefix(Netmask)子网掩码(如):255.255.255.0OK17、Gateway默认网关(如):192.168.1.1PrimaryDNS网关(如):202.106.0.20SecondaryDNS备用网关(如):空白OK18、设置主机名称OK19、设置系统时间选择Asis/ShanghaiOK20、设置系统登录密码21、选择要安装的软件包勾选Customizesoftwareselection(自定义)22、勾选基础安装包:developlibrarydeveloptoolseditsbasexsoftwaredevelopmentadministratortoolssystemtoolsOK23、确认安装信息OK后等待安装。24、取出光盘或ISO,reboot重启后登陆root#su-//获取root权限#whoami//查看目前权限25、创建新用户#useradd用户名#passwd用户名//设置密码or初始密码26、安全起见,修改系统端口及登录信息。#cp/etc/ssh/sshd_config/etc/ssh/sshd_config.ori//备份需要配置的ssh_config文件#vi/etc/ssh/sshd_config//编辑sshd_config####byjeacen###Port52113PermitRootLoginnoPermitEmptyPasswordsno####byjeacen###将以上信息加入后:wq保存:q退出#/etc/init.d/sshdrestart//重启ssh服务,修改信息生效。27、安全起见,将需要root权限的用户名加入sudo,可保证root密码不泄露。#visudo在下面添加需要root用户名#UserprivilegespecificationrootALL=(ALL)ALL用户名ALL=(ALL)ALLwq:保存28、修改中文显示#vi/etc/sysconfig/i18nLANG="zh_CN.GB18030"#source/etc/sysconfig/i18n生效

2014-9-15 2513 0
计算机语言

ignore_user_abort();函数搭配set_time_limit(0);和sleep($interval);即可实现以上自动更新。先给出一个基本的范式,其中有个人的测试程序:<?phpignore_user_abort();//函数设置与客户机断开是否会终止脚本的执行set_time_limit(0);//来设置一个脚本的执行时间为无限长$interval=30;do{$fp=fopen('text3.txt','a');fwrite($fp,'test');fclose($fp);sleep($interval);//函数延迟代码执行若干秒}while(true);?>首先运行该程序,然后关闭该页面,程序仍然运行中,test会每隔30秒的填补到text3.txt文件。最后根据php手册简单介绍一些相关的知识:1.连接处理:在PHP内部,系统维护着连接状态,其状态有三种可能的情况:0–NORMAL(正常)1–ABORTED(异常退出)2–TIMEOUT(超时)当PHP脚本正常地运行NORMAL状态时,连接为有效。当远程客户端中断连接时,ABORTED状态的标记将会被打开。远程客户端连接的中断通常是由用户点击STOP按钮导致的。当连接时间超过PHP的时限时,TIMEOUT状态的标记将被打开。可以决定脚本是否需要在客户端中断连接时退出。有时候让脚本完整地运行会带来很多方便,即使没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由php.ini的ignore_user_abort或由Apache.conf设置中对应的”php_valueignore_user_abort”以及ignore_user_abort()函数来控制。如果没有告诉PHP忽略用户的中断,脚本将会被中断,除非通过register_shutdown_function()设置了关闭触发函数。通过该关闭触发函数,当远程用户点击STOP按钮后,脚本再次尝试输出数据时,PHP将会检测到连接已被中断,并调用关闭触发函数。脚本也有可能被内置的脚本计时器中断。默认的超时限制为30秒。这个值可以通过设置php.ini的max_execution_time或Apache.conf设置中对应的”php_valuemax_execution_time”参数或者set_time_limit()函数来更改。当计数器超时的时候,脚本将会类似于以上连接中断的情况退出,先前被注册过的关闭触发函数也将在这时被执行。在该关闭触发函数中,可以通过调用connection_status()函数来检查超时是否导致关闭触发函数被调用。如果超时导致了关闭触发函数的调用,该函数将返回2。需要注意的一点是ABORTED和TIMEOUT状态可以同时有效。这在告诉PHP忽略用户的退出操作时是可能的。PHP将仍然注意用户已经中断了连接但脚本仍然在运行的情况。如果到了运行的时间限制,脚本将被退出,设置过的关闭触发函数也将被执行。在这时会发现函数connection_status()返回3。转:http://hi.baidu.com/helly/item/f14b871d5c88e60fb98a1aaa经过测试,用以上代码,就算把本身php文件删除,还是会继续执行,除非把php-cgi的进程结束,才不能继续执行了,太神奇了。又是一段邪恶的代码,哎。。还有,此代码是一死循环,切勿直接运用到程序中。

计算机语言

一、echoecho()实际上不是一个函数,是php语句,因此您无需对其使用括号。不过,如果您希望向echo()传递一个以上的参数,那么使用括号会发生解析错误。而且echo是返回void的,并不返回值,所以不能使用它来赋值。例子:<?php$a=echo("xshell");//错误!不能用来赋值echo"xshell";//xshellecho("xshell");//xshellecho("xshell","net");//发生错误,有括号不能传递多个参数echo"xshell","net","is","web";//不用括号的时候可以用逗号隔开多个值,会输出xshellnetiswebecho"xshellisgoodweb.";//不管是否换行,最终显示都是为一行xshellisgoodweb.echo"$fistnamenet";//如果$firstname="xshell",则会输出xshellnet.echo'$firstnamenet';//由于使用单引号,所以不会输出$firstname的值,而是输出$firstnamenet?>二、printprint()和echo()用法一样,但是echo速度会比print快一点点。实际上它也不是一个函数,因此您无需对其使用括号。不过,如果您希望向print()传递一个以上的参数,那么使用括号会发生解析错误。注意print总是返回1的,这个和echo不一样,也就是可以使用print来赋值,不过没有实际意义。例子:<?php$a=print("xshell");//这个是允许的echo$a;//$a的值是1?>三、print_r函数print_r函数打印关于变量的易于理解的信息。语法:mixedprint_r(mixed$expression[,boolreturn])如果变量是string,integerorfloat,将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。例子:<?php$a="xshell";$c=print_r($a);echo$c;//$c的值是TRUE$c=print_r($a,ture);echo$c;//$c的值是字符串xshell?>四、printf函数printf函数返回一个格式化后的字符串。语法:printf(format,arg1,arg2,arg++)参数format是转换的格式,以百分比符号(“%”)开始到转换字符结束。下面是可能的format值:*%%–返回百分比符号*%b–二进制数*%c–依照ASCII值的字符*%d–带符号十进制数*%e–可续计数法(比如1.5e+3)*%u–无符号十进制数*%f–浮点数(localsettingsaware)*%F–浮点数(notlocalsettingsaware)*%o–八进制数*%s–字符串*%x–十六进制数(小写字母)*%X–十六进制数(大写字母)arg1,arg2,arg++等参数将插入到主字符串中的百分号(%)符号处。该函数是逐步执行的,在第一个%符号中,插入arg1,在第二个%符号处,插入arg2,依此类推。如果%符号多于arg参数,则您必须使用占位符。占位符被插入%符号之后,由数字和“\$”组成。可使用数字指定显示的参数,详情请看例子。例子:<?phpprintf("Mynameis%s%s。","xshell","net");//Mynameisxshellnet。printf("Mynameis%1\$s%1\$s","xshell","net");//在s前添加1\$或2\$.....表示后面的参数显示的位置,此行输出MynameisRickyRicky因为只显示第一个参数两次。printf("Mynameis%2\$s%1\$s","xshell","net");//Mynameisnetxshell?>五、sprintf函数此函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写写入一个变量中,而不是输出来。例子:<?phpsprintf("Mynameis%1\$s%1\$s","xshell","net");//你会发现没有任何东西输出的。$out=sprintf("Mynameis%1\$s%2\$s","xshell","net");echo$out;//输出Mynameisxshellnet?>六、var_dump函数功能:输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。<?php$a=100;var_dump($a);//int(100)$a=100.356;var_dump($a);//float(100.356)?>转:http://www.2cto.com/kf/201208/147096.html

2013-3-30 4482 0
计算机语言

这样一来就检索出当前页面的局部变量了,接下来我们可以来结合前面的SQL语句来实现根据不同环境ID调用内容不同栏目内容。  例如:  {dede:php}  $thisid=$refObj->Fields['id'];  $row=$dsql->GetOne('selectid,typenamefromdede_arctypewhereid='.$thisid);  print_r($row);  {/dede:php}  这样是来调用当前栏目的标题,这个标签功能类似于{dede:field.typename/}  写自己的标签,让别人说去吧  DedeCMS从V5.3开始就支持自己扩展标签,不过许多新人很少用那个东西,今天我就来简单的介绍下如何编写自己的调用标签。  我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以“标签名.lib.php”格式,例如{dede:channel/}标签对应的是channel.lib.php文件。  我们可以看一个示例标签:demotag.lib.php    if(!defined('DEDEINC'))  {  exit("RequestError!");  }  functionlib_demotag(&$ctag,&$refObj)  {  global$dsql,$envs;  //属性处理  $attlist="row|12,titlelen|24";  FillAttsDefault($ctag->CAttribute->Items,$attlist);  extract($ctag->CAttribute->Items,EXTR_SKIP);  $revalue='';  //你需编写的代码,不能用echo之类语法,把最终返回值传给$revalue  //------------------------------------------------------  $revalue='HelloWord!';  //------------------------------------------------------  return$revalue;  }  ?>  我们登录系统后台的[模板]-[全局标签测试]中运行{dede:demotag/},显示如下的结果:  这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数return$revalue;中的$revalue需要是经过处理后生成的字符串。  $attlist="row|12,titlelen|24";这个是属性列表,这个经过函数处理后会直接生成变量并复制,我们可以测试下,做如下的修改:  $revalue='HelloWord!';  $revalue.="Row:".$row.";TitleLen:".$titlelen;  这样我们可以看到,这个属性已经被创建变量并且赋值了。  接下来我们可以再进一步去修改这个标签。  比如说我们需要写一个标签专门来查询文章内容页的那个相关文章,功能类似于上面sql标签中的那个sql,只是这里我们将其分装为一个标签。  我们可以新建一个标签,例如叫writerarc,那我们就需要创建一个writerarc.lib.php,然后模仿demotag编写函数,注意需要修改为  functionlib_writerarc(&$ctag,&$refObj)  接下来我们就可以编写查询语句及对底层模板处理的相关函数了  $revalue='';  $innertext=$ctag->GetInnerText();  $ctp=newDedeTagParse();  $ctp->SetNameSpace('field','[',']');  $sql="SELECT*FROMdede_archivesWHEREwriter='{$refObj->Fields['writer']}'limit0,$row";  $innertext这个是用来获取标签的底层模板的,$ctp创建用于处理底层模板中的变量,并处理进行替换。我们根据获取的属性编写我们的sql语句,这里我们使用limit0,$row,这样就可以根据$row来确定查询的内容数目。  当然我们可以获取更多的属性以便我们这个标签更强大,例如我们可以增加类似于arclist中的相关属性,并在函数中进行处理,不过这个需要有一定的PHP基础。  接下来我们通过执行查询对sql及输出变量进行处理:  $dsql->Execute('me',$sql);  while($rs=$dsql->GetArray('me'))  {  //根据属性处理查询变量  $rs['title']=cn_substr($rs['title'],$titlelen);  //获取底层模板  $ctp->LoadSource($innertext);  foreach($ctp->CTagsas$tagid=>$ctag){  if(!empty($rs[strtolower($ctag->GetName())])){  $ctp->Assign($tagid,$rs[$ctag->GetName()]);  }  }  //根据底层模板及查询变量得到处理结果  $revalue.=$ctp->GetResult();  }  这样我们就将查询出来的结果同底层模板中出现的相关变量进行替换,然后生成输出字符串,将所有的字符串信息存储到$revalue中。  最后返回这个值return$revalue;  整个文件内容如下:    if(!defined('DEDEINC'))  {  exit("RequestError!");  }  functionlib_writerarc(&$ctag,&$refObj)  {  global$dsql,$envs;  //属性处理  $attlist="row|12,titlelen|24";  FillAttsDefault($ctag->CAttribute->Items,$attlist);  extract($ctag->CAttribute->Items,EXTR_SKIP);  $revalue='';  $innertext=$ctag->GetInnerText();  $ctp=newDedeTagParse();  $ctp->SetNameSpace('field','[',']');  $sql="SELECT*FROMdede_archivesWHEREwriter='{$refObj->Fields['writer']}'limit0,$row";  $dsql->Execute('me',$sql);  while($rs=$dsql->GetArray('me'))  {  //根据属性处理查询变量  $rs['title']=cn_substr($rs['title'],$titlelen);  //获取底层模板  $ctp->LoadSource($innertext);  foreach($ctp->CTagsas$tagid=>$ctag){  if(!empty($rs[strtolower($ctag->GetName())])){  $ctp->Assign($tagid,$rs[$ctag->GetName()]);  }  }  //根据底层模板及查询变量得到处理结果  $revalue.=$ctp->GetResult();  }  return$revalue;  }  ?>  接下来我们来测试我们这个标签,我们修改article_article.htm模板,在里面加入以下的标签代码:  {dede:writerarcrow='10'titlelen='6'}  [field:title/]  {/dede:writerarc}  通过动态浏览页面进行查看调试http://www.dedecms.com/plus/view.php?aid=3,我们会发现标签起作用了,输出了我们的内容。  至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。转自:http://hi.baidu.com/aloneseo/item/4cb9a733419ee7ffa88428c7

2013-3-30 3242 0
计算机语言

require_oncedirname(__FILE__)."pub_db_mysql.php";//引用数据库文件//确保数据库信息填写正确//数据库连接信息$cfg_dbhost='localhost';$cfg_dbname='sccms';$cfg_dbuser='root';$cfg_dbpwd='123456';$cfg_dbprefix='sc_';$cfg_db_language='utf8';//新建一个数据库操作类$dsql=newScSql(false);////////////////////////////////获取一条记录的内容/////////////////////////////////下面是获取一条记录使用实例$row=$dsql->GetOne("Select*Fromdede_*whereid=$aid");//获取数据内容保存在数组$row中,通过下标可以将其调用出来echo$row['id'];//下面是循环调用记录/////////////////////////////////////////////////////////////////////////////////////////////////////////////将查询获取总数输出///////////////////////////////获取一个查询记录总数$row=$dsql->GetOne("selectcount(*)asddwheretypeid=$typeid");echo$row['dd'];//输出总数/////////////////////////////////////////////////////////////////////////////////////////////////////////////将查询的若干条记录输出//////////////////////////////////$sql="Select*fromdede_*";$dsql->SetQuery($sql);//将SQL查询语句格式化$dsql->Execute();//执行SQL操作//通过循环输出执行查询中的结果while($row=$dsql->GetArray()){echo$row['id'];echo$row['title'];}//或者采取这种方式输出内容while($row=$dsql->GetObject()){echo$row->id;echo$row->Title;}/////////////////////////////////////////////////////////////////////////////////////////////////////////////插入一条记录///////////////////////////////$sql="INSERTINTO`dede_member_flink`(mid,title,url,linktype,imgurl,imgwidth,imgheight)VALUES(".$cfg_ml->M_ID.",'$title','$url','$linktype','$imgurl','$imgwidth','$imgheight');";//插入记录数据库$dsql->SetQuery($sql);//格式化查询语句$dsql->ExecNoneQuery();//执行SQL操作////////////////////////////////////////////////////////////////////////////////////////////////////////////////////删除一条记录///////////////////////////$sql="DeleteFromdede_member_flinkwhereaid='$aid'Andmid='".$cfg_ml->M_ID."';";$dsql->SetQuery($sql);$dsql->ExecNoneQuery();//或者使用简化模式$dsql->ExecNoneQuery("DeleteFromdede_member_flinkwhereaid='$aid'Andmid='".$cfg_ml->M_ID."';");/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////更新一条记录//////////////////////////$upquery="Updatedede_member_flinksettitle='$title',url='$url',linktype='$linktype',imgurl='$imgurl',imgwidth='$imgwidth',imgheight='$imgheight'whereaid='$aid'Andmid='".$cfg_ml->M_ID."';";$rs=$dsql->ExecuteNoneQuery($upquery);///////////////////////////////////////////////////////////////////////////////////////////////////////////////判断获取数据库内容的常用方法///////////////////$row=$dsql->GetOne("Select*Fromdede_moneycard_typewheretid={$pid}");if(!is_array($row)){echo"失败";exit();}/////////////////////////////$upquery="Updatedede_member_flinksettitle='$title',url='$url',linktype='$linktype',imgurl='$imgurl',imgwidth='$imgwidth',imgheight='$imgheight'whereaid='$aid'Andmid='".$cfg_ml->M_ID."';";$rs=$dsql->ExecuteNoneQuery($upquery);if($rs){echo"成功";}else{echo"失败";}//////////////////////////////////获取总数//////////////////////////////////$dsql=newDedeSql(false);$dsql->SetQuery("Select*from`dede_admin`whereuserid='$userid'Oruname='$uname'");$dsql->Execute();$ns=$dsql->GetTotalRow();////////////////////////////////关闭数据库///////////////////////////////////$dsql->Close();转:http://blog.sina.com.cn/s/blog_5d568fff0100crzs.html

2013-3-30 4397 0
2011-9-27 2822 0
2011-3-10 5028 0