在PHP邮件列表中问得最多的问题可能就是:"如何在我的Windows机器上安装PHP?",那么也许我可以帮助回答这个问题。当你正确安装完成后,你会发现在Windows下开发PHP程序还是不错的。
本教程的目的是向你展示如何用"Apache和Windows"的组合来开发PHP程序。
教程中如未指明具体版本,则PHP为PHP3或PHP4 Beta 2或3,Apache为 1.3.x。
一、安装Apache
首先,你须要一个WEB服务器,我推荐Apache。先到htp://www.apache.org/dist看看。在这页上有世界范围的Apache镜像站点列表,找到离你最近的那个。Apache软件一般叫作apache_1_3_x.win32.exe。把它当到你机器里,运行它。它会问你将Apache安装到什么地方,你可以设为c:\Apache,因为马上你就要修改它的配置文件。如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
二、安装PHP
这个问题在PHP邮件列表中出现的次数太多了。你需要安装最新的Windows版的PHP。你也许会想到你自己去编译PHP3,但我认为对于一般的开发目的,这不需要。PHP也有遍布全世界的镜像站点(中国似乎没有)。选择一个镜像,找到下载区域,选择"Source code and Windows distribution",下载"Windows Binary"。你只须要将当下来的文件Unzip(WinZip就挺好的)到你喜欢的目录中,如C:\PHP4B3.我推荐用版本号作为目录名,这样将来你试用更新版本时,无须删掉老的版本。
在Windows 95/97下安装PHP4 Beta,需要有DCOM的支持。如果你的机器上未装, 到这里去下载一份。
三、配置PHP
与PHP一起分发的文件包里有一个Readme文件,里面讲述了如何配置。有一个文件名为PHP.INI-dist,它是PHP的主要配置文件。将它拷贝到你的Windows系统目录(Windows 9x的\Windows或Windows NT的\WinNT目录),并且改名为PHP.INI。需要对此文件作适当的修改,最主要的事情是加入一些可能要用到的模块,象MySQL等。在PHP.INI文件中找到象下面的这一节内容:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax: extension=modulename.extension
; for example, on windows,
; extension=msql.dll ; or under UNIX,
; extension=msql.so
; Note that it should be the name of the module only,
; no directory information needs to go here.
; Specify the location of the extension with the
; extension_dir directive above.
接下来几行被注释的,如
;Windows Extensions
;extension=php_mysql.dll
;extension=php_nsmail.dll
;extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
...
你要做的就是将文件的一些行的注释去掉,即删除打头的分号。我自己需要MySQL的支持,就从"extension=php3_mysql.dll"一行中去掉了分号";",在特定情况下,你要用的DLL文件不在这个列表中,只需要简单地加上一行,如: "extension=mydll.dll"。这样,PHP就配置好了。
四、让Apache与PHP一起工作
找到第一节里你安装Apache的目录,用你喜欢的文件编辑器(最好是支持Win32长文件名格式的,如Edit, Ultraedit等)打开.\conf\httpd.conf文件,在本例中是c:\Apache\conf\httpd.conf(这个是APACHE的最主要的配置文件,不要轻易修改,除非有特定把握)。如看不懂里面的内容,可去参加一下Apache文档。 要让Apache与PHP一起工作,你只要加入几行即可,如下:
ScriptAlias /php4b3/ "C:/PHP4B3/"
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3 .php
AddType application/x-httpd-php3 .phtml
Action application/x-httpd-php3 "/php4b3/php.exe"
需要注意的是上面的这三行不能写错。其中第一行的最后一部分是你安装的PHP的目录;后面的两行,你可以直接从这里拷贝并粘帖。这行配置命令都区分大小写。
五、在Windows NT下运行Apache
如果你运行的Windows NT系统,你可能要将Apache作为系统的服务进程来运行。点击"开始"按钮,选择"程序","Apache Web Server","Insfall Apache as Service"。这样,你可以通过NT的控制面版中的"服务"程序来管理Apache的启动和终止。除非有特殊的理由,我建议你将"Apache Service"的运行方式改为"手动":打开控制面版,选择"服务"图标,找到"Apache Service",再点击"运行",将运行方式设为"手动"。不过这样,当你要运行Apache时,必须亲自去启动它,虽然如此,在NT关闭时,Apache也会自动关闭,你不会看到任何Apache的窗口。
六、在Windows 9x中运行
如果你用的是Windows 9x,那么我建议你从作者的网站下载一份"Apache Manager for Windows"。它运行时停留在而右下方小图标栏中,并且会隐藏Apache创建的控制台窗口。这个程序让你避开讨厌的命令行直接启动、停止、重新启动Apache。如果你不用"Apache Manager",你应通过选择"开始","程序","Apache webserver"及"Apache Server"来启动Apache,这样会创建一个控制台窗口。千万别关闭这个窗口,如果关掉,Apache就停止了。要停止Apache的运行,你要打开一个MS-Dos窗口,换到你的安装Apache的目录中,执行如下命令: apache -k shutdown Apache要花一点时间来关闭它的控制台窗口。这主要是为了确保卸载所有的进程,关闭所有的.conf和.log文件。这也正是作者编写Apache Manager的原因。
七、测试你的系统
我强烈建议你至少通过控制台窗口运行Apache一次。要想得到Apache的运行时显示信息的办法是通过控制窗口或error.log文件。error.log文件存放在Apache安装目录的log子目录内。如 c:\Apache\log\error.log。 好,从"开始","程序","Apache Webserver"中选择"Apache server"运行Apache,如果一切都ok的话,你应该能看到像下面的信息:
Apache/1.3.9(Win32) running...
如果你未能看到这条消息或Apache窗口稍纵即逝,你就必须从Dos窗口以命令行的方式启动Apache。换到你安装Apache的目录,键入"Apache",看看显示了什么消息。如果是"parse error in the conf file",问题可能出在你的httpd.conf上。检查一下,并修正错误。
所有的都开始正常工作了。要测试你的系统,找开浏览器,输入如下地址:http://localhost/,你会看到一个由Apache显示给你的页面,上面写着"It works"之类的话。如果未出现这一页,可能你的TCP/IP配置有问题,将你的Windows目录里的hosts.sam文件复制为hosts文件,并检查是否有"127.0.0.1 localhost"一行,并且没有被注释掉。
接下来,试试PHP文件。用你喜爱的编输器,在APache安装目录下的htdocs子目录中创建一个名为info.php3的文件,内容如下:
<?phpinfo();?>
再打开你的浏览器,输入如下地址:http://localhost/info.php3。如果没有问题的话,你会看到一张很长的表格,里面有PHP的各种配置信息及相关的环境变量,包括Apache的。如果它未工作,请检查你的httpd.conf的设置是否正确,这很重要。如果未设置好,Apache将不知道如何去处理.php3的文件。
八、使用目录别名(Directory Aliases)
你大可不必将所有的东西放到htdocs 目录中。为了能让Apache正确指到你想要的目录,你必须编辑httpd.conf文件,增加"Alias"指令。很简单,就像下面这样:
Alias /yoursite/ "c:path/to/your/web/site/"
重新启动Apache,你新建的目录就开始工作了。用你的浏览器打开http://localhost/yoursite/。当然,你完全可以用你喜欢的名字代替"yoursite",然后在"c:\path\to\your\website"下面