看PHP,MYSQL,都出了新版本,想尝尝鲜,就试着安装了一下,然后把安装过程记了下来,希望能对学习PHP的新手有些帮助,斑竹可以考虑精一下了
$ C- p; \1 C; L9 c6 v
/ M* O3 E$ t5 M: @
Windows XP下全新安装Apache2,PHP5,MYSQL5,Zend的简单过程
; U' f' T6 l& G& C
" }! B/ P& D3 ~) c) ^一、下载地址:
8 j0 Z/ P& \ Y- ZApache2.0.50 :
http://httpd.apache.org/download.cgi6 x9 e+ N- q& p1 s3 l
PHP5.0.2 :
http://cn2.php.net/get/php-5.0.2-Win32.zip/from/a/mirror
( Z \6 e& v$ x: c' eMYSQL5.0.2:
http://dev.mysql.com/downloads/mysql/5.0.html. I! r* i- O: ?5 Q9 b X
Zend2.5.2 :
http://www.zend.com/store/free_download.php?pid=13]
! ], Z+ f0 H) w$ c4 Z- C) D1 m/ S5 E
软件的安装偶就不说了,其中只有PHP下的是zip包,直接解压就可以了。
/ }5 Z2 O+ E4 j! l5 T安装顺序就是上面列出来的顺序,Zend我是最后等所有的运行都没问题后才装的。
. C1 u" \$ _( ~5 i7 ^' B- z
, Q" D7 |) q) k+ o2 ^
二、简单安装过程:
* P( I( K1 v! N- n(一)Apache:
+ E; H" V, ~$ h& F% I0 N
Apache2.0.50的安装很简单,我就直接把他装到了E盘根目录下(我C盘是系统盘,D盘是temp盘,偶发现在windows下单独拿个分区来做临时文件的存放地对系统的速度影响不小,这样做能提升系统运行的速度,感兴趣的朋友可以试试看),安装完后我的apache目录就是E:\apache2
" \* \! B( p) r3 {& F(二)PHP:
# }. l. b, \4 \* G6 l# p Q我是直接解压缩放到E盘php目录下了,这样查找文件会方便许多。
5 x- b5 \7 _0 ` A) l
(三)Mysql:
) j7 ?5 D6 X1 m9 @" Y- U
直接装到E:\mysql下,它的默认目录太长,是在C盘下的,偶的C盘是除windows的文件外别的一概不放的。
3 P6 b; I; Y* M% P# _
(四)Zend:
; Y/ S5 [0 g, P3 x+ Y5 f
所有的调试都正常后我把Zend装到了E:\program files\zend下
( @0 e- J( [. n5 q
3 E$ R6 ~- F0 g$ `
三、配置过程:
% ^8 G+ F/ c* z7 _6 w(一)http.conf
) P0 q% z6 y( x+ @' X2 a
% z& ^! u1 q0 x4 b
这个文件我改了几个地方:
" `9 u$ V3 H& q- V8 _& e3 q
把PHP直接作为apache的一个模块运行,我在里面加了两句:
复制内容到剪贴板
代码:
LoadModule php5_module "E:/php/php5apache2.dll"
AddType application/x-httpd-php .php我在E:\apache2目录下建立了一个www的目录用于存放我的站点文件,在http.conf里改了这样一句话:
" n" L3 U( r4 q D) Z, W把DocumentRoot "E:/Apache2/htdocs"改成了DocumentRoot "E:/Apache2/www"
( M$ B a- b/ V8 p4 r2 y- N2 D; U' o2 s" v4 M$ c+ f: X
Apache2.0.x于1.3.x相比2.0.x默认不能直接列目录,偶感觉不爽,就改了:
" L$ ~7 i$ C. M+ a! N* F( r+ T% I把DocumentRoot "E:/Apache2/www"这句下的如下语句
复制内容到剪贴板
代码:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>改为:
复制内容到剪贴板
代码:
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>把apache的默认字符设置为中文简体:
+ R2 H9 s) h: [AddDefaultCharset GB2312
4 j8 R+ M/ m) z- s) j
5 y" ?7 d" U, |0 v; s2 v
修改目录的默认首页:
& z( D3 d( V% V; J
DirectoryIndex 后面写上你想设置为首页的文件名,如:index.html index.php等
9 g5 A# I8 t( l5 E9 {1 s9 ^ x
( e8 e+ \& t. E9 b1 Y6 |
别的就没再动什么地方
$ L- z2 L4 A6 {4 \ X$ I" X# a* w
3 l$ w) d2 L# ^% z1 U
注意一点的是,要使这些配置生效需要重新启动apache
' u+ W" B4 i! v3 ]4 y
' _& E$ h4 g2 j8 z+ ?(二)php.ini
8 f, V& [) Y: u2 K
以前用php4.x的时候觉得配置起来很简单,所以偶用PHP5也直接那么配了,谁知道完了mysql不能用,说是无法连接动态库,我仔细检查了一下php_mysql.dll明明存在,可就说找不到,这点让我郁闷了N久,偶重新解压了php5也没用,后来在php的install文档里发现了这么一句话: php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
2 E* M, O5 Q) q
于是偶才找到了原因......
: K5 D5 o3 j. H1 h+ ~) b
配置php5.0.2是这样来过的:
) ^# n/ Q0 |: s% {+ ]- {3 ~把php.ini-dist复制到C:\windows 下改名为 php.ini(装过php的都做过吧)
0 e' Q" q8 |, v A3 @- z# D3 w6 Q
然后修改了几个地方:
# a, \7 X, r8 e$ ^extension_dir = "E:\php\ext" (指定动态连接库的目录,php5和php4不同的地方就是它的动态连接库目录变了,这在它的文档结构里有详细的说明)
. j+ ?6 L" Q8 C% `* W8 e2 `
然后把下面几句前面的分号去掉
7 Y% M+ Y( I% q6 R' h/ l& ];extension=php_dba.dll
3 v3 |% L- T5 O! j+ z& r
;extension=php_dbase.dll
8 m2 Y- R9 O# N* A* b1 y* O;extension=php_filepro.dll
/ Q, M5 L/ v0 `" J9 t6 _0 Z) s;extension=php_gd2.dll
/ |: c1 |3 ?/ j5 Z2 U4 D- u;extension=php_imap.dll
- v, l. B$ F# t* N' Z
;extension=php_mysql.dll
. R& X. r* y' W Y2 |5 [" u7 N/ ?* r- a0 {; \
接下来修改了一些文件上传以及内存使用最大限制:
9 |) M/ Y0 Y, Mmemory_limit = 20M
/ @: p7 H, t- j( Bpost_max_size = 20M
' _- e g( S( Mupload_max_filesize = 20M
4 f% p1 q% E0 Y1 b1 ?8 z6 [别的就没改什么了,这里修改过php.ini以后也要重新启动apache
+ r4 \2 F" @% U) y. Q! W
9 B* _ N( u+ e) ]% n* W3 O6 R接下来一点很重要的就是把php目录下的 libmysql.dll 和 libmysqli.dll 复制到windows/system32下,如果不这样做,mysql动态连接库就无法正常加载。
/ h# a! s( U, Z
/ s& B4 j; C2 U(三)Mysql和Zend的配置
: A8 K! s% B: ?& K( ~
现在Apache和PHP都已经配置好了,在浏览器里输入localhost看看结果,运行成功,然后输入localhost/phpmyadmin看也成功。郁闷,Phpmyadmin提示错误信息:
复制内容到剪贴板
代码:
MySQL 返回:
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 奇怪了,偶明明装的是MYSQL最新版本怎么会客户端版本过低呢,真是郁闷啊
1 K) M, _( c4 y9 b" {; `就此放了一下,经多次测试仍然不成功就先放弃了一下,玩了一把KOF97
' w( m0 F" }) D1 c+ b/ }然后在CCF.熊猫和IM286.ceo的帮助下,终于找到了原因:
2 C" U# w" n% ]1 n) ~' `落伍ceo:“升级客户端
$ i, k% @3 @1 M
新版本的mysql使用了新的密码验证方法
7 f' ?9 P( s" G0 Q& e Z
设置mysql密码时使用old_password可以解决这个问题”
& b% W2 v: h- B2 _& }2 M K5 LCCF.熊猫:“使用old_password”重新设定密码就可以了”。
! `# r3 ~- B# v) d$ U, l
感谢这两位朋友,具体解决办法如下:
' d6 \% ^3 \1 t7 s w j1 y9 r/ N; V
由于偶不知道怎么升级client,因为在windows 下 server和client是捆绑安装的,我就用了old_password的方法:
复制内容到剪贴板
代码:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;然后浏览“
http://localhost/phpmyadmin”,OH YEAH! 测试成功!今天天气真TMD好,哈哈......