route add -net  10.10.101.0  netmask 255.255.255.0 gw 10.10.100.1
cat route-eth0
10.10.101.0/24 via 10.10.100.1 dev eth0
/etc/rc.d/init.d/network restart
netstat -r
[root@1314it network-scripts]# cat /etc/sysconfig/network-scripts/route-eth0
123.123.123.0 via 156.156.156.156 dev eth0
[root@1314it network-scripts]#
已测试成功 重启网络会执行此文件
= = =
内网:有两个网段10.10.100.0/24和10.10.101.0/24,
服务器ip: a.b.c.d   外网网关e.f.g.h  服务器内网卡10.10.100.254
内网10.10.101.0/24网段的机器无法访问10.10.100.254这台机器。
登陆服务器查看路由表:
[root@www conf]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.100.0     *               255.255.255.0   U         0 0          0 eth0
169.254.0.0     *               255.255.0.0     U         0 0          0 eth1
default         e.f.g.h    0.0.0.0         UG        0 0          0 eth1
因此可以看到在10.10.100.254服务器上无法看到10.10.101.0/24的路由选择表路由条目,因此可以两种方法添加,
临时性的:
route add -net  10.10.101.0  netmask 255.255.255.0 gw 10.10.100.1
但重新启动后就会失效.因此在/etc/sysconfig/network-scripts/目录下建立文件。因为我们是做内网的路由,并且内网网卡为eth0,因此我们建立route-eth0文件如下:
[root@www network- ......
linux下想解压rar文件 必须安装软件,我使用到是rarlinux  
下面是下载地址
rarlinux官方网站下载地址
http://www.rarsoft.com/download.htm

安装                                      //tar.gz文件详细解压步骤
先解压tar.gz文件                  
直接 cd 到相应到文件夹
make                    // 如果提示权限不够 su root 取得最高权限
然后 make install

tar zxvf rarlinux-3.x.x.tar.gz

./configure &make &make install


恭喜你安装成功

最后
使用rarlinux解压rar文件
使用命令  

unrar e filesname.rar

解压rar文件
ok!~

============================================
rarlinux 使用(更多功能)

查看压缩包中的文档
$rar l XXX.rar 或 $rar v XXX.rar

查看压缩包中的文档(只看有什么文档)
$rar lb XXX.rar 或 $rar vb XXX.rar

查看压缩包中的文档(周详信息)
$rar lt XXX.rar 或 $rar vt XXX.rar

============================================
把压缩包的内容解压到当前目录
$rar e XXX.rar

把压缩包的内容解压到指定目录,比如/home/yxd/tmp/下面
$rar e XXX.rar /home/yxd/tmp/

把压缩包解的内容压到指定目录,比如/home/yxd/tmp/下面,包含压缩包中的路径
$rar x XXX.rar /home/yxd/tmp/

============================================
压缩指定的一个文档,比如aaa,以默认压缩率
$rar a XXX.rar aaa

压缩指定的一个文档,比如aaa,以最大压缩率
$rar a -m5 XXX.rar aaa

压缩指定的一个目录下的任何文档,比如ddd目录下的任何文档
$rar a XXX.rar ddd/

压缩指定的一个目录下的任何文档,比如ddd目录下的任何文档和任何子目录
$rar a -r XXX.rar ddd/

压缩指定的一个目录下的任何文档,比如ddd目录下的任何文档和任何子目录,但是不包含空目录
$rar a -r -ed XXX.rar ddd/

压缩指定的一个目录下的任何文档,比如ddd目录,连目录也一起压缩,包括子目录
$rar a XXX.rar ddd
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之前已经听说过,但对于XML和 JSON的不同之处可能会不怎么了解。对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的,虽然JSON才处于起步阶段,但我相信JSON最终会取代 XML成为Ajax的首选,到时Ajax可能要更名为Ajaj(Asynchronous JavaScript and JSON)了;

1.数据交换格式比较之关于XML和JSON:

XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。

JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

2.数据交换格式比较之关于轻量级和重量级:

轻量级和重量级是相对来说的,那么XML相对于JSON的重量级体现在哪呢?我想应该体现在解析上,XML目前设计了两种解析方式:DOM和SAX;

DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;

SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。

所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。

3.数据交换格式比较之关于数据格式编码及解析的难度:

在编码上,虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的 XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。

主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。

在解析上,在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。

实际上,对于大多数web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势;许多Ajax应用甚至直接返回 HTML片段来构建动态web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或HTML 片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在web serivice应用中,至少就目前来说XML仍有不可动摇的地位。

SAX
SAX是Simple API for XML,并不是由W3C官方所提出的标准,适用于处理数据流,即随着数据的流动而依次处理数据。是事件驱动的解析XML的API。
DOM
DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范(http://www.w3.org/DOM/),DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。
http://www.json.org/json-zh.html
刚做完一个小的使用Ajax的项目。整个小项目使用Javascrīpt做客户端,使用PHP做服务器端、利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式。做完后基本做一个简单总结,简单分析一下使用XML作为传输格式的优劣。

[  XML ]
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便

缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间


[ JSON ]
那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (Javascrīpt Object Notation) 的轻量级数据交换格式能够替代XML的工作.

优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端Javascrīpt可以简单的通过eval()进行JSON数据的读取
3. 支持多种语言, 包括Actionscrīpt, C, C#, ColdFusion, Java, Javascrīpt, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.
   另外PHP的PEAR类已经提出了支持 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

缺点:
1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性
2. JSON格式目前在Web Service中推广还属于初级阶段

PS: 据说Google的Ajax是使用 JSON+模板 做的

XML 是一种用于面向服务的体系结构 (SOA) 和数据传输的常见传输。当然,目前许多服务以 SOAP 格式存在。不过,何时将其用于数据传输在 Ajax 社区中存在分岐。

[  XML ]
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便
3.调用将 XML 用作传输的现有服务。
4.使用 XSLT 可以动态转换 XML。这是企业服务总线 (ESB) 方案中的理想功能。

缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间


[ JSON ]
那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.

优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小,浏览器解析快
2. 易于解析这种语言, 客户端JavaScript可以简单的通过()进行JSON数据的读取
3. 构造友好,支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.
   另外PHP的PEAR类已经提出了支持
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护
6.相当稳定。JSON 的附加内容将成为超集。

缺点:
1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性
2. JSON格式目前在Web Service中推广还属于初级阶段

   个人总结:  XML 或是JSON  可以视情况使用,  一个项目在特定情况下可以同时使用这两种格式.

    不过本并不建议如此来做, 因为这种方式可能会给整个项目的代码管理带来麻烦.还需慎重!
疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/Security/Article73026.html
什么是SOA?“SOA(Service Oriented Architecture面向服务架构)是种新面向服务架构编程模型号称
“下代软件Software架构”SOA由Gartner在1996年提出到了2002年12月Gartner又提出了SOA是“现代应用
开发领域最重要课题”并预计到2008年SOA将成为占有绝对优势软件Software工程实战思路方法 ;SOA就是
服务集合从软件Software和业务功能两方面观点看服务就是定义良好软件Software组件它不依赖于任何它应用
上下文或状态
在技术上定义这些服务以及它们到应用接口然后实现这些服务是SOA核心部分.这些服务通常被实现为Web
Services应用可以通过简单对象访问协议(Simple Object Access ProtocolSOAP)来访问它基于HTTP协议以
XML形式进行传输.
从根本上说SOA是服务接口种流和种关系设计接口及其关系需要熟练掌握Web技术、业务流程和服务下技术平
台以及采用它们应用等方面知识架构师不仅必须了解如何构造Web服务而且还要了解现有应用和计划未来使用
应用如何使用它们

;
SOA和Web Services是比较大概念是种规范标准(封装服务和提供服务规范标准)它们降低了后台如何运行重要
程度你可以用区别编程语言和平台来并实现SOA和Web Services甚至有人由此预计 5年后JavaEE不再是主流标
准设计模型Java EE太过复杂很显然如果我用简单方式也可以实现SOA那么为什么要用Java EE呢?这就是平台
力量平台影响力总是大于应用JavaEE是个小平台(对于般开发而言它已经是个非常大平台但是技术和需要总是在
不断发展)而SOA是个大平台从面向过程面向对象面向组件和面向业务各种编程模型目前JavaEE大部份时候是在
面向组件和面向业务的间而SOA是面向业务应该说对于企业应用非常有优势
;
目前IBM可以说是SOA主宰力量我们可以看到它甚至在PHP方面也在大力推广SOA(IBM、Oracle 尝试把PHP
应用到SOA 的中)足见其野心的大
;
我们看看IBM在PHP SOA方面进展:
2005.7 IBM用PHP实现SDO并提交到PHPPECL库
2005.12 IBM联合BEA、Oracle、IONA、SAP、Siebel、Sybase、Xcalia以及Zend公司共同发布了两项针对
SOA重要编程模型规范标准——SCA(Service Component Architecture)和SDO(Service Data Object) ; ;注意
包括Zend公司Zend和PHP关系就类似于Sun和Java ; ; ; ; ; ; ;
2006.3 PHP SDO v1.0.0发布2006.9 PHP SDO v1.0.4发布
2006.9 PHP SCA v0.1.0发布
;详情请参看:
SOA PHP Homepage

SOA和PHP

WEB2.0 jackxiang 2010-1-6 11:53
什么是SOA?

SOA(Service Oriented Architecture,面向服务的架构)是一种新的面向服务架构的编程模型,号称“下一代软件架构”。SOA由Gartner在1996年提出的,到了2002年12月,Gartner又提出了SOA是“现代应用开发领域最重要的课题”,并预计到2008年,SOA将成为占有绝对优势的软件工程实践方法。

SOA就是服务的集合。从软件和业务功能两方面的观点看,服务就是定义良好的软件组件,它不依赖于任何调用它的应用程序的上下文或状态。

在技术上,定义这些服务以及它们到应用程序的接口,然后实现这些服务,是SOA的核心部分.这些服务通常被实现为Web Services,应用程序可以通过简单对象访问协议(Simple Object Access Protocol,SOAP)来访问它,基于HTTP协议以XML的形式进行传输.

从根本上说,SOA是服务接口的一种流和一种关系,设计接口及其关系需要熟练掌握Web技术、业务流程和服务下的技术平台以及采用它们的应用程序等方面的知识。架构师不仅必须了解如何构造Web服务,而且还要了解现有应用程序和计划未来使用的应用程序如何使用它们。




SOA和Web Services是比较大的概念,是一种规范(封装服务和提供服务的规范),它们降低了后台程序如何运行的重要程度。你可以用不同的编程语言和平台来并实现SOA和Web Services。甚至有人由此预计五年后JavaEE不再是主流的标准程序设计模型,因为Java EE太过复杂。很显然,如果我用简单的方式也可以实现SOA,那么为什么要用Java EE呢? 这就是平台的力量,平台的影响力总是大于应用,JavaEE是个小平台(对于一般的开发而言,它已经是个非常大的平台,但是技术和需要总是在不断发展的),而SOA是个大平台。从面向过程,面向对象,面向组件和面向业务各种编程模型,目前JavaEE大部份时候是在面向组件和面向业务之间,而SOA是面向业务,应该说对于企业应用非常有优势。



目前IBM可以说是SOA的主宰力量,我们可以看到它甚至在PHP方面也在大力推广SOA(IBM、Oracle 尝试把PHP 应用到SOA 之中),足见其野心之大。



我们看看IBM在PHP SOA方面的进展:

2005.7 IBM用PHP实现SDO并提交到PHP的PECL库

2005.12 IBM联合BEA、Oracle、IONA、SAP、Siebel、Sybase、Xcalia以及Zend公司,共同发布了两项针对SOA的重要编程模型规范——SCA(Service Component Architecture)和SDO(Service Data Object)。  注意,包括Zend公司。Zend和PHP的关系,就类似于Sun和Java。      

2006.3 PHP SDO v1.0.0 发布
2006.9 PHP SDO v1.0.4 发布
2006.9 PHP SCA v0.1.0发布

详情请参看:

SOA PHP Homepage



其实单独地说PHP中的SOA并不是一件很有意义的事,因为那只不过是一个Java的移植,以现在PHP5的面向对象编程模型,基本上已经足够胜任,甚至有些方面更方便,因为PHP是弱类型和动态类型的语言(Type Juggling),在实现SDO时,写代码不用像Java那么烦琐(不需要写那么多geter/seter)。但是实现之后,能否推广起来?这种“抽象、松散耦合和粗粒度”的软件架构能否真正被接受?

光靠IBM的力量(可能还有Oracle、Zend)来发展PHP SOA,可以说是没有可能成功的。当然话又说回来,如果SOA发展很好,PHP SOA也一定会流行起来,也会有更多技术厂家加入。一个技术能否被接受,能否流行,很多情况下还是要看大环境。
http://hi.baidu.com/nnffnn/blog/item/2eb8a38ff831a1eaf01f36b4.html
img.src = "http://ptlogin2.qq.com/getimage?aid=" + aid + "&" + Math.random();



$.getJSON('/con/info/act/getawardleft',{type:$.getURLParam('type'),clientTime:Date()},function(data){
                    $('#awardleft').text(data.awardleft);




$.get('/con/info/act/getmyscore',{clientTime:Date()},function(data){
                    $('#myscoreleft').text(data);
比较strlen和mb_strlen

当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)

复制代码 代码如下:


$str=‘中文a字1符‘;

echo strlen($str);

echo ‘
‘;

echo mb_strlen($str,‘UTF8‘);

//输出结果

//14

//6

?>

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14

在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6

关于中英文混排串的占位符计算:

利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1),计算的方法是:如果一个混排字符串有a个中文,b个英文,占位是:

复制代码 代码如下:


$str=‘中文a字1符‘;

//计算如下

echo (strlen($str) + mb_strlen($str,‘UTF8‘)) / 2;

echo

//输出结果

//10

?>

例如 “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,则可以计算出“中文a字1符”的占位是10.

附网站的一篇文章:

还是有关中文的问题。PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在 UTF-8编码下,一个汉字占3个字节)。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用 mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。
使用桥接模式的IP和网关并不是照搬就成,一是注意IP别冲突了,二是注意DNS还有网关别搞错了。 三是)如果有INODE啥的,可能还得设置一下才能让虚拟机上得了网。

对于IP设置静态、DNS和网关、子网掩码这块的一个设置,得从windows下的ipconfig /all进行查看并配置上IP设置静态、DNS和网关、子网掩码:

   IPv4 地址 . . . . . . . . . . . . : 10.10.0.94(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 10.10.0.2
   DNS 服务器  . . . . . . . . . . . : 123.125.81.6
C:\Users\Administrator>ipconfig /all
[codes=php]
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Wireless-N 7265
   物理地址. . . . . . . . . . . . . : 48-45-20-CF-65-98
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::a8aa:4679:3642:9444%18(首选)
   IPv4 地址 . . . . . . . . . . . . : 10.10.0.94(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2020年6月3日星期三 下午 8:39:19
   租约过期的时间  . . . . . . . . . : 2021年6月3日星期四 下午 8:39:19
   默认网关. . . . . . . . . . . . . : 10.10.0.2
   DHCP 服务器 . . . . . . . . . . . : 10.10.0.2
   DHCPv6 IAID . . . . . . . . . . . : 172508448
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-24-36-C3-52-C8-5B-76-00-B0-AD
   DNS 服务器  . . . . . . . . . . . : 123.125.81.6
                                       202.106.196.115
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用
[/codes]


VMware下Linux与真实主机共享上网的方法实现环境:

真实机系统为windows xp或者2003,使用adsl拨号上网,虚拟机版本为V5.5.2 Build 29772,虚拟机安装linux,有一块网卡,使用桥接模式。



1、在windows下,启用ICS。

选择adsl上网拨号后的连接,属性?高级?Internet连接共享?勾选“允许其他网络用户通过此计算机的internet连接共享”,家庭网络连接选“本地连接”。

2、在linux下,配置静态IP。

点主菜单?系统设置?网络,弹出“网络配置”,双击eth0,勾选“静态设置的ip地址”,

地址:192.168.0.21 (除192.168.0.1和255外,随便填)

子网掩码: 255.255.255.0

网关:192.168.0.1

确定

DNS项,主DNS填:192.168.0.1

都填完,记得保存。

3、编辑主机地址(实验时这步可以不用)

vi /etc/hosts

把127.0.0.1替换成前面设置的ip地址192.168.0.88

4、重起服务

service network restart 或者重启linux。

5、现在ping 一下 google.cn 看看,如果通就ok了,没有通的话,自己再检查上面的步骤是否出错。
今天在笔记本上试图虚拟一个64位LINUX系统,VMWARE报错。


i Z _ b S ^0c Q0

尝试虚拟的操作系统是Oracle的Enterprise Linux 4 for X86-64,因此在系统选项中选择了Other Linux 64bit,尝试系统后系统报错:

This CPU is VT-capable, but VT is not enabled (check your BIOS settings).
6M W k%~7f V _"s0You have configured this virtual machine as a 64-bit guest operating system. However, this host's CPU is not capable of running 64-bit virtual machines or this virtual machine has 64-bit support disabled.
Z H*C o L z)X:H ? i Y0For more detailed information, see http://www.vmware.com/info?id=152

点击确定,屏幕显示错误信息为:

Your CPU does not support long mode. Use a 32bit distribution.

对于这种情况,需要设置BIOS将Inter Virtualization Technology设置为ENABLE,然后重启系统,就可以了。

如果BIOS设置了没有类似的设置,那么系统就无法虚拟64位的系统了。
以下的方式能够帮助PHP应用程序改善其扩展性。

1)目标代码缓存

每一次服务器的请求都需要PHP引擎编译并执目标代码。如果这一过程被缓存的话用户会获得更快的相应脚本。

在Internet上有许多目标代码的缓存解决方案(免费或者是商业产品):

A) Ioncube:http://www.ioncube.com

B) Zend Encoder:http://www.zend.com/products/zend_safeguard

