现 在LAMP(Linux、Apache、MySQL、PHP/Perl/Python的简称)已经很流行了。在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Windows)。这篇文章主要是介绍如何在Windows环境下完全手工配置Apache、MySQL和PHP,都是解压后直接修改配置文件的。当然也 可以下载执行安装文件的版本,一个个进行自动安装。甚至可以下载这些软件的集合版本(WampServer,XAMPP),一步到位的安装。这里进行的是 解压安装,看起来有些多此一举了,不过这样能了解这些软件安装的过程,有问题时能及时发现,某个软件升级更新时也能快速配置。
一. 软件下载
Apache HTTP Server 2.2.6(Windows版本)
MySQL mysql-noinstall-5.0.45-win32.zip
MySQLGUITools (MySQL Administrator, MySQL QueryBrowser and MySQL MigrationToolkit)
(主要是使用其中的MySQL Administrator来启动和关闭MySQL)
PHP php-5.2.5-Win32.zip
phpMyAdmin 2.11.2.2
二. 安装Apache HTTP Server
下载的文件是msi文件,直接双击即可进行界面安装,其中需要填写一些数据,即可完成安装。这里就不采用这种方法了,不过还是推荐这样安装的。下面就说一下另外一种方式安装,解压msi文件,修改配置文件。
1. 运行msiexec /a apache_2.2.6-win32-x86-no_ssl.msi ,然后选择"Install",最后"Finish" ,可以把安装文件解压出来。/a 表示网络安装可以指定解压路径,比如解压在F盘了,会生成 F:\program files\Apache Software Foundation\Apache2.2 这样的文件夹, 还有一个 F:\System32\Redist\MS\System\msvcrt.dll。
2. 把Apache2.2文件夹移动到合适的目录下,当然也可以不移动。这里,我把它放在 D:\Java 目录下,并重新命名为Apache文件夹。 至于那个msvcrt.dll文件好像在xp下不需要,我是没用到,删了。
3. 现在开始配置Apache了,将D:\Java\Apache目录下的conf\default中的文件全部移动到conf目录中。
4. 在Apache中建立logs文件夹。
5. 将conf目录中httpd-win.conf文件改名为httpd.conf,现在修改httpd.conf里的参数,如下:
第42行 ServerRoot "D:/Java/Apache" ,指定apache目录
第53行,Listen 80 ,httpd监听在哪个端口。
第133行,ServerAdmin ,联系站点的邮件地址。(可以不修改)
第142行,ServerName 127.0.0.1:80 ,主机名字,如果没有主机名,或者域名没有注册,就写成了127.0.0.1。
第149行,DocumentRoot "htdocs" ,指向"D:/Java/Apache/htdocs"目录,配置最关键的一行,它设置网页文件所在的位置,即网页的发布目录。
第177到205行,<Directory "htdocs"> ,全是上面配置的网站目录的权限设置。
第212行, DirectoryIndex index.html,,当打开一个网站目录时,默认的主页是什么(一般不修改)。
6. 将Apache添加为Windows服务
在命令提示符窗口中,切换到D:\Java\Apache\bin目录下,输入: httpd -k install,如果成功,能在管理工具->服务中看到Apache2.2服务,如果不想开机就运行,将其启动类型由自动改为手动。要移除 Apache服务:httpd -k uninstall
7. 启动和停止Apache Httpd
启动 httpd -k start, 停止 httpd -k stop 或 httpd -k shutdown ,重启 httpd -k restart 。
或启动 net start Apache2.2, 停止 net stop Apache2.2
最好是将 D:\Java\Apache\bin目录下的ApacheMonitor.exe在桌面上建立一个快捷方式,直接运行它,即可启动和停止Apache Httpd,方便。
8. 启动Apache,在浏览器中输入http://localhost/ 看到页面显示 It works! ,好了,成功了。注意:这里是默认监听80端口,如果有其它软件也在监听80端口,会冲突,可以参考步骤5修改默认的监听端口,如改为8080,则浏览器要输入:http://localhost:8080
三. 安装PHP5:
1. 将php-5.2.5-Win32.zip解压在D:\Java\php目录下,进入D:\Java\php目录,找到php.ini-dist文件,更名为php.ini,最好是复制一份再更名.
2. 编辑Apache的httpd.conf文件(在Apache的安装目录下的conf子目录中),在最后添加下面部分,保存。
# ***************** PHP 配置 *****************
# 加载 PHP 5 :
LoadModule php5_module "D:/Java/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
# 配置 php.ini 的路径
PHPIniDir "D:/Java/php"
3. 然后新建一个info.php文件,内容如下,将其放到Apache下的htdocs文件夹中。
<?php
phpinfo( );
?>
4. 启动Apache,在浏览器中输入 http://localhost/info.php ,如果能出现页面,就成功了。
注意:
php的安装目录最好不要用中间有空格的路径(例如:C:\Program Files\PHP 就不太好),如果这样做有些web服务器会崩溃。
httpd.conf 不能load php5apache2.dll ,要写成 php5apache2_2.dll
四. 安装 MySQL
1. 解压mysql5到D:\Java目录下,应该会有个mysql-5.0.45-win32文件夹,为了方便,我将这个文件夹重命名为mysql,在此目录下,新建一个my.ini文件。内容如下:
[WinMySQLAdmin]
Server=D:/Java/mysql/bin/mysqld-nt.exe
[mysqld]
basedir=D:/Java/mysql
datadir=D:/Java/mysql/data
上面“Server”指向MySQL的执行主程序,“basedir”指向MySQL的安装目录,“datadir”指向MySQL的数据存放目录,如果你的安装目录不是上面所指的,修改成自己的。
2. 安装MYSQL为系统服务
切换到mysql安装目录下的bin目录,输入如下命令:
d:\Java\mysql\bin\mysqld-nt --install mysql --defaults-file=D:\java\mysql\my.ini
mysql 是服务名称,就是安装成系统服务,如当安装成功 后,你在DOS下启动命令为 net start mysql,同理,当你改成mysqld-nt.exe -install mysql5,那你启动时命令就应该为 net start mysql5。另外,安装系统服务时还需要加载my.ini文件。
卸载服务 mysqld-nt --remove mysql
3. 启动MYSQL
命令为在dos提示符下,或者开始--运行
net start mysql
net stop mysql
还是使用MySQL GUI Tools 5.0目录下的MySQLSystemTrayMonitor.exe更方便些。
4. 修改root的初始密码
输入(将密码修改为javamxj): mysqladmin -u root -p password javamxj
出现提示: Enter password: ,因为root的初始密码为空,所以直接按回车键即可.
如果要修改的密码不为空,则需要在出现提示时 Enter password: 输入原先旧密码.
注意:这里javamxj是所设的新密码,你可以随便设置,不过要记住所设的密码。
5. 测试
确认已经启动MySQL,切换到mysql安装目录下的bin目录,输入如下命令:
d:\Java\mysql\bin\mysql -uroot -pjavamxj
上面root是用户名,javamxj是刚才修改的新密码。如果出现欢迎信息,OK。
五. 在php5中使用MySQL
1. 打开php.ini文件,在486行修改extension_dir为:
extension_dir = "D:/Java/php/ext"
在625,626行删除extension=php_mysql.dll和extension=php_mysqli.dll前的“;”,以加载php_mysql.dll和php_mysqli.dll
extension=php_mysql.dll
extension=php_mysqli.dll
2. 在PATH 环境变量中添加 D:\Java\php;以便能加载这个目录下的dll文件(有可能需要重启才能起作用),或者把这些文件复制到windows的system32的目录下。
如果没有问题,那么 http://localhost/info.php 应该能看到 mysqli和mysql 模块.
六. 编码
为了一劳永逸的解决乱码问题,建议各种编码都设为UTF-8。
1. 先修改my.ini文件,如下:
[WinMySQLAdmin]
Server=D:/Java/mysql/bin/mysqld-nt.exe
[mysqld]
basedir=D:/Java/mysql
datadir=D:/Java/mysql/data
default-character-set=utf8
character_set_server=utf8
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
2. 编写的php文件也采用UTF-8编码,另外在有关数据库操作的php文件头中,添加如下语句:
header("Content-type:text/html; charset=utf-8");
这样,中文字符应该都能正常显示了。
七. 安装phpMyAdmin
1. 在php环境下,使用phpMyAdmin来操作MySQL很方便。从上面的下载链接选择多语言的zip版本,首先,解压下载的phpMyAdmin文件 到一个phpMyAdmin的目录(你可以改名),然后把这个目录移动到Apache的一个虚拟目录中,如Apache\htdocs目录下。启动 Apache,浏览器中输入 http://localhost/phpMyAdmin/index.php 可以了。
2. 还需要修改一下配置文件,设置登陆方式。在phpMyAdmin目录中有一个文件“config.sample.inc.php”, 复制并重新命名为config.inc.php。需要修改的就是第29行:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
'auth_type'? 用于设置登陆方式,有3个选择,分别是http,cookie,config。http方式是在客户端访问时,弹出一个用户名密码的输入框进行认 证;cookie方式是通过页面访问要求输入用户名密码进行认证;config方式是直接从这个配置文件中获取用户名密码,然后连接数据库。
3. 如果使用http方式只需把上面的“cookie”替换为“http”即可。
4. 如果使用cookie方式还需要修改第17行 $cfg['blowfish_secret'] = '' ,在单引号中随便填入一个数据,用来进行加密存入到cookie中的用户名和密码。我使用IE浏览的时候会出现一个错误,如下,
在Language栏选择“中文 - Chinese simplified(utf-8)”,则正常显示。
使用FireFox浏览则没有这个问题。
5. 如果使用config方式需要修改第37、38行,去掉前面的“//”,并填上正确的用户名和密码,如下:
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'javamxj';
不过这种方式我没有成功过,提示数据库连接错误。
其中config方式的安全等级最低,cookie方式的等级最高,不过不能禁用了cookie,http方式在免费的主页空间上很常用。
小结
1. 修改参数时要和解压安装目录对应。
2. Apche、MySQL添加为系统服务后启动类型都是自动的,也就是开机启动。如果不想这样,可以都改为手动启动。
3. Apache的默认端口是80,如果安装有其它服务器,比如IIS,会有冲突,可以设置成其它端口,那么浏览页面时网址要加上端口。
4. 以上软件都是从官方网站下载的,如果速度比较慢,可以从官方网站选择别的镜像站点下载。