Windows下 Apache 2 + php 5 + MySQL 5 安装指南

========================================
本文由moqi在广为流传的版本上经过自己的实践修正,供参考。
========================================
系统环境:Windows XP SP2

资料下载以及准备:

apache_2.0.54-win32-x86-no_ssl.msi
http://apache.mirror.phpchina.com/httpd/binaries/win32/

php-5.2.8-Win32.zip
http://www.php.net/downloads.php
 
mysql-noinstall-5.0.22-win32.zip
http://download.mysql.cn/src/2006/0710/5542.html
========================================
新建系统目录 D:\Server

注意:文件夹名称最好不要包含空格及其它非英文字符
========================================
安装 Apache

运行 apache_2.0.54-win32-x86-no_ssl.msi,一路 Next 下来。到选择安装方式的时候,选择"Custom"自定义方式。然后 Next 选择安装路径,定位到 D:\Server\Apache,之后一直 Next。弹出一个 CMD 窗口安装 Windows 服务后,安装就完成了。右下角将出现 Apache 粉红色的羽毛 Icon,不出意外图标上应显示绿灯,表示 HTTP 服务器已经正常启动。你可以访问 http://localhost 来试试,如果屏幕出现默认页面就表示安装成功。
========================================
Apache 2 启动错误的解决

现在启动 Apache 服务,测试一下环境是否正确,在浏览器中输入 http://127.0.0.1 或是 http://localhost 均半天不出页面,查看 Apache 状态为启动,估计 Apache 有问题,于是转到 Apache 安装目录的 logs 目录下,发现果然有一个 error.log ,打开看到里面的内容如下:

[Thu Nov 22 15:19:53 2007] [notice] Parent: Created child process 2816
[Thu Nov 22 15:19:53 2007] [notice] Child 2816: Child process is running
[Thu Nov 22 15:19:53 2007] [crit] (OS 10022)提供了一个无效的参数。Child 2816: setup_inherited_listeners(), WSASocket failed to open the inherited socket.

解决方案如下:

1.网上邻居->本地连接->属性->Internet协议(TCP/IP)->属性->高级->WINS标签->去掉启用LMhosts查询前的勾。
2.网上邻居->本地连接->属性->Internet协议(TCP/IP)->属性->高级->WINS标签->NetBOIS设置->禁用 TCP/IP 上的 NetBOIS。
3.控制面版->Windows防火墙->高级标签->本地连接设置->服务标签->勾选安全Web服务器(HTTPS)。

按照上面的步骤做完,问题解决。
=======================================
安装 PHP

解压 php-5.2.8-Win32.zip 并放置到 D:\Server\php 之下。
=======================================
配置 Apache

修改 Apache 配置文件: D:/Server/Apache/conf/httpd.conf
修改文档发布路径
搜索:
DocumentRoot "D:/Server/Apache/htdocs"
将值修改成你想要的发布路径,比如:
DocumentRoot "D:/Server/www"
然后还有一处也需要修改,否则将无权访问
搜索:
Directory "D:/Server/Apache/htdocs"
修改为:
Directory "X:/Server/www"
修改默认脚本:
搜索:
DirectoryIndex index.html
添加你想要的默认脚本名称,用空格分隔,注意前后有优先顺序,比如:
DirectoryIndex index.php index.html index.htm
针对 PHP 5 的配置:
在文档的最下方加入以下字符:
# 调用 PHP 5 模块
LoadModule php5_module "D:/Server/php/php5apache2.dll"
# 添加 Mime 类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# 添加默认字符集
AddDefaultCharset UTF8
# 设置 PHP.ini 目录
PHPIniDir "D:/Server/php"

至此,Apache 已经可以支持 PHP 了。
=======================================
安装 MySQL

