windows下 php、apache 版本选择 解惑说明

每次安装php开发环境的时候总是得或多或少困惑一阵,今天来梳理一下apache,php之间的关系(根据http://www.ituring.com.cn/article/128439整理,添加。)

1.apache和php都是由visual studio编译。

因此我们经常会遇到选择VC6/VC9/VC11的困惑。PHP官方不建议在Windows下安装从apache.org网站下载的Apache二进制安装包。原因就是这些安装包是基于陈旧的Visual Studio 6编译的,导致你不得不必须使用同样陈旧的PHP版本(即VC6的PHP版本。也即使用Visual Studio 6编译的PHP版本)。PHP官方的建议是你在Windows下可以使用IIS,或者使用来自Apache Lounge(www.apachelounge.com)的Apache版本。

2.windows下php选择线程安全的还是非线程安全的。

要弄清这个问题,首先要看选择的服务器,根据所选的服务器以及php工作方式,再决定php的选择。windows下我们可以选择iis或apache。

1.采用iis时php有两种工作方式:

2.1 isapi 则你应该使用PHP的线程安全版本(Thread Safe,TS)。原因是PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。

2.2 fastcgi 则应该使用PHP的非线程安全的版本(Non-Thread Safe,NTS)。原因是以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

2.采用apache时有三中工作方式:

在这里还有必要说明一下,尽管Apache本身是线程安全的,同时你也选择了PHP的线程安全版本,但由于一些Apache和PHP下的第三方扩展最初是基于Unix的多进程思想开发出来的,在设计开发时没有考虑线程安全的问题,因此,不排除在这种情况下仍然存在IIS被某些第三方扩展搞崩溃的可能。

2.1 模块 如果你要在Apache中以模块方式安装PHP,则你应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。

2.2 ISAPI 通常认为ISAPI是配合IIS使用的,因为ISAPI最初就是微软为IIS开发的。但Apache现在也可以通过加载mod_isapi.so模块来实现ISAPI的功能,以允许PHP以ISAPI的方式安装。.so文件是Apache自1.3版本后制定的用于Windows下的模块命名规则,对于Windows下的Apache而言,.so与.dll文件一样,都是动态链接库文件。

当要以ISAPI方式来安装PHP时,通常是加载一个名如phpXisapi.dll的DLL文件,其中的X为阿拉伯数字4、5等等这样子。

但一般不建议在Apache中以ISAPI方式来安装PHP,原因是到目前为止,Apache通过mod_isapi.so模块来实现的ISAPI功能并不完整,并未完整实现微软对ISAPI所制定的全部规范。同样的,由于以ISAPI方式来安装PHP时,PHP也没有独立的进程,也是作为模块被加载到Apache中的,因此,同样也需要使用PHP的线程安全版本。

2.3 FastCGI 如果你要在Apache中以FastCGI方式使用PHP,则同在IIS中使用FastCGI的PHP的情况一样,你应该使用PHP的非线程安全的版本。原因是在Apache中以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,故应使用PHP的非线程安全版本以提高性能。

时间: 2024-11-13 10:14:32

windows下 php、apache 版本选择 解惑说明的相关文章

Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么多时间,很大程度上是由于网上的资料几乎全都是支离破碎.以讹传讹的.既然我已经搞懂了,就花时间整理出来,即方便自己看,也便于大家阅读.相信通过这篇文章,可以解答很多在Windows下搭建PHP开发环境的朋友的

转:Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

原文来自于:http://www.ituring.com.cn/article/128439 Windows下的PHP开发环境搭建——PHP线程安全与非线程安全.Apache版本选择,及详解五种运行模式. 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么

windows下搭建Apache+Mysql+PHP开发环境

原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5.5php-5.3 下载地址 环境下载 官方下载地址 Apache MySql PHP 至于我使用的版本已经上传到百度云提供大家下载了,这里就不多啰嗦了!! Apache Apache的安装和普通的应用程序安装没什么太大的区别,关键是配置.打开安装路径下的"conf\httpd.conf"文

windows下安装apache笔记

之前一直是用别人配置好的apache环境来开放,今天想自己安装配置下windows下的apache(nginx+fastcgi).mysql.php等. 虽然大部分时间是在搞前端开发,偶尔也要搞服务端开发,熟悉下服务端环境配置也好 ,心里有底气些. 1. apache下载 这个下载遇到几个坑 ,最后到网上搜索才解决问题. 下载地址:http://httpd.apache.org/download.cgi   打开后选择最新版本 页面会跳转到相关资源项, 选择windows资源 进入windows

windows下安装apache服务器

一.安装Apache,配置成功一个普通网站服务器 运行下载好的"apache-win32-x86-no_ssl.msi",出现如下界面. 出现Apache HTTP Server的安装向导界面,点"Next"继续. 确认同意软件安装使用许可条例,选择"I accept the terms in the license agreement",点"Next"继续. 将Apache安装到Windows上的使用须知,请阅读完毕后,按&

windows下修改apache并发数

还没有尝试 修改apache的最大连接数,方法如下: 步骤一 先修改 /path/apache/conf/httpd.conf文件. # vi httpd.conf 将“#Include conf/extra/httpd-mpm.conf”前面的 “#” 去掉,保存. 步骤二 再修改 /path/apache/conf/extra/httpd-mpm.conf文件. # vi httpd-mpm.conf 找到 这一行 原: StartServers 5 MinSpareServers 5 Ma

Windows下配置Apache服务器并支持php

php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要把Apache理解成单独的服务器,并不一定和php搭档,只是和php配合是比较流行的一种组合方式,就比如lamp就是比较流行的网站架构,所以,首先我们来配置Apache,首先让服务器跑起来并能解析静态的html文件 首先我们去官网下载最新版本的Apache,首先来到首页:http://www.apa

Windows下WEB服务器的选择与搭建

本文主要基于支持perl的web服务器的选择. 一直基于web开发,服务器都是linux下使用webmin搭建的,惭愧的说一句,这么多年,也好好研究过WEB服务器,单从这个角度,是不是可以反应出webmin架构和俺们产品的build做得还算OK呢,才可以让大家伙将更多的精力集中,自身产品的业务上,而不用每个人都更多花大量时间在一些早已成熟的技术上,如果每个产品都以这个思想来做,那么这个社会将有更少的重复劳动,和更高效的产出,扯远了,回来继续关于Windows下搭建web服务器. A long t

windows下搭建Apache+PHP+Mysql环境

php开发环境的搭建是困扰新手们学习php 的第一道难题,很多童鞋为了省事经常直接安装wamp集成软件,这样虽然方便了新手童鞋,但是,个人觉得,这样对于学习PHP及后期理解PHP原理会造成相当的困扰,很多童鞋甚至编码过程中出了错也不会解决,因为不知道是环境出错了还是编码出错了. Apache环境 Apache官网:http://httpd.apache.org/ 官网只提供源代码下载,并不提供Windows下二进制文件,因此需要在第三方下载编译好的二进制文件,官方推荐apachehaus. 步骤