C) Turckl MMCache: http://freshmeat.net/projects/turck-mmcache/

2)模板引擎

模板引擎提供了缓存的另一种方式。内容缓存。 模板引擎适合于您的页面有比较多的静态数据的情况。缓存系统还提供了代码与html的分离,使得将来的维护与更新更加容易。大多数的PHP模板引擎都是免费的。

A) Smarty Templates: http://smarty.php.net/

B) Pear Templates: http://pear.php.net/package/html_template_it/redirected

C) PHP savant: http://phpsavant.com/yawiki/

3)分布式对象缓存系统

这一类型最广泛使用的系统是memcached(http://www.danga.com/memcached/)

这一类型的系统将大量的数据库数据缓存在一个内存池中。

他们网站有趣的一段摘录:

“Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.”

5)输出压缩

今天几乎所有的浏览器都支持一种叫做gzip压缩的东西。Gzip能够减少你的整体输出到80%,但代价是:处理器的资源消耗会增加10%。使用这一压缩类型的好处是不仅能够减少你的带宽,而且页面也会更快速的加载。

在PHP启用(在php.ini增加以下几行):

zlib.output_compression = On
zlib.output_compression_level = (level) (where level is 1-9. Youy may want to try different values to see what is best for your system).

如果你使用的是Apache,你可以启用mod_gzip模块.

