Apache 下载地址 http://httpd.apache.org/
我下载的是 Apache HTTP Server (httpd) 2.2.17 点击 download ,选择
httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
当然,你也可以下载源代码 httpd-2.2.17-win32-src.zip ,不过需要自己编译。
(我们第一次选择安装版,然后配置好,以后就可以在任何地方使用了)
PHP 下载地址 http://windows.php.net/download/
下载的时候有几个不同版本选择:
VC9 x86 Non Thread Safe
VC9 x86 Thread Safe
VC6 x86 Non Thread Safe
VC6 x86 Thread Safe
关于 VC9 和 VC6 的区别:
VC6 就是 legacy Visual Studio 6 compiler ,就是使用这个编译器编译的
VC9 就是 the Visual Studio 2008 compiler ,就是用微软的 VS 编辑器编译的
如果你是在 windows 下使用 Apache+PHP 的,请选择 VC6 版本;
如果你是在 windows 下使用 IIS+PHP 的,请选择 VC9 版本;
而 Non Thread Safe 就是非线程安全; Thread Safe 是线程安全的意思
官方并不建议将 Non Thread Safe 应用于生产环境,所以这里我下载的是:
VC6 x86 Thread Safe
MySQL 下载地址 http://dev.mysql.com/downloads/mysql/
上面有各种不同版本 ,我们 主要是这两个:
上面那个表示需要安装,在安装过程中自己配置。
下面这个比较大,但是免安装的,但需要手动启动。
为了打造完全绿色的,这里我下载 noinstall 的。
下面开始配置服务器:
服务器 Apache+MySQL+PHP 其实先配置那个都可以,不过为了省多次修改的麻烦,我们安装 PHP->MySQL->Apache 的顺序来进行。
配置 PHP :
把下载下来的 php-5.3.3-Win32-VC6-x86.zip 解压到 D:\Web\ 下,文件夹改名为 php ,然后把里面的“ php.ini-development ”文件(此处不同版本可能有所不同,可安装情况进行),将其重命名为“ php.ini ”,打开编辑,找到“ register_globals = Off ”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“ Off ”,就只能用“ $_POST[' 变量名 '] 、 $_GET[' 变量名 '] ”等来取得送过来的值,如果设为“ On ”,就可以直接使用“ $ 变量名”来获取送过来的值,当然,设为“ Off ”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“ On ”就看自己感觉了,是安全重要还是方便重要。
这里还有一个地方要编辑,功能就是使php 能够直接调用其它模块,比如访问mysql ,如下图所示,选择要加载的模块,去掉前面的 “; ”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql ,就要把“;extension= php_mysql .dll ”前的“; ”去掉。所有的模块文件都放在php 解压缩目录的“ext ”之下。下图只是参考,编辑好后保存,关闭。
如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache 的时候会提示“找不到指定模块”的错误。有两种方式可以解决这个问题,一种是把D:\Web\php\ext, 和D:\Web\php 加入到系统的环境变量Path 中去;还有一种方法是在php.ini 中到“extension_dir ”把其改为模块路径, 如图:
还有一个地方需要注意一下,搜索[Date] 标签下,增加一句 date.timezone = Asia/Shanghai ,这主要是为了设置系统时区。
于是乎,PHP 配置完成。
配置MySQL :
将下载的mysql-noinstall-5.1.51-win32.zip 解压到D:\Web\ 下面,改名为mysql, 然后拷贝两个脚本StartMySQL.bat (安装和启动服务)和StopMySQL.bat (关闭和卸载服务)进去, 以后需要的时候只要点击StartMySQL.bat ,不需要的时候点击StopMySQL.bat ,关于脚本的内容,查看 http://blog.csdn.net/blpluto/archive/2010/06/18/5677457.aspx 或是 点击这里 下载我已经做好的脚本。
这里可能会出现比较常见的错误,就是不能“Start service ”,一般出现在以前有安装mysql 的服务器上,解决的办法,先保证以前安装的mysql 服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql 安装目录下的data 文件夹备份,然后删除,在安装完成后,将安装生成的 data 文件夹删除,备份的data 文件夹移回来,再重启mysql 服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。
此处要注意,如果需要MySQL与Apache 及php 相结合,一定要把前面所说的 PHP.ini “;extension=php_mysql.dll ”前的“; ”去掉,加载mysql 模块。
配置Apache :
点击下载完成的 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi , 一路next ,下图的参数可以随便填写,也可以再httpd.conf 中以后设置。
然后安装路径选择D:\Web\Apache
之后的一路next ,中间会出现安装的控制台闪过。
现在开始先将 php 以 module 方式与 Apache 相结合,使 php 融入 Apache 。如图所示,“开始”、“所有程序”、“ Apache HTTP Server 2.2 ”、“ Configure Apache Server ”、“ Edit the Apache httpd conf Configuration file ”,点击打开。
或者在安装好的Apache 文件夹下打开文件D:\Web\Apache\conf\httpd.conf 。 查找关键字“DocumentRoot ”(也就是网站根目录),找到如下图所示地方,然后将"" 内的地址改成你的网站根目录,地址格式如图,主要是一般文件地址的“\ ”在Apache 里要改成“/ ”(现在的新版本貌似不需要改了,不过还是检查一下为好)。
然后再查找“Directory ”,将它的值成跟DocumentRoot 的一样。如图:
这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输出文件的语言编码,html 文件里有语言标记(这个就是设定文档语言为gb2312 )的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html 语言标记,如果没有,添加上去就能正常显示了。在“D:\Web\Apache\conf\extra “下有一个文件叫httpd-languages.conf (可能有的版本不一样,有的版本就在httpd.conf 中),打开编辑,然后找到“# DefaultLanguage nl ”,把前面的注释“# ”去掉,把“nl ”改成你要强制输出的语言,中文是“zh-cn ”,保存,关闭。
下面整合Apache 和PHP ,我们module 方式加载php 。在httpd.conf 中搜索“LoadModule ”,在最下面添加两行PHP 信息:
LoadModule php5_module "D:/Web/php/php5apache2_2.dll"
PHPIniDir "D:/Web/php"
第一行应该注意, 很多地方是调用 php5apache2.dll ,这样在运行 PHP 代码时会提示 httpd.exe 应用程序错误; 第二行“PHPIniDir "D:/Web/php" ”是指明php 的配置文件php.ini 的位置。
然后搜索“AddType application ”,加入“ AddType application /x-httpd-php .php ”、“AddType application/x-httpd-php .html ”两行,你也可以加入更多,实质就是添加可以执行php 的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm ”,则.htm 文件也可以执行php 程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt ”,让普通的文本 文件格式 也能运行php 程序。
然后更改目录默认索引文件,因为现在加了php ,有些文件就直接存为.php 了,我们也可以把“index.php ”设为默认索引文件,优先顺序就自己排了,为了先让他运行,我把index.php 设为第一位。编辑完成,保存,关闭。
至此,php 的安装,与Apache 的结合已经全部完成,由于他们于MySQL 的支持在前面配置PHP 的时候已经处理,所以,如果以上操作没有问题的话,我们的服务器已经可以正常运行了。点击桌面右下角的小图标重启服务器,所有的配置就生效了。以后,你可以把你写好的网页放入“D:\Web\Apache\htdocs “中,就可以直接访问量。如图:
(右键点击打开面板)
(左键快捷操作)
现在测试一下:在浏览器中输入 http://127.0.0.1 ,如果可以看到如下页面(有的版本可能不一样),说明你的 Apache 已经配置正确:
然后写一小段代码:
<?php
date_default_timezone_set("PRC");
echo date("Y-m-d JS F");
echo '</p>';
echo date('H:i:s');
echo '</p>';
?>
另存为 index.php, 放入“ D:\Web\Apache\htdocs “中,再在浏览器中敲入 http://127.0.0.1 或者是 http://127.0.0.1/index.php ,之后,如果显示页面如下:说明你的 PHP 和 Apache 运行正常了:
要注意的是,如果你加载了防火墙,请打开80 或8080 端口,或者允许Apache 程序访问网络,否则别人不能访问。 如果你有公网 IP (一般 ADSL 或电话拨号上网的都是),就可以邀请所有能上网的朋友访问使用 http:// 你的 IP 地址( IP 地址查询可访问 http://www.goodwaiter.com ,查询内容内即是)你的网站了;如果你没有公网 IP ,也可以把内网 IP 地址告诉局域网内的其它用户,让他们通过 http:// 你的内网 IP 地址,访问你的网站。
下面来制作它们的启动和停止脚本。
MySQL 的脚本在前面配置的时候已经说明,此处不再细说。主要说 Apache 的脚本。
在 Apache 目录下新建一文本文件,在里面输入如下内容:
@ECHO off
"%cd%\bin\httpd.exe" -k install -n apache2.2
net start apache2.2
pause
@ECHO on
然后保存为 StartApache.bat 。 然后再新建一文件,输入如下内容:
@ECHO off
net stop apache2.2
"%cd%\bin\httpd.exe" -k uninstall
pause
@ECHO on
然后保存为 StopApache.bat 。
以后,只要在需要运行的时候,点击 StartApache.bat ,就可以开启 Apache 服务,在不需要的时候,点击 StopApache.bat 就可以卸载服务,即使重装系统,也不会受到影响。
当然,你还可以把这两个脚本写在一个脚本文件中,比较简单,此处不在细说。
至此,移动版服务器创建完成。如果需要一个完整的包括 Apache+MySQL+PHP 的,只要拷贝如上做好的 Web 文件夹,然后放在 D 盘根目录下(这个盘也可以变动,只需要修改 httpd.conf 中的所以涉及到路径的地方就可以了,可通过查找替换完成),然后分别点击 MySQL 的开始脚本, Apache 中的开始脚本,服务器就正常运行了。