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

    最近,有许多朋友问我在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文件,然后放到你的一个虚拟目录中去访问,看一下是否能出现正常的结果。
                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目录下。
  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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。