6)其它有用的东西

当使用数据库时,只取出你实际需要的数据。这听起来很理所当然,但是我碰到项目的程序员经常使用(select * from mytable)而实际上他们可以使用(select fieldIneed from mytable)。

如果可能的话为数据库表建立索引

了解更多可以看这里:

An interesting blog article I found mentions many interesting tricks that can be used: http://ilia.ws/archives/12-PHP-Optimization-Tricks.html

an article on zend.com about measuring performance: http://www.zend.com/zend/trick/trick-optimizing-php.php

原文地址:http://www.whenpenguinsattack.com/2006/08/14/using-php-in-large-websites-redone/?artid=134
近半年在公司的pc上,用sz下载,rz上传老是文件会出问题。刚开始的时候,我一度怀疑是linux虚拟机,或者网络的问题,导致传输的过程中丢包,也没有仔细去探究。

最近发现,在任何服务器上做同样的操作都存在同样的问题,会严重的影响我的工作。为此,决定把真凶就揪出来。在下载文件前用md5sum计算它的md5值,然后用sz下载到本地的pc上,用windows下的md5sum再计算一次,发现下载到本地之后的md5值跟在服务器上是一样的。最后使用rz上传到服务器上再算一次,发现变化发生在我用rz上传到服务器之时。

缩小怀疑对象了。rz怎么会出问题。先看看SecureCRT中Session Option的设置,Xmodem/Zmodem这一栏中似乎也没有关于校验的设置。pqf说,会不会是上传的时候没有用binary的方式,他自己用rz,sz通常都会加上-b,-e的参数。
-b binary 用binary的方式上传下载,不解释字符为ascii
-e 强制escape 所有控制字符,比如Ctrl+x,DEL等

