/ 中存储网

XP系统安装配置Apache PHP MySQL phpMyAdmin的过程详解

2014-07-13 16:15:27 来源:中存储网

初学php,需要搭建其开发环境。由于版本更替等原因,网上的方法几乎一人一个样,让人无所适从。昨天花了一晚上时间才在XP下配置好,现将其整理出来,希望能对别人有用。(2007-11-21)

一、 下载软件。

1. 下载apache_2.0.55-win32-x86-no_ssl.msi,右键用迅雷点击此处下载(直接点击不行)。

二、安装配置

1. 首先安装apache

    双击安装即可。假设我安装到了 c:/apache2 目录下。安装完毕后在浏览器中输入http://localhost 或者http://127.0.0.1 如果不出现错误界面既是安装成功。

    apache默认使用80端口,由于未知原因我的apache和80端口冲突,我手动将其改为了8080端口,方法如下:

    使用ultrleEdit-32打开c:/apache2/conf/httpd.conf文件(此为apache的配置文件),用ctrl+f找到"Listen 80",将其改为“Listen 8080”即可。但以后要浏览器中就得这样打了:

或者:

    你的站点文件默认是在c:/apache2/htdocs下的,这就是你网站的根目录,你可以更改。方法如下:

    在c:/apache2 新建目录www,然后在httpd.conf找到“DocumentRoot "c:/apache2/htdocs"改成DocumentRoot "c:/apache2/www",然后找到它下面不远处的“<Directory "./">”,将其改为<Directory "c:/apache2/www">即可。

修改目录的默认首页:
在httpd.conf中找到,DirectoryIndex 后面写上你想设置为首页的文件名,如:index.html index.htm index.php等

要使这些配置生效需要重新启动apache

2. 安装配置php5

解压缩PHP压缩包到C:/php5(这个路径可以随意,不过以下要是用到这个路径,请相应的修改)。
  把C:/php5下的php.ini-dist改名为php.ini后再复制到C:/windows 然后修改几个地方:
extension_dir = "C:/php5/ext" (指定动态连接库的目录,php5和php4不同的地方就是它的动态连接库目录变了,这在它的文档结构里有详细的说明)
然后把下面几句前面的分号去掉
;extension=php_dba.dll
;extension=php_dbase.dll

;extension=php_gd2.dll
;extension=php_imap.dll

;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
即改为:

extension=php_dba.dll
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_imap.dll

extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll

刚才修改extension_dir = "C:/php5/ext"就是为了使php能正确的找到这些模块。

接下来一点很重要的就是把C:/php5目录下的 libmysql.dll php5ts.dll  php5apache2.dll libmcrypt.dll 和C:/php5/ext目录下的 php_mysql.dll php_mysqli.dll 复制到windows/system32下,如果不这样做,mysql动态连接库就无法正常加载。

不要把 php_mysql.dll 和 php_mssql.dll 混淆
如果没有加载 php_gd2.dll  php将不能处理图像.没有加载php_mysql.dll php将不支持mysql函数库
php_mbstring.dll在后面使用phpmyadmin时支持宽字符
接下来修改了一些文件上传以及内存使用最大限制:(改不改都行)
memory_limit = 20M
post_max_size = 20M
upload_max_filesize = 20M


修改过php.ini以后也要重新启动apache


3.Apache整合PHP

    a.Apache中模块化安装php


   在 c:/apache2/conf/httpd.conf中查找 # LoadModule foo_module modules/mod_foo.so
   在此行后加入一行
   LoadModule php5_module C:/php5/php5apache2.dll


   PHPIniDir "C:/php5"

    也可以将C:/php5/php5apache2.dll的php5apache2.dll文件拷贝到c:/apache2/modules目录下,这样上面可改为:

   LoadModule php5_module modules/php5apache2.dll

   PHPIniDir "C:/php5"

