PHP是Linux的原生服务,运行到Windows上究竟有什么不好呢?
尽管PHP是一个多平台语言,在Windows上运行PHP还是一个挑战。这是因为PHP是基于UNIX平台开发的,每个请求由一个不同的进程来处理。然 而在Windows平台下面,同一类型的请求是由同一进程的不同线程来处理的。这个区别意味运行着PHP的IIS的频繁崩溃。进一步来说,对这一问题的唯 一的解决方案就是把PHP运行在外部方式下(CGI)。最终导致PHP性能的降低。关键问题还是以下几点:
多线程:
PHP原生为多处理器环境(APACHE),因此最常用于LAMP (Linux, Apache, MySQL, PHP) 平台。windows的工作方式不同,web服务器,不管是iis还是apache都是多线程运行,即一个处理器上跑所有客户请求。为了使php在 多线服务器上跑的好,必须考虑线程安全的问题。如果线程安全处理失败,会导致php运行不稳定是当然的,同时是iis或apache崩溃的情况也经常发 生。还有更糟糕,一个崩溃的线程会导致整个web服务器挂掉,这也是为什么iis进程池会频繁的崩溃。相对于多进程环境,就算一个进程崩溃又有什么关系, 第web 服务器没有影响,下一个请求来的时候自动唤醒一个新的进程就可以了,就跟没发生过一样。时至今日,唯一防止php在windows上崩溃的做法还是把 php设置为外部CGI,但会比ISAPI慢很多。
Read More—1322bytes
来源:51cto.com
Tiobe近日发布了2009年9月的编程语言排行榜,PHP在本期榜单中获得历史性突破,以近一个百分点的增幅成功进入前三名,C++下降一位,排名第四。
回顾PHP发展:
简单之道
1994年,Rasmus Lerdorf并没想到自己为了维护个人网页而发明的脚本语言会在今天的Web开发领域大放异彩。在这早期的版本中,PHP只提供了访客留言本、访客计数 器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要且增加一些特性,比如循环语句和数组变量等等。1995年发布的PHP2.0定名为 PHP/FI(Form Interpreter)。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。
到了1996年底,已有15000个网站使用 PHP/FI;时间到了1997年,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0问世了,其中增加了许多新的特性,而这些特性都是开发者和当时的项目强烈需要的。
Read More—1250bytes
by
jerry |
Categories:
互联网资讯 | Tagged:
PHP |
1 Comment
随着康盛系列产品在国内的普及,很多站长都从原来的ASP阵营转投PHP门下。在这里我们不再讨论PHP的优越性,而主要讨论站长们在选择PHP构架的网站程序时,如何选择更合适的服务器环境。
当ASP盛行的时候,WIN主机自然是用户普遍的选择。如果现在统计IDC的服务器系统,恐怕还是WIN的天下。即使在当前大量网站转投PHP构架的时候,这种情况依然存在,Linux系统仍然是属于高手的游戏。所谓的全能主机大量冒出,甚至成为了服务商宣传的口号。但是问下高手们,大家会异口同声的反对所谓的全能主机,PHP还是嫁给Linux好,这样的论调在大多数的PHP开源讨论社区内,已经成为共识。
这里具体说明一下为什么PHP建站还是选择Linux环境比较好:
1- PHP本身就是为Linux编写的,是Linux的原生服务。
大家买东西时都知道,什么产品都是原装的比较好。这个当然是从感情层面上来讲的,Linux 是PHP的原配,想当然的磨合的更好一些。具体来说,有一部分PHP的函数在WIN下是不工作的,或者工作效率低下。虽然PHP的兼容性一直是它最值得推崇的一个因素,但事实是PHP只有在Linux下才能完全编译。比如最有用的mail函数,在WIN下就不能工作,其他的例子请看这篇文章《想要精通PHP吗?先学好Linux/unix和c吧》
Read More—1469bytes
精 通”,在求职简历上比比皆是。但是本文目的不在于讨论精通的标准,也不想去批评现在漫天的精通。就让我们暂且认同“精通”这两个字,来讨论下 Linux/Unix(以下简称Linux)和C对精通PHP的帮助。另外要说明下的是,这里说的精通PHP只是纯粹对于PHP来说的,并不是指web开 发,所以javascript,HTML或者Ajax,smarty,CSS这类都不在讨论范围。
首先无论从哪个方面看,PHP和 Linux都是最好的组合。虽然PHP也能在windows上运行,但是有些功能却实现不了。举个例子就是进程控制的功能PCNTL,其中有一个函数是 pcntl_fork(),如果这个函数运行成功的话,会产生一个子进程。这个对于想在后台产生多个进程来执行多个任务的应用来说非常有用,但是这个函数 库在windows下是不可用的,当然一些第三方软件可以解决windows下的问题,比如pstools,但这本身已经是PHP之外的东西了。如果你再 研究一下在Linux下相同功能的C程序怎么写后,你会发现PHP其实就是Linux下C程序的翻版,不同的只是函数名称而已。下面是PHP的 pcntl_fork()函数和C中的相应fork()函数的比较。
Read More—4235bytes
by
muggle |
Categories:
网站建设知识 | Tagged:
linux,
PHP,
unix |
No Comments