于是我老老实实的用rz -be的参数来上传文件,发现一切照旧。我开始怀疑是不是rz的bug,于是google之。Google来Google去都没有结果,更换搜索关键字都没有,比如"rz file changed“,"rz transfer size"。难道Google也有不灵光的时候?

好。先放一放吧。在今天下午,我又用rz上传一张图片,但是图片又因为发生了改变无法访问。正在垂头丧气的时候,突然发现问题所在!
在输入rz后,上传文件的对话框,我不知道什么时候勾选了Upload files as ASCII。这个该死的选项,去掉后再测试,一切都正常了。

关于rz,sz
rz,sz是利用[XYZ]modem协议来实现上传下载文件的工具。本身来说Zmodem协议算是一个古老的协议了,似乎用rz,sz也不能续传文件。但是它的好处在于方便,不需要server支持。只要服务器支持rz,sz(不支持的话,linux可以装lrzsz这个rpm包),客户端软件支持(SecureCRT这类的),就可以方便的两个命令实现本地pc和服务器之间的文件上传下载
背景:最近,打下rpm包,想了解一下包依赖,特别是这个libiconv这个在linux里没有yum下的rpm包,于是自己打了一个编译过去了,但是如果在其它机器部署是不是还得装下自己打的rpm包呢,于是查了一下,发现php里面有一个libiconv.so.2指向打rpm编译时自己打的这个libiconv的rpm包,所以,还得安装这个自制的rpm包,也就是说需要打的php的rpm包依赖这个自己打的libiconv的rpm包,要在依赖里写明:Requires: libiconv ,不光是BuildRequires: libiconv。
[root@localhost sbin]# ldd php-fpm |grep libicon
        libiconv.so.2 => /usr/local/libiconv/lib64/libiconv.so.2 (0x00007f0a545db000)

