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
文件。同意许可协议后,会出现如图
A
所示的对话框。
图
A
正确地设置
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
并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的
Web
开发环境。
|