PHP4在WinXP下IIS和Apache2服务器上的安装实例


Posted in PHP onOctober 09, 2006

    最近,有许多朋友问我在WindowsXp下PHP的安装过程,正好最近我在自己的机器上成功的以模块化的方式安装了PHP4.23。既然这么多朋友需要,我就以最常见的IIS和Apache服务器为例,把PHP在WindowsXP下的安装过程写出来吧,希望能对要安装PHP的朋友有点帮助。如果不加特殊说明,以下的介绍同时也适用于Win2000版本。
一、概述:
   在安装之间,你必须先弄懂PHP安装的两种不同模式,一种是Cgi模式(CGI executable),另一种是模块化安装方式。可以这样来区别:在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机;而在模块化中,PHP是与Web服务器一起启动并运行的,所以从某种角度上来说,以apache模块方式安装的PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。

二、软件准备:
   正所谓"工欲善其事 必先利其器",要想在你的机器上运行PHP得首先准备需要的软件。

   (一)WEB服务器

   首先你需要一要WEB服务器来支持PHP的运行,这里我们选择两种最常见的、也是用的最多的两种服务器来分别介绍。
   1.IIS(Internet Infomation Server)
       IIS想必大家都不陌生吧,在Window2000中,IIS默认是被安装的。你可以通过 “开始->设置->控制面板->管理工具->Internet 信息服务”来打开它。如果你没有安装,可以通过Windows的“添加删除组件”来安装它。关于IIS的安装网上的介绍有很多,这里就不再介绍了。

   2.Apache
       Apache同样是一个非常优秀的Web服务器程序,同时它也是笔者最喜欢的一款Web服务器。它不仅小巧、灵活,而且在使用过程中非常稳定,不会出现一些莫名其妙的错误(IIS相对来说就差多了),更重要的一点是,它还支持把PHP安装成它的一个模块。所以,笔者强烈推荐你用Apache来安装PHP。现在常用的Apache有两个版本,一个是1.36的版本,另一个是Apache2系列的版本,在这里推荐你使用Apache2版本,你可以在Apache的官方网站上下载到最新的版本。
       Apache官方网站:http://www.apache.org

   (二)PHP程序

   最新的PHP程序代码你可以在它的官方网站http://www.php.net/downloads.php下载到,注意要选择那种ZIP包的,不能选择自安装那种,在写本文时,PHP最新版本是4.23版,大小是5,417KB。当然你也可以在本站的下载栏目中下载到。

    好了。软件都准备好了,下面就开始我们的PHP安装之旅吧 :)
    注:以下的安装过程中是以PHP4.23版本、Apache2.040为准的。

三、IIS下的安装:

 1.把下载下来的PHP安装包解压到你的C盘根目录(这里选择C根目录盘是为了以后修改调试方便用,你也可以选择不同的目录),解压后应该能得到一个类似于"php-4.2.3-Win32"的目录,把目录名称改成"PHP"。
       2. 打开刚才解压的PHP目录,你会发现有一个叫做"php.ini-dist"的文件,这就是PHP的配置文件了,你需要把它改名成"php.ini",然后复制到系统目录中(如果你的系统装在C盘,XP下就是"C:\windows",Windows2000下是"C:\winnt")。
    以前有许多介绍PHP安装文件的文章都说要修改php.ini中"extension_dir"和"doc_root"这两项的值,可是笔者在安装PHP过程中都没有改过,也没有过任何错误,看来这两个参数不是必须的。当然如果你不放心也可以修改一下。把doc_root改成你的服务器的根目录,把extension_dir改成你的PHP安装文件夹中的extensions文件夹所在的绝对路径。
 3.打开你的IIS信息服务控制台,右击"默认网站"图标,选择属性,打开默认网站属性选择,然后再选择"主目录"选项卡

   点击"配置"按钮,你会看到又跳出一个选项卡,上面是已经定义的文档类型。点击"添加"按钮,在出来的对话框的可执行文件文本框中敲入你的php.exe所在的绝对路径加上"%s %s",在这里是"c:\php\php.exe %s %s",扩展名文本框中写上你要求php程序处理的后缀名,在这里我们写入".php",下面的选项按默认设置即可。

       4.好了。现在试着把下面的几段代码保存成后缀为php文件,然后放到你的一个虚拟目录中去访问,看一下是否能出现正常的结果。
        <?php
        phpinfo();
        ?>