同样,如果自己建立yum仓库时,在安装memcache包时也需要安装自己打的这个libevent的rpm包(指定打包安装的libevent动态库位置后,后面打包的memcache也是按这个指向编译并打包即可):
[root@iZ25dcp92ckZ multepoolserver]# ldd /usr/local/memcached/bin/memcached
        linux-vdso.so.1 =>  (0x00007ffc4d5b5000)
        libevent-2.0.so.5 => /usr/local/lib/libevent-2.0.so.5 (0x00007fac1db70000)
——————————————————————————————————————————
这块还好当时问过张宴兄弟,突然想到打包,他提到的这个ldd很有帮助:
向东 说:
centos出5.4了,那个nginx也写到5.4吧?呵呵
张宴 说:
有时间我更新一下,呵呵。
向东 说:
我想请教一个关于rpm包的问题,我安装某个东西的时候会说依赖某个*so,你一般是怎么反查到这个*.so属于某个rpm包?
向东 说:
在不同系统版本好像包也是有区分的
向东 说:

张宴 说:
只能根据rpm包的某个可执行文件查询其依赖的.so,ldd命令可以查询:
张宴 说:
# ldd /usr/local/webserver/nginx/sbin/nginx
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003e78200000)
        libpcre.so.0 => /lib64/libpcre.so.0 (0x0000003e76a00000)
        libssl.so.6 => /lib64/libssl.so.6 (0x0000003610c00000)
        libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e75200000)
