iis如何配置php windows server 2003中iis支持php配置(部署攻略)

本文于2011年3月重新修正,该方法仅适用于PHP<?xml:namespace prefix = st1 />

这篇文章可以说是众多的 IIS下配置php最实用最精简的一篇技术文章了,对于那些使用一键安装php+mysql+iis和用installer版本安装包的拖鞋可以忽略本文,并且对于网上最经典的“Windows配置Apache+MySQL+Php+phpMyAdmin"等文章,我觉得对于刚学会用电脑的朋友很适合看,要配置服务器的朋友看着就会觉得太简单和长篇了,本文用最精练的步骤进行安装。

以PHP为标准因为PHP5 PHP4 有文件夹命名的差异,不过触类旁通,请根据实际版本进行变化(文章虽然说的是PHP5.2.14,我实践主要是PHP4,只是文件夹的名字或许有点出入。)

==================================================================================

1.下载php-win32压缩包,解压之后重新命名为php放至D:/php 。

2.进去D:/php,找到php.ini-dist 和 php.ini-recommended 这两个都是PHP的配置文件,php.ini-dist是默认的配置文件, php.ini-recommended是推荐使用的配置文件,后者在PHP手册中有讲,是优化了性能和安全的。这里我们相信群众,把php.ini-recommended重新命名为php.ini。

3. 设置环境变量。为了以后升级方便,我们这里摒弃传统的复制DLL和php.ini到C盘系统文件夹下的方法,用添加系统环境变量path:
在桌面“我的电脑”--右键--属性---高级---环境变量,在最下面的列表中的path中添加php的路径和dll等的路径

d:/php;d:/phpextensions;d:/php/dlls(php5是没有这个文件夹的,请灵活变化);接着新建一个环境变量,变量名为PHPRC,变量值为:D:/php/php.ini也就是php.ini配置文件所在的路径。添加完后需要重启服务器才能生效,你可以等下面的操作完成以后再重启服务器。

4. 打开PHP.ini我们搜索extension,找到extension_dir = "./" ,把它修改为实际路径extension_dir = "d:/php/ext" ,这个是PHP要调用的一些DLL(其中php4环境下则是d:/php/extensions/)。

5.打开php.ini,搜索doc_root,修改为你的web存放的路径如d:/wwwroot或者留空;

6.在X盘新建一个文件夹tmp,设置iusr_用户可读写权限,再在php.ini文件中,把session.save_path设置为X:/tmp,主要用于保存session会话临时文件;

7.开启extension模块(这个可以参考下图,详细可以根据你的实际情况启用),也就是功能模块组件;如果有第三方模块如iconv,则需要把相应的dll文件拷贝到d:/php/ext文件夹里。

8.权限配置,默认情况下users组用户对D:/php有读取权限的话是不需要再做其它设置的,但是有的管理员如果修改过默认权限,如把D盘的users组权限给删除了,这里就要进行权限设置了。
D:/php目录分配给IIS 专用用户(通常为 IUSR_MACHINENAME)或者IIS_WPG组读取的权限;

上面设置的tmp 目录分配给IIS 匿名用户(通常为 IUSR_MACHINENAME)可写;
如果还安装有zend的话,也需要对zend安装目录分配IUSR_MACHINENAME读取权限;
webroot网站目录分配IUSR_MACHINENAME读取权限
webroot下的upload目录分配IUSR_MACHINENAME读写权限。

C:/windows/temp目录分配IUSR_MACHINENAME读写权限,这个主要是默认情况下php使用"文本文件上传"方法上传文件的临时存储目录,而另外一种"二进制文件上传"方法上传文件的临时存储目录是上面设置的x:/tmp。对于"文本文件上传"方法的临时目录需要改变为其它目录的话,需要在php.ini里设置upload_dir_tmp为你希望设置的具体路径,再设置该目录IUSR_MACHINENAME用户的读写权限。这个目录有的时候需要设置users可读取权限。

9.IIS 设置

打开IIS服务管理器,右键网站属性-->主目录,执行权限设置为"纯脚本",配置->映射-->

添加D:/php/phpisapi.dll,扩展名为.php ,动作复制其它的POST,GET,HEAD,DEBUG。然后添加index.php默认文档。

打开IIS服务管理器,右键网站属性-->ISAPI筛选器-->添加-->名称为php,可执行文件为D:/php/phpisapi.dll,最后确定。

10. 设置web服务扩展:打开 IIS服务管理器,进入 web 服务扩展,点击“添加一个新的 web 服务扩展”,“扩展名”中输入名称,例如 PHP,再点击“添加”按钮,点击“浏览”选择ISAPI 文件phpisapi.dll作为“文件路径”后点“确定”,然后选中“设置扩展状态为允许”并点“确定(有的地方是设置允许”“所有未知的ISAPI扩展,其实道理一样)。

如果碰到 CPU 占用率达到 100%,则取消选中“缓存 ISAPI 应用程序”(“主目录”下点“配置”按钮”)。

重新启动IIS,至此,PHP的安装已经完成,接下来是一些安全问题。

这时候最好写张phpinfo()的页面做为测试,察看一下当前配置情况。

11.访问需要输入用户名

一般提示输入用户名,密码这些,可能是权限设置问题,PHP目录添加IUSR_MACHINENAME 这个用户.默认权限就行了。

下图为extensions一般设置图:



=====================================================================================

tips1:关于时区设定的说明
从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,如果你对这个比较在意,那就修改php.ini的配置。

打开php.ini把date.timezone前面的分号去掉,在=后面加XXX,重启http服务(如apache2或iis等)即可。
关于XXX,大陆内地可用的值是:Asia/Chongqing、Asia/Shanghai、Asia/Urumqi(依次为重庆,上海,乌鲁木齐),港台地区可用:Asia/Macao、Asia/Hong_Kong、Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia /Singapore,以上没有北京,不过接着往下看,其他可用的值是:Etc/GMT-8,Singapore ,Hongkong,PRC(中华人民共和国)。

猜你喜欢

  1. Windows Server 2003网络负载均衡如何实现

    一、网络负载平衡的优点1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速 ...

  2. Windows Server 2003环境更改Boot.ini文件

    在 Windows Server 2003 中,您可以快速而轻松地找到 Boot.ini 文件以验证或编辑 Microsoft Windows 启动配置并根据需要更改高级 RISC 计算 (ARC) ...

  3. windows server 2003去掉IE信任站点提示的方法

    一次尚可接受不过每次访问网页,都要经过这样的步骤,就显然就太烦琐了。其实我们可以通过下面的方法来取消IE对网站安全性的检查 1、点击“开始”-->“设置”“控制面板”,在打开的控制面板窗口中,用 ...

  4. Windows Server 2003下DHCP服务器的安装与简单配置图文教程

    在前面的内容中,我们提到了DHCP这个词,为什么要用到DHCP呢,企业里如果有100台计算机,那样,我们一台台的进行配置Ip,我想还是可以的,因为少嘛,如果成千上万台,那我们也去一台台的配置,我相信这 ...