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

村里人的IT故事 2012-12-06

本文于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一般设置图:

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

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

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(中华人民共和国)。

相关推荐