向东 说:
喔,linux在装某个rpm的时候依赖很多包,比如我装那个rz的时候就说我没有装什么什么so,你是如何解决?
张宴 说:
装rz,yum install lrzsz就OK了。
向东 说:
喔,我搞的是虚拟机啊,,我就直接挂载Linux的iso到虚拟机里面,想挨个安装rpm包依赖,
没有利用到linux的网络优势。
向东 说:
看来还得自己搞台服务器玩玩
张宴 说:
rpm安装有先后顺序的。
张宴 说:
rpm -i *.rpm
向东 说:
rpm -ihv rzsz-0.12.20-853.2*.rpm他会提示你缺少某个动态链接库,但是这个动态链接库的rpm包他没有说啊
向东 说:

向东 说:
当然用yum联网他会给一切安排好

向东 说:
我的网站给个链接:www.jackxiang.com
向东 说:
大学的时候我就看到你叫回忆未来,我说说我为何叫回忆未来:如果我放弃了我的员工,我永远不会看到未来的希望,如果我放弃了我的客户,我则失去了回忆的必要,信念和希望必须专注与此,我就是回忆未来-向东  缘分啊。
向东 说:

于是搞了个虚拟机NAT方式共享上网, yum install lrzsz:


[root@localhost ~]# yum install lrzsz
Loaded plugins: fastestmirror
Determining fastest mirrors
* addons: mirrors.163.com
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
addons                                                                                                       |  951 B     00:00    
addons/primary                                                                                               |  201 B     00:00    
base                                                                                                         | 2.1 kB     00:00    
base/primary_db                                     78% [================================         ] 141 kB/s | 1.2 MB     00:02 ETA