也许你会碰到下面的输出结果:

Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.

For more information as to why this behaviour exists, see the manual page for CGI security.

For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.

不用怕,这是因为现在PHP在IIS中是以Cgi方式运行的,而你的php配置文件中这一项又没有打开。如果你看到上面的一段警告,你需要打开你的php.ini文件,然后查找"cgi.force_redirect = 1"这样一句,把这一句前面的分号去掉,然后把1改成0就OK了,现在再来刷新一下你刚才的页面,如果没有什么意外的话,你的屏幕上的结果应该和我下面的截屏差不多。到此,PHP在IIS上的安装过程已经完成了。

四、Apache下的安装:

  我们这次采用的是Apache的一个全新版本Apache2,以前在Apache下安装PHP记得还比较麻烦,现在在Apache2平台下,我们可以方便的以模块化的方式安装PHP,前提是PHP版本必须是4.0以上的。当然,现在还在用PHP3的已经很少了。所以这次我们只介绍如何以模块化的方式在Apache下安装PHP,如果你想了解在Apache下如何以Cgi的方式加载php,可以参考本站的另一篇文章"PHP+Apache在Win9x下的安装和配置"(http://www.hooday.com/?n=ReadArticle&a=34)。好了,闲话少说,让我们一起来领略模块化安装PHP的风采吧。

 1.运行你下载的Apache2安装文件,安装Apache,安装过程中会提示你输入主机名,管理员信箱等信箱,这些信息在你安装完以后是可以修改的,所以可以放心的输入。在选择安装路径时,笔者建议你把安装路径也选成C盘的根目录。在一步步的"Next"后,你会发现Apache很容易就安装好了。
        现在再看你的任务栏的右侧,应该有一个类似于这个小图标的图标,这就是Apache2的服务管理器,也是Apache1.X版本所没有的。注意这个图片的状态,如果有一个绿色的小三角,说明你的服务器已经安装成功,如果是红色的,则说明你的Apache没有安装成功,你需要进一步去找一下失败的根源。一般最常见的错误就是端口有冲突,Apache默认的端口是80,如果你的80端口被另一个程序(如IIS)占用了的话,就会出现无法启动的情况。出现这种情况,你可以按照下面的方法来修改:点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"会打开一个Apache的配置文件,你可以用文本编辑器来打开它。然后在这个文件的第120行左右,你会发现类似于"Listen 80"的字样。现在只要把这个80改成你想要的端口即可,当然在你用浏览器浏览的时候也不要忘了加上端口哦。
 到了这里,你的Apache应该已经亮起绿灯了吧,下面我们来测试一下它是否在工作。打开你的浏览器,在地址栏上输入"http://localhost/"(如果你的端口不是80,需要在后面加上":端口号"),不知道你是否看到了Apache的欢迎页,笔者在这一步并没有看到,不知道什么缘故,Apache2版本好像没有默认的引导页面。如果你也没有看到,可以试着在后面加上一个文件名"index.html.en",如果能出现下面类似的页面,则说明Apache已经工作正常了。

2.好了,Apache已经安装OK了,接下来就是看如何跟PHP结合起来了。
 最开始的两步和上边介绍的IIS步骤是相同的,也是解压后复制到C盘根目录,然后改名,再把PHP.ini复制到系统文件夹,如果有必要的话,修改一下"extension_dir"和"doc_root"这两项的值。上边已经说得很清楚,不再多说。
 接着便是最重要的一步了,也是模块化安装的核心步骤了,可要看仔细了。
 打开Apache2的配置文件(http.conf),可以通过点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"打开.

或者打开你的Apache安装目录下的Conf目录,你会发现一个名为http.conf的文件,就是它了,你可以用任一个文本编辑器来打开它。在这个文件的第121行左右,你应该能找到"LoadModule"字样,然后后面是一串路径,这就是Apache默认要加载的模块了,同样,咱们也可以在其后加上一句,让他来加载PHP模块。
 其实,就是这么简单,你只要加上这么一句"LoadModule php4_module C:/php/sapi/php4apache2.dll",这里要解释一下"php4_module"是模块的名称,后面跟的路径则随你的PHP安装目录而变,这三个字串之间是用空格符分隔的。

接下来,还有一步工作,也是很多安装失败的朋友所忽略的,刚开始笔者也是无论如何加入上边的那一句后Apache就启动不起来了。后来经过几次试验,才发现,你的PHP安装目录下的"php4ts.dll"必须要复制到windows系统的system32目录下,否则,就不可能启动起来。
 现在再试一下,是不是一切都正常了。好了,再来回顾一下我们在Apache下安装的过程。

 (1)添加"LoadModule php4_module C:/php/sapi/php4apache2.dll".
 (2)复制"php4ts.dll"到system32目录.

 是的,就是这么简单,PHP已经运行在你的机器上了。你可以通过双击任务栏的Apache服务器图标来看到这一点。

3.再来测试一下吧。
 把下面的代码保存成info.php文件放在你的Apache安装目录下的htdocs目录下。
 <?php
 phpinfo();
 ?>
 然后在浏览器中敲入http://localhost/info.php(如果你的端口不是80,请在localhost/后加上":端口号"),是不是看到了类似下面的屏幕所显示的。如果是,恭喜,你已经成功的以模块化方式安装了PHP

      以上在Apache部分所讲述的东西对不太熟悉Apache配置的朋友可能有一点不太明白,不过只要你按我上面所说的一步步的来,应该都不会出现什么大的毛病。如果万一不知道自己改的哪一个部分使Apache启动不起来了,你可以切换到Apache安装目录下的Conf文件夹,将http.conf文件删除掉,再将Apache的默认配置文件httpd.default.conf改名成http.conf即可。如果你想进一步的了解Apache的配置。

四、后记
 PHP的安装本来就是一件很简单的事情,特别是后来所讲的以模块化安装PHP的过程。大家有时间都不妨自己试一下,这样你才能体验到成功的喜悦。
 最后祝大家都能顺利的安装PHP。:P

 

PHP 相关文章推荐
php与paypal整合方法
Nov 28 PHP
php GeoIP的使用教程
Mar 09 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
php实现解析xml并生成sql语句的方法
Feb 03 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
PHP 和 MySQL 开发的 8 个技巧
Oct 09 #PHP
用PHP连接Oracle数据库
Oct 09 #PHP
PHP面向对象编程快速入门
Oct 09 #PHP
PHP模拟SQL Server的两个日期处理函数
Oct 09 #PHP
PHP实现的功能是显示8条基色色带
Oct 09 #PHP
提升PHP执行速度全攻略(上)
Oct 09 #PHP
提升PHP执行速度全攻略(下)
Oct 09 #PHP
You might like
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php批量删除操作代码分享
2017/02/26 PHP
js对象的比较
2011/02/26 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Vue自定义指令使用方法详解
2017/08/21 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
Python闭包的两个注意事项(推荐)
2017/03/20 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python猴子补丁知识点总结
2020/01/05 Python
简单了解django文件下载方式
2020/02/10 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
Django实现简单的分页功能
2021/02/22 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
电大自我鉴定
2013/10/27 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
大学班级计划书
2014/04/29 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
2019银行竞聘书
2019/06/21 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis