在IIS 5.0上架设PHP4详解

来源:互联网 发布:正规淘宝小号交易平台 编辑:程序博客网 时间:2024/05/29 08:42

(这篇文章是2002年11月份写的,那时候我大学没毕业,一个人无聊就搞搞网站玩,其中可能有些错漏,但我不想改了,谨以此文献给阮仲安同学,祝他早日把这些烦人的配置都弄好。^o^)

能不能让自己的服务器同时支持PHP和ASP呢?答案是肯定的,我经过了一番研究,终于OK了。那么我们要使用什么Web服务器软件呢?答案也是相当肯定的,只可能是微软的PWS和IIS,因为别的都不支持ASP,搭建ASP和PHP服务器可以让自己同时拥有ASP和PHP的调试/学习平台,对不少学习网络编程的人来说是很有用的。但我经过了大量的调试,还是无法让PWS支持PHP,所以麻烦看到这篇文章的高手指点指点啊,IIS支持PHP,我是做成功了,详细如下:
我的工作平台是Windows 2000 Pro + SP3,IIS 5.0,已经安装了Apache web服务器软件和WinGate代理服务器软件(用来共享上网)。我要说明的是,如果有那位朋友像我这样子不光安装了IIS,还有别的web服务器软件的话,包括像WinGate这种代理服务器,千万要注意更改一个端口号,不要让端口冲突,如www服务的默认端口是80,我把Apache的端口改成8088,(注意修改成的端口也不要和别的端口发生冲突),再把IIS的端口改称8089,觉得这样比较好记,(8088是一种元老级的CPU,8089嘛,就记住在8088后面是了)。改的方法如下:Apache的配置文件在它安装目录的conf下,名字叫httpd.conf,用记事本之类程序打开,搜索“port 80”,你会找到的,大致如下:
…………
# all firewall, security, and other services if you encounter problems.
# To help diagnose problems use the Windows NT command NETSTAT -a
#
Port 80

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
…………
把80改为8088,当然你如果确认不冲突的话也可一改成别的端口号,然后保存这个文件,重新启动Apache,然后在地址栏内输入:http://localhost:8088/,效果同以前输入的http://localhost/一样,冒号后面的数字代表端口号。而IIS的修改更为简单,右击“我的电脑”,点击“管理”打开了管理窗口,看到“服务和应用程序”目录,打开,会发现有“Internet信息服务”目录,(如果你安装了IIS的话)打开,会看到“默认web站点”目录,右击这个目录,点击“属性”,如下图所示:

把端口号改成8089,然后重新启动IIS服务器,在地址栏内输入:http://localhost:8089/,效果和原来输入http://localhost/一样,一切OK!使用不同的服务器调试程序就在地址栏内打入不同的链接,干脆加入收藏夹,用起来其实也很方便。

好,下面讲解如何安装IIS平台上的PHP,当然,下载PHP,解压缩到一个专门目录,再把php.ini-dist这个文件改名为php.ini,拷贝到winnt目录下,这个谁都会,我就不多说了。将安装目录下的php4ts.dll和php4isapi.dll两个文件拷贝到Windows 2000的系统目录中去,一般是/winnt/system32/,接下去用上面讲过的方法打开“默认web站点”属性,选择ISAPI筛选器,其实ISAPI的意思就是Internet Server Application Programming Interface,因特网服务应用程序接口,点击“添加”,如图所示,填入php,再填入d:/winnt/system32/php4isapi.dll,不同的Windows安装路径填入的内容会有所不同。然后“确定”。

再来到“主目录”标签页,如图所示,可以更改web文档存放路径,除此之外我们还需要做的事情是点击下面的“配置”按纽出现“应用程序配置”框,再点击“添加”,如图所示:

填入“D:/php4/php.exe %s %s”,(注意根据你的PHP安装路径填写)再在“扩展名”中填入“.php”,点击“确定”,一切OK!现在你的IIS已经支持PHP了,但,且慢,在我这里出现了这个问题,大家请看看:

经过研究,我发现需要修改php.ini文件里的一些内容才能工作正常,在php.ini中:
…………
; cgi.force_redirect is necessary to provide security running PHP as a CGI under
; most web servers.  Left undefined, PHP turns this on by default.  You can
; turn it off here AT YOUR OWN RISK
; **You CAN safely turn this off for IIS, in fact, you MUST.**
; cgi.force_redirect = 0

; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
; will look for to know it is OK to continue execution.  Setting this variable MAY
; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
;cgi.redirect_status_env = ;
…………
将“;cgi.force_redirect=0”这一行中前面的分号去掉就OK了,具体为什么我暂时也说不清,自己想去吧,总之呢,就到这里了,有问题再与我联系。
 

原创粉丝点击