linux初级(a)
                  1>linux图像界面使用
                  2>linux简单目录结构
                  3>常用命令
                  4>linux系统安装
linux中级(b)
                  1>linux用户/文件系统管理
                  2>linux网络管理
                  3>linux磁盘管理
                  4>linux系统和日志维护管理
                  5>linux安全优化
                  6>linux系统备份与恢复
                  7>shell初步编程
linux高级(c)
                   服务器系统工程(c1)
                                            1>linux dns
                                            2>linux nis
                                            3>linux mail
                                            4>linux web
                                            5>linux ftp
                                            6>linux db
                                            7>linux 服务器管理
                                            8>linux 集群服务器
                    开发工程师(c2)
                                       1>shell高级编程、
                                       2>c语言开发
                                       3>内核基础
                                       4>linux驱动开发
                                       5>嵌入式开发
有个进程叫reg.exe,总是改我主页,在system32内,查了一下是不安全的。删了之后又出来。你说它改主页吧我让他改,可改过之后还要改,诺顿那个提示一直下不去。要怎么删。

360安全论坛好像有这种专杀工具可供下载,你自己去找找看。
如果要手动解决这种IE主页劫持病毒,对新手来说是很困难的。
还有一个最简单的方法,就是让它改主页,也不要改回来,在桌面或任务栏放一个IE浏览器的快捷方式(有小箭头的那种),右键单击IE快捷方式图标→ 属性→点“快捷方式”选项卡→  在“目标”框里面输入:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" site.baidu.com
注意,如果系统在D盘,就把C:改成D:;
这样修改之后,点击IE浏览器的快捷方式,不论主页是什么,一律打开site.baidu.com网站,如果想换成其他网站,把site.baidu.com换成其他网址即可,注意,双引号与网址之间有一个空格。
如果是NTFS格式的磁盘,还可以点击“安全”选项卡,禁止任何帐户修改IE快捷方式的属性,这样病毒更加没办法了。


  C:\WINDOWS\system32下的reg.exe文件开机的时候自动更改IE首页,手动删除,刷新后又出现。这个reg.exe没有任务管理器打不开,提示被管理员禁用,IE打开后不多久就会自动关掉,打开任务管理器以后发现进程里有很多很多的reg.exe进程在运行,而且每2秒刷新出来一个,一直刷,刷到电脑吃不消什么都打不开等现象,只是修改IE首页,所以试遍了网上的专杀和手动清除方法都不管用。最后没办法了,进入安全模式手动删除,然后重启后竟然没有发作,到C:\WINDOWS\system32查看,reg.exe已经被删除。本来很简单就能解决的问题,绕了一大圈才找到解决办法。

reg.exe
  
1. reg add

   用该命令加入一个新的指定键值,从给出的例子文件来看,基本的使用方法如下:
  命令-计算机名称-根键名-[子键名称-类型-数据]下面是更详细、规范的表述:
  reg add [\\machine\]keyname [/v valuename /ve] [/t type] [/s separator] [/d data] [/f]
  参数及说明:
  machine :
  计算机名称,此处关于计算机名称的介绍,其它命令也将使用,请注意.以machine指定远程计算机名称,如果省略,默认值是使用当前的本地计算机,不能使用驱动器名来指定远程计算机名.计算机名称前面的双反斜杠符号不能省去.如:\\mydiac 就是一个正确的范例.
  keyname :键名,此处关于键名的解释,其它命令也将使用,请注意.
  格式:[rootkey\]key
  rootkey 是根键
  根键可以使用以下形式的简写:
  根键名
  简写形式
  hkey_local_machine
  hklm
  hkey_current_user
  hkcu
  hkey_classes_root
  hkcr
  hkey_current_configuration
  hkcc
  注意: hklm 和 hkcu 键值仅适用与远程计算机。
  key :子键
  所选根键之下的子键的完整名字
  /v valuename
  向指定注册表加入新键值的名称,如果包含有空格,则字符串应使用引号
  /ve
  加入的空键值名
  /t type
  指定使用的数字或字符串的类型,这些类型与win9x相同,这里不再详细介绍.
  /s separator
  指定注册表使用的数据字符串的分隔字符,例如使用reg_multi_sz类型时.默认情况下就 "\o" 作为分隔字符。
  /f
  允许覆盖现存的注册表
  /d data
  向注册表中的指定键以指定数据赋于键值
  