解压 MySQL-noinstall-5.0.22-win32.zip ,并放置到 D:\Server\MySQL 之下。
开始->运行->cmd->回车。
然后进入 D:\Server\MySQL\bin 目录:
>cd /d X:\Server\MySQL\bin 回车
(如果你的文件夹带有空格,别忘了在路径外添加双引号)
然后运行 MySQL 服务安装脚本:
>mysqld-nt -install
显示 MySQL service installed successfully,表示安装成功。
=======================================
为php和MySQL配置环境变量

在"我的电脑"图标上点击鼠标右键->查看"属性"->"高级"选项卡->点击"环境变量"按钮(快捷键:Alt+N)->在弹出的"系统变量"域中找到"Path"变量->双击编辑并在变量值的最后添加";D:\Server\php;D:\Server\MySQL"(注意有个分号,用来分隔之前的值)。
重启电脑,让环境变量生效。
=======================================
配置 MySQL

进入 D:\Server\MySQL ,复制 my-small.ini 并重命名为 my.ini ,用文本编辑器打开。
搜索:
[mysqld]
在下方加入以下字符行:

# MySQL 安装目录
basedir = D:/Server/MySQL
# MySQL 默认数据目录
datadir = D:/Server/MySQL/data
# 默认字符集
default-character-set = utf8
# 默认储存引擎
default-storage-engine = MyISAM

再在文档最下方加入:
[WinMySQLAdmin]
Server = D:/Server/MySQL/bin/mysqld-nt.exe

MySQL 配置完成。

打开 cmd.exe…… 输入:
net start MySQL
显示"MySQL服务已经启动成功",则启动成功。

>cd /d X:\Server\MySQL\bin 回车
接着登陆
>MySQL -u root -p
由于 root 初始状态无密码,提示 Enter Password 时直接回车即可。
然后命令行进入 MySQL Shell 状态即表示"入侵"成功。
如果你不想别人也用空密码入侵你,最好给 root 设置一个密码。
MySQL>set password for ‘root’@’localhost’ = old_password(‘123456’);
(这是 MySQL 5 的新命令,之前的版本请将 old_password 改成 password)
将其中 123456 更换为你自己的密码吧,别太简单。
提示’Query Ok’表明修改成功。

至此,MySQL 的安装工作完毕。
=======================================
配置 php

进入 D:\Server\php ,将 php.ini-recommend 更名为 php.ini ,用文本编辑器打开。
修改错误报告级别
搜索:
error_reporting = E_ALL
修改为:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
由于是本地调试,我当然希望错误被输出供我调试
搜索:
display_errors = Off
修改为:
display_errors = On
对于本地开发者,记录错误似乎没有必要
搜索:
log_errors = On
修改为:
log_errors = Off
设置扩展库的路径
搜索:
extension_dir = "./"
修改为:
extension_dir = "D:\Server\php\ext"

启用对 MySQL及扩展库 的支持
搜索:
;extension=php_mysql.dll
;extension=php_mysqli.dll
去掉前面的分号:
extension=php_mysql.dll
extension=php_mysqli.dll

启用 GD2 库
搜索:
;extension=php_gd2.dll
去掉前面的分号:
extension=php_gd2.dll

如果希望对一些较常用的库进行调用,比如 php_mbstring.dll 、 php_curl.dll 、 php_sockets.dll 、 php_xmlrpc.dll 等,开启方法同上。
部分扩展需要相应的库函数支持,具体请参见这里:http://www.corephp.co.uk/archives/36-A-Guide-to-using-PHP-5-Extensions-on-Windows.html

配置 PHP 的 Session 机制,先建立这样一个目录 D:\session,然后
搜索:
;session.save_path = "/tmp"
修改为:
session.save_path = "D:\session"

最后,找到 D:\Server\MySQL\lib\opt\libmysql.dll 文件,并复制一份到C:\WINDOWS\System32。

到这里基本就设置完毕了,php 也能正常支持 MySQL 了。
=======================================
参考文献
http://hi.baidu.com/benaheng/blog/item/7fb92c2a63fa063b5243c1f7.html
http://blog.donews.com/chouchy/archive/2007/11/22/1230413.aspx
=======================================