(其中C:/php5是你安装php的相应路径.注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,因为我的apache版本是2.0.55,所以我用的是php5apache2.dll,如果是2.2.*以上版本,必须使用php5apache2_2.dll.否则就可能会出现
"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."或者:"The requested operation has failed"的情况.关于这个问题的解决方法可以参考
http://www.phpfans.net/bbs/viewt ... &extra=page%3D1不过php5apache2_2.dll出来之后也就没有多少参考价值了)

   b .

    查找 AddType application/x-gzip .gz .tgz
    在此行后加入一行
    AddType application/x-httpd-php .php
    这样apache就可以解释php文件了

    也可以再加上如下两行:

    AddType application/x-httpd-php .html
    AddType application/x-httpd-php .htm

    这样apache就可以解释php文件了,就是说包含php代码的html、htm文件也可以被apache解析了。 
    到这里配置基本完成了

    写一个test.php放到c:/apache2/www下测试一下,代码为:

     看到正确的页面即是整合成功。如下:

4. 安装mysql

            (1) 点击MySQL安装

 

             (2) 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装mysql的路径中,不能含有中文!
 

(3)点击intall开始安装

(4)跳过注册

(5)是否现在就配置 MySQL.也可以之后在开始菜单的configuration wizard 进行配置.
  这里是现在进行配置

(6) 选择Detailed Configuration(详细设置),点Next继续

(7)下面这个选项是选择mysql应用于何种类型,第一种是开发服务器,
将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,
最后一种是这台服务器上面只运行MySQL数据库,将占用全部的内存.
用户可根据自己的需求,选择选项.这里只选择开发服务器,点Next继续

(8)下面是选择数据库用途,第一种是多功能用途,将把数据库优化成很好的innodb(事务)存储类型和高效率的myisam(非事务)存储类型,第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,只有myisam才支持全文索引最后一种是简单的网络开发,适合于简单的应用,只有不支持事务的myisam类型是被支持的.   一般选择第一种多功能的.

(9)下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动
(如果要修改数据保存路径,也可用在安装后修改my.ini的datadir的值)

(10)下面是选择MySQL允许的最大连接数,第一种是最大20个连接并发数,
第二种是最大500个并发连接数,最后 一种是自定义,你可以根据自己的需要选择.
这里选择第一个

(11)下面是是否运行网络链接.这里选择复选框.数据库监听的端口,一般默认是3306,
             如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,
             比较麻烦,这里不做修改,用mysq的默认端口:3306

(12)这一步设置mysql的默认编码,默认是latin1,也是标准的编码.第二种是UTF8,第三种是手动设置.编码是版本4.1以上引入的.如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码.

这个比较重要,就是对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在Character Set那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一次“SET NAMES GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按 “Next”继续。            

(13)这一步是是否要把mysql设置成windows的服务,一般选择设成服务,
这样以后就可以通过服务中启动和关闭mysql数据库了.推荐:下面的复选框也勾选上,
这样,在cmd模式下,不必非到mysql的bin目录下执行命令.在命令行下咨询可以执行文件

(14)这一步是设置mysql的超级用户密码,这个超级用户非常重要,
对mysql拥有全部的权限,请设置好并牢记超级用户的密码,
下面有个复选框是表示创建一个匿名账号,这会使数据库系统不安全.
如果有这个需求,也请勾选.

(15) 点击 Execute进行安装

(16) 点击finish完成安装

(17) 我们可以开始使用mysql了,首先启动mysql服务,然后在命令行下打:

输入密码出现这个界面说明mysql已经安装好了

可能出现的问题:
如果在第15步,出现下图提示

是因为你之前装过mysql.卸载时还保留了一些配置文件.

点击retry看看是否可以通过。否则点击 cancel 退出.然后点击开始菜单的 MySQL Server Instance Config Wizard
重新配置 mysql

重复之前的操作.第14步将会出现界面是像下面这样

有三个输入密码的地方,你原来装过mysql.
你在第一个文本框输入原来root的密码,后面两个文本框输入root的新密码就可以了

如果还是不行那就重装一次MySQL。
重装注意事项:最好删除原来的所有文件,必要的话,可以清一下注册表,
如果你机器上没有其它mysql相关的程序.而且一定记得不要保留原有的my.ini文件.
还有就是删除原来安装路径下的文件,并删除数据目录下面的ibdata1文件.


   5. 配置php并关联MySQL         


a. 打开php.ini设置扩展路径
查找 extension_dir 有这么一行
extension_dir = "./"
将此行改成
extension_dir = "C:/php5/ext"
其中C:/php5是你安装php的路径.路径不正确将无法加载dll
(注意:有些php版本是 ;extension_dir = "./" 要把前面的分号去掉)

b. 分别查找
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_mysql.dll
把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了
注意不要把 ;extension=php_mysql.dl  和 ;extension=php_mssql.dl 混淆
当然前面我们也把这些dll复制到system32下了.(大家在安装的过程中都注意到如何把一些dll加载入来了.
以后要加载一些dll,比如说php_mysqli.dll,也就懂得怎么加载了)

c. 设置会话保存路径
查找session.save_path 有这么一行
;session.save_path = "N;/path"
在此行后加入一行(注意是加入一行,不是加到后面)
session.save_path = "C:/WINDOWS/Temp"
保存到你的临时目录下,这里完全可以保存到windows临时目录Temp下

也可以新建c:/php5/session,然后将其改为:

session.save_path = "C:/php5/session"

d. 还有比较值得注意的是 short_open_tag .有一些php版本默认是Off的.
也就是说 php不能使用短标记如 <? ?> 必须使用<?php ?>
由于短标记使用方便,并且很多程序也是用短短标记来写,如discuz
如果不把 short_open_tag 改成On将出现的症状将很难判断是上面原因,这里建议修改
查找
short_open_tag = Off
改为
short_open_tag = On 

e. 是否显示错误 display_errors
出于安全性考虑,display_errors 有些版本也默认为 Off.
就是说在调试时,如果php代码有误,就只出现一个空白页.而不会显示出错原因和出错行数.
这样调试起来将非常不便,建议根据自己需要修改
查找
display_errors = Off(注意不是 ; - display_errors =Off[Security])
改成
display_errors = On

f. register_globals
出于安全性考虑它默认也是Off
当register_globals=Off的时候,下一个程序接收的时候应该用$_POST['user_name']和$_POST['user_pass'])
当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值.
更详细的说明请参考
http://www.phpfans.net/bbs/archiver/?tid-234.htm
建议根据自己需要修改 .这里不建议修改,毕竟存在安全隐患.

