Apache+PHP+MySQL+phpMyAdmin超详细配置教程 【转】

2010-05-04  韩亮亮 

 

 Apache+PHP+MySQL+phpMyAdmin超详细配置教程

(附为什么不用IIS[]

==========================================================

需要的软件(附官方下载地址):

Apache 2.0.59

http://apache.justdn.org/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi

PHP 4.4.4 Win32

http://cn2.php.net/get/php-4.4.4-Win32.zip/from/this/mirror

MySQL 4.12

http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.21-win32.zip/from/http://mirror.mysql-partners-jp.biz/

phpMyAdmin 2.9.1.1 rc1

http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.9.1.1-all-languages.zip

首先解决大家的几个疑问

问题1:为什么要用Apache而不是IIS

回答1由于我们是为了运行PHP而不是ASP,所以Apache是当之不愧的首选。再者,Win32环境配置Apache方法跟Linux下类似,学习了这个,以后只要会Linux基本操作,自然就会了LinuxApache配置。

其次,对于经常重新安装系统的人,每次重新配置IIS非常麻烦,还有一点就是IIS开机就启动,不适合开发人员。而Apache则将所有的设置保存在一个配置文件中,不会涉及到注册表,所以重装系统之后不用任何设置就可以使用。堪称绿色。

问题2:为什么要用Apache 2.0.59,而不是最新版本2.2.3

回答2因为我们用的是PHP 4系列,所以只能用Apache 2.0.x,而不能用2.2.x。这也就是很多初学者总是配置失败的原因。(我也被这个问题缠绕了n久,最终在一个国外的论坛得以解决)这就引出了下一个问题。

问题3:为什么要用PHP 4.4.4,而不是最新版本5.2

回答3因为我们架设好了PHP服务器,必然会用到一些PHP论坛等程序。以后难免会租用虚拟主机从而发布自己的PHP程序。可是目前国内包括国外的PHP虚拟主机还是以PHP 4.x居多,而PHP本身向下兼容性不强,我曾经就是用PHP 5.x做的网站程序,到了客户(乐凯胶片集团)那里是PHP 4.x,几乎完全无法运行。后来我从网上查资料,原来PHP 5.x有很多系统函数和PHP4.x不同。所以为了方便起见,我们用PHP 4.x的最新版本,也就是PHP 4.4.4(好不吉利)。

问题4:为什么要用MySQL 4.12,而不是最新版本5.x

回答4首先说为什么不用5.x。因为我已开始也用5.x,发现他的改变太大了。很难让当前的程序(例如Discuz!)兼容。例如,在MySQL 5.x中,一个表的索引ID为自动编号,那么我们在这个表插入数据的时候必须insert into Table1 (ID,Name) values (NULL, 'name1');。也就是说必须显式的给自动编号字段赋NULL值,否则SQL语句出错。而MySQL 4.x以及更早期的版本不用,直接insert into Table (Name) values ('name1');就可以了。这就是为什么MySQL 5.x不兼容很多程序的原因。

问题5:为什么要用MySQL 4.12,而不是4.0.x

回答5原因很简单,MySQL 4.12MySQL 4.x的最新版本。而MySQL 4.0.x竟然连复合式SQL语句都不支持。例如select (select aid from Table1) from Table 2;这让我们的开发很不便。至于文字编码问题,下文中将看到。

问题6:如果不用PHP 5.xMySQL 5.x,那么他们有什么用?

回答6太有用了。PHP 5.x对面向对象编程(OOP)提供了很好的支持,而PHP 4.x竟然没有析构函数,而且在类的继承重载上存在一定的Bug,最重要的是,PHP 4.x无法定义私有变量,也就无法实现封装。所以说PHP 4.x不是面向对象编程。而MySQL 5.x增加的功能就更多了,我对这个了解很少,我知道的就是支持了存储过程和触发器。要知道在做大规模项目的时候这两个机制是非常有用的。综上所述,PHP 5.xMySQL 5.x不适合我们初学,适合那些开发新的、庞大的、不涉及到向下兼容的项目。==========================================================

Apache+PHP+MySQL+phpMyAdmin超详细配置教程(2

1、安装之前的准备

为了以后重装系统之后不用重新设置,我们不把这些软件装在C盘,而是装在非系统盘。例如D:\Inetpub\,所以我们要建立如下目录:

D:\Inetpub\PHP4\                           [用来安装PHP4]

D:\Inetpub\Apache2\                      [用来安装Apache]

D:\Inetpub\MySQL\                         [用来安装MySQL]

D:\Inetpub\phpMyAdmin\                 [用来释放phpMyAdmin]

D:\Inetpub\wwwroot\                     [我们做的网站保存在这里]

2、安装MySQL 4.12(完全安装,重新安装系统以后如何快速恢复)

1,解压缩我们下载的MySQL,得到SETUP.exe,为了区分,我们即将其重名名为MySQL412.exe,之后双击运行

2,欢迎来到MySQL Server 4.1安装向导

3,选择安装模式,我们选择[Custom]也就是自定义安装

4,需要安装的功能默认,路经选择刚才建立的D:\Inetpub\MySQL\,(我是F,呵呵,无所谓)

5,最后确认一下,开始安装

6,安装过程

7,注册到MySQL.com,这里我们就不注册了,选择Skip Sign-up

8,现在就配置MySQL

9,欢迎来到MySQL Server 实例配置向导 1.0.8

10,选择[Detailed Configration],就是详细配置

11,选择[Developer Machine],也就是开发模式,这个模式占用内存少。而如果你真正要做服务器,需要选择[Server Machine]

12,选择[Multifunctional Databases],具体原因还请高手指教。我认为这项是为了查询进行优化,而下面的选项是为了存储进行优化。

13,选择数据库存储路径,默认即可

14,设置最大连接数,由于我们是本机测试,选择第一项(20用户)即可。如果是服务器,选择第二项(高于500

15,默认设置,不要修改。否则其他程序(Apache)将无法连接数据库。

16,重要设置:设置默认字符集,一定要选择第三项,然后再下拉菜单中选择gbk,切记!!!

 17,选择[Install As Windows Service]安装成Windows服务,这样方便我们启动。不选[Launch the MySQL Server automatically]也就是说不让他自动启动。最下面那个选项无所谓,推荐选上,这样就可以在任意位置输入mysql进入控制台。

18,重要设置:这里有一个分支,如果你是初次安装,请看本步。如果你是重新安装系统之后的快速恢复,请看19第步。这里是输入两遍root用户的密码,下面的两个选项为了安全,不要选择。再次提醒,如果你的电脑已经安装了MySQL,也就是说你是刚刚重装了系统,快速恢复MySQL,一定不要选择这项,请看第19步。切记!!!

 19,重要设置:这一步是为了充装系统后的快速恢复,如果你是全新安装MySQL,即你的电脑中重来没有安装MySQL,请不要按照本步操作,请看第18步。切记!!!因为你是快速恢复,所以这里什么都不选,否则会导致配置失败

20,准备执行,全新安装的话,最后一项是亮起的,由于我是快速恢复,最后一项是灰的。21,执行成功。初次安装4个对钩,快速恢复3个对钩。如果有一个叉子,请你仔细看1819步。这个是问题最多的地方。如果还没办法解决,请跟我联系。

22[开始]-[程序]-[MySQL]-[MySQL Server 4.1]-[MySQL Command Line Client],打开MySQL控制台。

23,输入刚才(18步)设置好的密码,回车。

24,登录成功。

25,输入 show databases; (不要漏掉空格和分号)看一下我们现有的数据库。正常应该有两个,mysqltest

至此,MySQL 4.12安装成功。下面我做一下总结。

总的来说,MySQL安装很简单。其中只有两个注意事项,一个是字符集选择,也就是第16部。很多乱码问题就是这里设置错误造成的。另外一个是全新安装与快速恢复。快速恢复的时候不能重新修改密码。为什么呢?我想有必要说一下原理。因为MySQL里面修改root用户密码必须要知道原始密码才可以修改。如果你是快速恢复,那么电脑中已经安装了MySQL,那么肯定以前你也设置过密码。但是安装程序不知道,认为是空。这是你输入了新的密码,安装程序会认为你要将空密码修改为你输入的密码。可是数据库中现在的root密码不是空,这就造成了修改失败。可是MySQL服务管理储存了你的新密码,可是用这个密码无法启动MySQL,这也就造成了MySQL无法启动,安装失败。

另外需要注意的一点就是Vista RC1以前的测试版本无法成功安装。因为服务注册机制不同。以上安装方法适用于:Windows XP, Windows 2003, Windows 2000, Vista RC1, RC2, RTM

MySQL安装好了,下一步我们安装Apache 2.0.59。请看下一步。

附:

1 如何快速启动和停止MySQL

2  [开始]-[运行]-输入[net start mysql]可以启动,输入[net stop mysql]可以停止。

安装注意:

Apache 2.0.59(以下简称Apache)必须在Windows XP或者2003下安装。Vista下无法成功安装

若要在Vista下使用Apache,请现在XP2003下安装好,然后再Vista下直接运行即可。具体方法我将详细说明。

1 安装Apache 2.0.59

1 运行我们下载的apache_2.0.59-win32-x86-no_ssl.msi

2 欢迎来到Apache HTTP Server 2.0.59 安装向导

3 用户协议,当然选择我同意[I accept the terms in license agreement][

4 Apache的简介,直接Next

5 前两个文本框均输入localhost,第三个输入你的E-mail。下面的单选框选择第一项。

6 选择Custom,自定义安装

7 需要安装的功能默认,安装目录选择我们之前建立的D:\Inetpub\

这里需要注意,为什么不选择D:\Inetpub\Apache2呢?因为Apache安装程序会自动建立Apache2目录。假如我们选择了D:\Inetpub\Apache2,那么安装好了之后就成了D:\Inetpub\Apache2\Apache2了。这个切记!!

 8,准备安装[attach]1511542[/attach]

8 安装过程[attach]1511543[/attach]

 10,安装完成

11,打开浏览器,输入http://localhost/如果出现以下画面说明安装成功。

总结:安装Apache也比较简单,唯独要注意的是安装目录,由于2.0.59版本的Apache自己会建立Apache2目录,所以我们安装的时候只需选择D:\Inetpub\即可

附:

前面我说了Vista下无法成功安装Apache 2.0.59,那么在XP\2003下安装好的ApacheVista下怎么运行呢?

很简单,直接运行D:\Inetpub\Apache2\bin\apache.exe即可,不用的时候直接关闭就行了。4、配置PHP,让Apache支持PHP

1,解压缩我们下载的php-4.4.4-win32.zipD:\Inetpub\PHP4\

2,将PHP4目录内php.ini-dist重名名为php.ini,为了安全起见,我保留了一个副本。

3,打开php.ini,修改几个地方。
  
修改1:将 extension_dir = "./" 修改为 extension_dir = "D:/Inetpub/PHP4/extensions"
    注意:要用/斜杠,而不是\斜杠。

  修改2:去掉php_mbstring.dllphp_gd2.dll前面的分号[;],如图所示。保存退出即可。4,将PHP4目录内的php.iniphp.exephp4ts.dll三个文件复制到C:\Windows\目录(Win2000C:\Winnt\

5,用记事本打开D:\Inetpub\Apache2\conf\httpd.conf文件

  修改1DocumentRoot "D:/Inetpub/Apache2/htdocs"

  修改为 DocumentRoot "D:/Inetpub/wwwroot"

  修改2<Directory "D:/Inetpub/Apache2/htdocs">
  
修改为 <Directory "D:/Inetpub/wwwroot">
   
这两步的目的是把Apache的主目录定义到D:\Inetpub\wwwroot

  修改3DirectoryIndex index.html index.html.var

  修改为 DirectoryIndex index.html index.html.var index.php

   这步的目的是把index.php作为默认文档

  修改4:找到一大堆LoadModule,在最下面添加LoadModule php4_module D:/Inetpub/PHP4/sapi/php4apache2.dll

  修改5:找到AddType,在下面添加AddType application/x-httpd-php .php

  保存退出,然后重新启动Apache。方法:[开始]-[运行]-[net stop apache2]-[net start apache2]

 6,新建一个index.php,内容如图所示,保存到D:\Inetpub\wwwroot

7,打开浏览器http://localhost/,如果出现下图,说明配置成功。

总结:

这一部分是整个教程中的重点。没什么好说的,主要就在细心。

下面请看phpMyAdmin的配置。

5、配置phpMyAdmin,从中学习如何设置Apache的虚拟目录

1,打开我们下载的phpMyAdmin

2,解压缩到D:\Inetpub\phpMyAdmin,如图

3,复制D:\Inetpub\phpMyAdmin\libraries\config.default.phpD:\Inetpub\phpMyAdmin\下,重名名为config.inc.php

4,用记事本打开config.inc.php

  修改:$cfg['Servers'][$i]['auth_type'] = 'config';

  修改为$cfg['Servers'][$i]['auth_type'] = 'http';

  保存退出[attach]1511704[/attach]

 5,用记事本打开D:\Inetpub\Apache2\conf\httpd.conf

  找到Alias /icons/

  在下面添加一行

  Alias /phpMyAdmin "D:/Inetpub/phpMyAdmin/"

  保存退出,重新启动ApacheMySQL(方法见上一部分)。

6,打开浏览器http://localhost/phpMyAdmin,用户名root,密码输入MySQL安装的时候设置的密码。

7,出现下图界面,安装成功。

总结:

这里说一下第5步的设置注意事项

该步骤中,我们添加了Alias /phpMyAdmin "D:/Inetpub/phpMyAdmin/"

目的是添加一个虚拟目录phpMyAdmin指向D:\Inetpub\phpMyAdmin,访问的时候就是http://localhost/phpMyAdmin

我们可以修改为Alias /phpMyAdmin/ "D:/Inetpub/phpMyAdmin/"

这样就只能通过http://localhost/phpMyAdmin/访问了。提高了安全性

 

==至此,全部安装过程结束。==

6、重新安装系统后如何快速恢复
假设我们现在重新安装了操作系统,XP/2003/Vista都一样。我们如何快速恢复到配置好的状态呢?

 1,安装MySQL,参见前面教程,注意其中的快速恢复注意事项

2,复制D:\Inetpub\PHP4\下的php4ts.dllphp.exephp.ini三个文件到C:\Windows\下(Win2000C:\Winnt\

3[开始]-[运行]-[net start mysql]

 4,执行D:\Inetpub\Apache2\bin\apache.exe

好了,快速恢复完成。数据库、虚拟目录等等完全不用重新设置。比IIS方便吧?

 7F.A.Q
问:为什么路径中的\要用/代替?我测试了一下\也可以啊?

答:因为在Windows下配置\/没有区别,但是Linux下必须是/,所以我们培养好的习惯,用/

问:路径区分大小写吗?

答:Apache+php+MySQL+phpMyAdmin完全严格区分大小写。

如果大家有其他疑问,请提出。我会一一解答。

给大家介绍一下我做的几个php项目

1http://www.city-vip.com
界面不是我做的,我做的php程序

2http://www.xzwy168.com

这个完全是自己做的,php+ajax

3http://www.bdsun.cn

自己的网站,php+smarty,大家帮忙点下广告,谢谢。呵呵

疑问解答

 

1.访问数据库出错,哪里设置不对,请指点一下:

An:把浏览器编码设置成gb2312,看一下错误提示

2.root名和设置的密码登入phpMyAdmin后,出现下面的错误提示:

An:运行 MySQL Command Line Client

         输入: set password for root@"localhost"=old_password('[密码');

.set password for root@"localhost"=old_password('这里设置你的密码!');

3.装好后发现这个:没有发现 PHP 的扩展设置mbstring 而当前系统好像在使用宽字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确识别字符串,可能产生不可意料的结果.”

An:1,检查是否将php.ini复制到正确的Windows目录

2,检查php.ini;mbrstring.dll前面的分号是否已经去掉

3,检查php.iniextension_dir路径是否正确,注意最后没有\

4. 务运行一段时间后网站无法访问

net stop apache2以后再net start apache2时碰到以下问题

Apache2 服务正在启动

Apache2 服务无法启动

发生服务特定错误:1

请键入 NET HELPMSG 3547 以获 ...

An:这个只能检查你系统的稳定性了

还有是否有其他的程序强行占用80端口

试验修改apache默认得端口看是否能解决问题。如果能,估计系统有病毒。

5.在恢复安装时,如果选择修改root密码(密码和以前一样的),会不会安装或失败呢?

An:会失败

这里绝对不可以修改root密码

如果要修改,安装好之后,进入Mysql Command line修改。

6. 为什么我按楼主的步骤安装了APACHE, 最后却打不开测试网页呢?

An:看一下Apache服务有没有打开

还有看看你的防火墙是否屏蔽了Apache

7. 请朋友们帮忙,看看我安装时apache时出现的问题,结果安装完成后不能打开http://localhost

An:原因在于:

首先,你安装apache的时候,80端口是被占用的

所以安装失败,重新启动之后,由于安装失败,所以服务无法启动。

解决办法:

首先,卸载apache(注意,是卸载,不是删除)

然后,检查是否启动了IIS或者其他占用了80端口的服务,如果有,停止他们。

最后,重新安装apache

 

338°/3335 人阅读/5 条评论 发表评论

程守标  2010-05-06

楼主辛苦了,不过链接好像用不了


韩亮亮  2010-05-06

程守标: 楼主辛苦了,不过链接好像用不了
不好意思最近有点忙,改天把链接更新下!


程守标  2010-05-06

韩亮亮: 不好意思最近有点忙,改天把链接更新下!


吴笛  2010-05-08

刚入门的用你这方法很好。
有经验的直接用EasyPHP或xampp之类的,用着更方便些


韩亮亮  2010-05-10

吴笛: 刚入门的用你这方法很好。
有经验的直接用EasyPHP或xampp之类的,用着更方便些
那个是方便,但是有时候版本不匹配,也容易出现问题,最好是自己能够深入了解,手动安装较好啊,呵呵!


登录 后发表评论
韩亮亮
访客 3413
韩亮亮 的其他博文 更多