2. reg compare

  
  将当前(本地计算机)的注册表与另外一个注册表或另外一个远程计算机上的注册表进行比较.将比较结果输出到一个文件上.
  reg compare [\\machine\]keyname1 [\\machine\]keyname2 [/v valuename] /ve] [/s] [output]
  参数及说明:
  machine :
  指定的计算机名称.含义与上面一样
  keyname1, keyname2:
  注册表的键名,含义及格式与上面一样
  /v valuename:
  进行比较的键值的名称,如果包含有空格,则字符串应使用引号
  /ve, /ve
  比较默认(无键名的)键值
  /s, /s :
  比较所有子键
  output 输出
  以下列形式的开关参数控制输出结果:
  /oa,/oa:输出全部的不同部分与相同部分
  /od,/od:仅输出不同部分; /os,/os:仅输出相同部分
  /on,/on没有任何输出
  返回代码的含义:
  0:成功地进行了比较,比较的结果是二者相同
  1:比较过程失败; 2-成功地进行了比较,比较的结果是二者不相同
  
3.reg copy

  
  将当前的注册表或远程计算机上的注册表拷贝到一个新的位置(或计算机上)。
  reg copy [\\machine\]sourcekey [\\machine\]destinationkey [/s] [/f]
  参数及说明:
  machine :
  指定的计算机名称.含义与上面一样
  sourcekey 和 destinationkey:
  "源"键和"目的"键:注册表的键名称,含义及格式与上面一样
  /s :
  拷贝全部子键及键值
  /f
  强制拷贝
  举例:
  甲例子:reg copy hklm\software\myco\myapp hklm\software\myco\savemyapp
  这里myapp和 savemyapp 是不同注册表中的子键名,都在键名为 myco的键之下.执行结果是将myapp拷贝向 savemyapp中。
  乙例子: reg copy \\safari\hklm\software\myco \\zodiac\hklm\software\myco
  这里的zodiac和safari是计算机名,myco 是两台机器的注册表中都有的键名,执行结果是safari机器的键值被拷向zodiac.它与上面一个的主要区别是:1.两台机器都是远程计算机.2.所拷贝的是该键之下的全部内容而不是某一项.
  丙例子: reg copy \\zodiac\hklm\software\myco hklm\software\myco1
  作用与上面类似,但zodiac是远程计算机,而hklm是本地当前所用计算机.
  
4.reg delete

  
  删除一个注册表、注册表键值或子键值.
  reg delete [\\machine\]keyname [/v valuename /ve /va] [/f]
你需要修改系统注册表来关闭此警告。首先,启动注册表编辑器:在“Start”菜单中选择“Run”并在文本框中输入“regedit”,然后单击“OK”。当打开注册表编辑器后,在左栏寻找以下条目:
  HKEY CURRENT USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  在右边一栏,查看键名为NoLowDiskSpaceChecks的键值。如果这个值存在,应该是设置为0,这也是此键的默认值。通过双击键名对其进行更改。你可以查看Edit String界面,在数值区域输入1然后单击“确定”。
  如果此键值不存在,则需要添加此键值。在Edit菜单中选择“New | DWORD Value”。新建的值将会出现在右边并提示你输入键名。输入NoLowDiskSpaceChecks并回车。请确认你没有在单词之间使用空格,这是一个很长的变量名。
  双击新键值。你可以看到Edit DWORD Value的屏幕,在数值区域输入1然后单击“OK”。当你完成以上步骤时,注册表屏幕应当如图A所示:

nopic

  图A:将NoLowDiskSpaceChecks加入注册表 完成后关闭注册表。你对注册表的修改会自动保存。重启计算机。当你的计算机重新启动后,那些讨厌的提醒就已经成为过去了。但是一定要记得提醒用户注意他们的计算机磁盘空间是否快满了。

通常,当可用磁盘空间少于200MB时,Windows XP会在每次启动时发出提醒。如果可用磁盘空间少于80MB,则会每四个小时通知一次直到可用磁盘空间超过80MB。一旦少于50MB,将会每5分钟通知一次直到此情况消除。如何取消呢?

(1)在“运行”栏中使用“Regedit”命令打开“注册表编辑器”窗口;

(2)在注册表中展开到如下分支:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

(3)在右侧窗格中创建一个名为“NoLowDiskSpaceChecks”的DWORD值,并赋其属性内容为数字“1”即可。
分页: 188/272 第一页 上页 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 下页 最后页 [ 显示模式: 摘要 | 列表 ]