g. php5时差问题
<?php echo date("Y-m-d H:i:s");?>时间相差八小时
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
查找date.timezone有这么一行
;date.timezone =
将;去掉,改成
date.timezone = PRC
其中PRC:People's Republic of China 中华人民共和国,
更详细解决方法请参考
http://www.phpfans.net/bbs/archiver/?tid-60.html

关于文件上传要注意的配置请参考
http://www.phpfans.net/bbs/viewthread.php?tid=1663&extra=page%3D1

对c:/WINDOWS下的php.ini修改好后,将其拷贝至php的安装目录既c:/php5中,将原来的php.ini覆盖掉才行,我也不知道为什么这么做,但若不这么做的话,运行下面的test_mysql.php时总是报一个如下的错:

Fatal error: Call to undefined function: mysql_connect()

有方家知道为什么这样做的话请发邮件告诉我 谢谢 please mail to : glq2000@126.com

至此配置完毕,写一个文件test_mysql.php测试一下

首先应应建立一个数据库,开启mysql服务,打开命令行输入:

   c:>mysql -u root -p

回车后出现:

password:

打入你的密码后回车,如下图所示:

然后打入

后回车,代表使用test数据库;

然后在mysql>后打入下面的建表语句后回车。建立一个employees表。

CREATE TABLE employees ( employee_id mediumint  NOT NULL AUTO_INCREMENT,
first varchar(20),
last varchar(20),
address varchar(20),
position varchar(20),primary key (employee_id));

然后插入一条记录:

mysql>insert into employees values(0,'耿','乐群','哈尔滨','学生');

回车后再插入一条数据:

mysql>insert into employees (first,last,address,position) values('tom','hax','USA','MOVIE STAR');

后回车,查看一下数据:

mysql>select * from employees;

test_mysql.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta content="all" name="robots" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<head>
<title>mysql connection test</title>
</head>
<body>


<?


//这里替换为你自己的用户名与密码
$db = mysql_connect("127.0.0.1", "root","glq2214545");


mysql_select_db("test",$db);


//目的是正确显示中文,这就是前面安装mysql时编码方式选gbk的原因
mysql_query("set names gbk");

$result = mysql_query("SELECT * FROM employees",$db);

printf("First Name: %s
/n", mysql_result($result,0,"first"));

echo '<br/>';

printf("Last Name: %s
/n", mysql_result($result,0,"last"));
echo '<br/>';

printf("Address: %s yy
/n", mysql_result($result,0,"address"));
echo '<br/>';

printf("Position: %s
/n", mysql_result($result,0,"position"));
echo '<br/>';
echo '<br/>';

echo 'It is scuessful to connect to mysql database. Congratulations!';
?>

</body>
<html>

First Name: 耿
Last Name: 乐群
Address: 哈尔滨
Position: 学生

It is scuessful to connect to mysql database. Congratulations!

则恭喜你!php已经能连上mysql,并且中文也能正确显示了!

6. 安装配置 phpMyAdmin

下载得到 phpMyAdmin(我下的是phpMyAdmin-2.11.2.2-all-languages.zip),将其解压到 你网站根目录下并重命名为phpMyAdmin,(假设我的站点根目录在e:/apache2/www目录下,则将解压出的phpMyAdmin放到e:/apache2/www 中即可)
找到并打开 libraries/config.default.php (有些版本是当前目录的 config.inc.php或者 config.defaut.php),打开后发现其前面的注释说不要修改此文件,修改config.inc.php会有同样的效果,截图如下:

由划红线处可知,建议不要修改此文件,要修改的就修改config.inc.php。config.inc.php在e:/apache2/www/phpMyAdmin下。打开config.inc.php

做以下修改:

1 查找 i++,在其下加上如下两行
$cfg['Servers'][$i]['user']          = 'root';     
$cfg['Servers'][$i]['password']      = ''; //use your password here

把你的mysql密码填到$cfg['Servers'][$i]['password']      = ''; 的单引号里边

2 搜索 $cfg['PmaAbsoluteUri'],将其后面单引号里的值设置为 phpMyAdmin 目录路径,如:http://localhost/phpMyAdmin/ ; (如果你更改了apache的端口为8080,则此处应写:http://localhost:8080/phpMyAdmin

3 搜索 $cfg['DefaultLang'],将其后面单引号里的值设置为 zh-gb2312 ;

  若搜不到的话,就自己手动加上这一行。

下面这项根据自己需要的编码修改(如果对数据库编码不是很熟悉的建议不要修改)
4 搜索 $cfg['DefaultCharset'],将其设置为 自己所要的编码.

打开浏览器,输入:http://localhost/phpMyAdmin/,Apache 和 MySQL 均已启动,
如果出现如下页面则phpmyadmin安装完成并可以使用了

恭喜你! 至此本文结束!希望对你有所帮助!