注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骐骥一跃

日积跬步 业精于勤荒于嬉

 
 
 

日志

 
 

[原创]Windows Server 2008 R2 SP1 下安装 PHP 64bit  

2014-11-18 23:03:07|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

 

PHP 在 Windows 下的安装配置稍微有点复杂,特别是现在 PHP 推出了 64 bit 版本后。

如果想图省事的,可以用现成的一键安装方式,http://www.phpstudy.net/a.php/206.html

我以Windows Server 2008 R2 SP1平台为例,介绍 PHP 的安装和简单配置。

一、安装Web服务器

Windows 平台下 Web 服务器的选择有很多,IIS、Apache等。我以 Apache 为例讲解,IIS 的请参考相关文档。

Windows 平台 Apache 的安装可参看我另一篇文章:《Windows Server 2008 R2 SP1 下安装 Apache 2.4.x》。

二、PHP版本选择

PHP Windows 平台的下载 : http://windows.php.net/download/

现在 PHP 的版本很多,分 VC6/VC9/VC11的,又分 x64/x86 的,还分 Non-Thread Safe (NTS)非线性安全版/Thread Safe (TS)线性安全版,看着很杂乱。我教大家如何选择。

Windows下的PHP 主要有两种执行方式:ISAPI 和 FastCGI。

NTS 和 TS 是PHP 的两个分支。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源,一般在IIS以ISAPI方式加载的时候选择这个版本。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在windows下使用Apache+PHP的,请选择VC6版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在windows下使用IIS+PHP的,请选择VC9版本。

VC11版本是使用Visual Studio 2012 编译器编译的。

x64/x86 很好理解,64位操作系统用x64,32位操作系统用 x86 。

看了一大段是不是有些晕,说实话,我写这一大段也有些晕。下面告诉你选择技巧,请牢记。

  • Apache选VC6,并且是TS(Thread Safe 线程安全)版。
  • IIS 选VC9,并且是 NTS(Non Thread Safe 非线程安全)版。
  • 至于x64/x86,什么位数的操作系统就用什么版本。

大家到官网 Windows 平台的下载对照着找相关版本下载:http://windows.php.net/download/

至于 VC11 版,是下面要介绍的重点。我写这篇文章的时候,还没有这方面的资料,于是我自己摸索实验,特分享给大家。

三、安装步骤

我发表这篇文章时最新的 PHP 是5.6.2,VC11编译的。我就以目前最新版的介绍。Windows server 2008 r2 sp1,选 VC11 x64 Thread Safe。

[原创]Windows Server 2008 R2 SP1 下安装 PHP 64bit - 卓格 - 骐骥一跃

 
图1 下载PHP

下载后是个zip压缩包。VC11二进制包调用VC11, VC10 和 VC9的模块,最低系统要求: Windows 7 SP1, Windows 8 / 8.1, Windows Vista SP2, Windows Server 2008 R2 SP1, Windows Server 2012 / R2, 不能运行在 XP 和 2003。

Windows 下有三种方法使 PHP 工作于 Apache 2.x之中(包括Apache 2.2.x 和 Apache 2.4.x),可以以 handler,CGI,或者 FastCGI 方式运行 PHP 。

注意: 记住当在 Windows 环境下的 Apache 配置文件中添加路径值时,所有的反斜线,如 c:\directory\file.ext,应转换为正斜线: c:/directory/file.ext。对目录来说,也必须由斜线结尾。

Handler方式:

  1. 安装Visual C++ Redistributable for Visual Studio 2012 : VC11 vcredist_x64/86.exe 。
    • 英文下载地址:http://www.microsoft.com/en-US/download/details.aspx?id=30679
    • 中文下载地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679
    下载后,64位系统装64位的,32位系统装32位的。将64位的运行库安装在 Windows Server 2008 R2 SP1中即可。
  2. 解压PHP压缩包到指定目录,例如我解压到“D:\php-5.6.2-Win32-VC11-x64”。
  3. 建立环境变量。编辑现有的环境变量“Path”,在最后增加“D:\php-5.6.2-Win32-VC11-x64”,注意用英文分号(;)与前面的值隔开。在系统环境变量中“新建”一个名为“PHPRC”的变量,变量值:“D:\php-5.6.2-Win32-VC11-x64”,这个“PHPRC”变量是为后面的 CGI 和 FastCGI 方式准备的。
  4. 复制php目录下的php.ini-development,并改名为PHP.ini。
  5. 确保 PHP 根目录存在“php5apache2_4.dll”文件,如果Apache是2.2版本的,确保 PHP 根目录存在“php5apache2_2.dll“文件。
  6. 备份“Apache24\conf\httpd.conf”文件为“httpd – new.conf”。打开 httpd.conf,在最后加上
    				# php5 support
    				LoadModule php5_module " D:/php-5.6.2-Win32-VC11-x64/php5apache2_4.dll"
    				AddHandler application/x-httpd-php .php
    				# configure the path to php.ini
    				PHPIniDir " D:/php-5.6.2-Win32-VC11-x64"
    				
  7. 重启 Apache 服务。
  8. 测试。在文档根目录(默认为Apache的文档目录)新建一个test.php,内容为<?php phpinfo(); ?>保存,访问出现php的信息就说明php已经成功安装。

    [原创]Windows Server 2008 R2 SP1 下安装 PHP 64bit - 卓格 - 骐骥一跃

     
    图2 Handler运行方式

CGI 方式:

以 FastCGI 方式运行 PHP 比起 CGI 方式有很多优点。所以 CGI 方式就不介绍了。

FastCGI方式:

按照 Handler方式的步骤来,把第6步替换成下面操作即可。

6、下载 http://www.apachelounge.com/download/ 这里下面的“modules-2.4-win64-VC11.zip”压缩包,解压后将“mod_fcgid”文件夹中的“mod_fcgid.so”复制到“Apache24\modules”目录。将在上面Handler方式中,Apache的 httpd.conf 配置文件最后面增加的5行注释掉,增加到最后面如下内容:

			#load
			LoadModule fcgid_module modules/mod_fcgid.so
			AddHandler fcgid-script .fcgi .php
			# Where to look for the php.ini file?
			FcgidInitialEnv PHPRC "D:/php-5.6.2-Win32-VC11-x64"
			#Path to php-cgi
			FcgidWrapper "D:/php-5.6.2-Win32-VC11-x64/php-cgi.exe" .php
			

然后找到网站运行目录代码块(“<Directory "D:/Apache24/htdocs">”块,大约在256行),将“Options Indexes FollowSymLinks”改为“Options Indexes FollowSymLinks ExecCGI”。

然后按照7、8步进行重启 Apache 服务和测试。

[原创]Windows Server 2008 R2 SP1 下安装 PHP 64bit - 卓格 - 骐骥一跃

 
图3 FastCGI运行方式
~全文完~
卓格 于办公室
2014年10月23日16:57:08 v1.0 初稿
2014年10月24日14:32:12 v2.0 更新PHP的多种运行方式;文章结构重排,利于阅读。
  评论这张
 
阅读(1596)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018