首页 > 网站 > Apache > 正文

Windows中安装Apache2和PHP4权威指南

2024-08-27 18:28:45
字体:
来源:转载
供稿:网友
apache 2和php是创建交互式网站的流行方案,而且成本很低。在windows中安装apache 2是一件轻而易举的事情,但要使php 4与apache 2配合无间地运行,就需要一定的技巧。

  在php 4.3手册的windows安装小节,没有解释如何让php与apache 2配合使用,而有关apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将php的dll替换成其他php版本的dll。ok,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。

  使用正确版本的windows

  首先要说一说兼容性:apache 2不能在windows 95上运行;在windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,php也不再支持windows 95。所以,你的windows操作系统必须是windows nt、2000或者xp。

  apache 2:源码还是二进制?

  如果你有visual c++ 5.0或更高的版本,或者安装了microsoft visual studio,那么虽然可以根据源码来生成apache,但请绝对不要这样做。在visual studio ide中,windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份windows installer二进制发行包,也就是一个.msi文件。等你对apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)apache。

  如果已经安装好并正在运行老版本的apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的apache 2不能共存。

  双击apache 2 .msi文件。同意许可协议后,正确设置network domain和server name(如果不打算将apache安装到远程计算机,那么设置localhost就可以了),在administrator’s email address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择typical安装,可以快速地获得一个能实际工作的服务器环境。

  安装提示

  建议将默认安装目录从c:/program files/apache group变成c:/apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入apache安装路径时,都不必为其添加引号。

  稍候片刻,安装向导会告诉你apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的apache 2主页。

  然后可以删除主web服务器目录中的所有示例文件,它们默认位于c:/installdirectory/apache/apache2/htdocs中。如果有一个现成的主页index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的html,以下代码就可以了:

<html>
<head>title=default server page</head>
<body>default server page</body>
</html>
  让apache 2为php做好准备

  从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍apache的正确加载。如果设置引发错误,那么错误可能被记录到apache 2错误日志中(默认为c:/installdir/apache2/logs/error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。

  令人遗憾的是,在你对安装设置进行调试时,windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到apache的binary目录(c:/installdir/apache2/bin),在那里启动apache。

  apache配置文件是c:/apache/apache2/conf/httpd.conf,可用任何文本编辑器来编辑。查找directoryindex,定位到下面这一行:

directoryindex index.html index.html.var # index.php
  为了允许apache处理php页,要删除注释字符(#),变成:

directoryindex index.html index.html.var index.php
  还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找allowoverride,把这个设置从none改成all。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装php时,要再次编辑这个文件。

  安装php

  虽然可以下载php的源码,但和apache 2一样,最好直接使用二进制发行包。apache 2可采取2种方式来运行php程序:通过一个cgi接口来运行(外部调用php.exe),或者使用php的dll文件在apache的内部运行。后一种方式的速度较快。所以,针对每个版本的php,都会提供2个windows二进制发行包。较小的是.msi包,它会安装cgi可执行程序php.exe,但其中拿掉了通过apache dll来运行php脚本所需的模块。较大的.zip包则包含了所有这些东西,你可以从snaps.php.net网站的win32区域下载它们。文件下载完毕后,把它解压到c:/php(保留文件夹名称)。除非你有绝对的把握,请同时下载php手册,它有多种语言的版本可供选择。

  配置apache 2来运行php4

  现在来到了最有趣的部分:将apache和php完美地配合起来。首先,请将c:/php/dlls目录中的所有dll文件拷贝到windows的system目录(%windir%/system)。接着,在apache的配置文件(httpd.conf)中查找包含了大量addtype命令那个小节,自己添加下面这一行:

addtype application/x-httpd-php .php
  将c:/php/php.ini-recommended拷贝到windows目录(%windir%),把它重命名为php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把installdir替换成你的apache 2的安装目录的名称。

doc_root = c:/apache/apache2/htdocs
extension_dir = c:/php/extensions
session.save_path = c:/temp
  在session.save_path中使用正斜杠和反斜杠都是允许的。php手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在php 4.3中不需要这样做。另外,如果c:/temp不存在,请自己创建它。

  下一步是允许apache将php程序作为模块来运行,这要求你采取2个步骤。首先,将c:/php/php4ts.dll拷贝到windows的系统文件夹(%windir%/system)。在httpd.conf中找到loadmodule小节,自己添加下面这一行:

loadmodule php4_module “c:/php/php4apache2.dll”
  如果你出于某种原因而需要在cgi模式中运行php程序(使用php.exe),请将上面这一行变成注释,并在httpd.conf中添加下面这些行:

scriptalias /php/ "c:/php/"
action application/x-httpd-php "/php/php.exe"
  一切都搞定了吗?

  保存所做的更改后,你需要亲自去证明两点,才能确保apache 2/php 4成为一对完美的搭档:apache能正常加载吗,它能正确处理php页吗?

  要知道apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:

apache –k start
  另外,如果apache正在运行,可用以下命令重新启动它:

apache –k restart
  从命令行启动apache的好处在于,如果出现一个错误,apache会立即报告它。你可能遇到的最常见的问题在于,apache可能由于某种原因而无法加载php4apache2.dll。如果apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。

  要知道apache是否能正确地处理php页,请用你的文本编辑器创建一个简单的php页,命名为phptest.php,其中只包含下面这一行:

<? phpinfo(); ?>
  将文件保存到主web服务器目录(c:/installdirectory/apache/apache2/htdocs),用浏览器访问http://localhost/phptest.php。如果一切正常,应该看到一个含有php徽标的网页,其中包含大量设置和其他信息。要知道php当前是通过cgi来运行,还是在apache内部运行,可以检查一下环境变量orig_script_name。如果php通过cgi来运行,这个变量的值就是/php/php.exe。如果apache将php脚本作为模块来运行,该变量的值应该是/phptest.php。

  虽然在windows上安装apache 2和php并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的环境。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表