获得本站免费赞助空间请点这里
返回列表 发帖

Windows下的 Apache + PHP + MySql + 虚拟主机 设置全功略

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。
- l% X+ e( i+ g
5 Q, O1 U1 W5 @& N  _一、安装PHP40 l: E  t8 R: {, [9 Z' C! }0 U; D
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
3 S7 b3 x$ L: Z% J  g6 X* \" i$ H1.下载后,解压到c:\php目录下。+ V* i! n4 V2 ^) |4 Z* i' L1 r
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。9 E% _8 l" ]- L  o+ U
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。' v6 C, j. J' t1 F& n8 k
3.1找到register_globals = Off 改为register_globals = On
9 |* k9 X. G" ]+ q5 ?, V; \这一步是为了使部分旧的PHP程序能正常运行;
( Z2 s% \% [+ O, m0 C. G- ^3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
8 B3 k) _' p$ a, f3 e. t以下内容新手请略过/ ]7 J/ u. B5 d& M/ N# N4 s( l3 u
===============新手略过开开始================
/ b! J1 \: D0 h刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
7 E7 `0 h" a) P5 A$ c2 t6 i, M;extension=php_bz2.dll; C; _/ v$ [2 d  L
;extension=php_cpdf.dll1 f+ w9 J( z' J# L" n& ~% p! b
;extension=php_crack.dll
7 r+ z' Y4 X, I3 d. Q( d8 V;extension=php_curl.dll2 R% @, d5 O8 f! e
..... + ~  T. p5 H! j3 C, v
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;$ l( t+ Q# y/ H" {
其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;/ m# {4 h6 Y/ n4 P
如下面
0 i3 v- E' g. Lextension=php_gd.dll
) S' [. |7 s  P. `. s;extension=php_gd2.dll- }, {2 \3 D3 `2 J
按实际所须的extension=php_xxxx.dll前面的分号都去掉。9 ?. F! p; ^! W: o; |- S- ~6 F
=============新手略过结束================, `  k! C9 t' ]2 u- s( V: Z  v) V
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp: y7 [3 k0 u. u2 Y. o6 e2 v1 {0 Y, p2 H
并在C盘建立一个TMP目录
9 E( ?6 ?/ i  Y2 _7 C/ R3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。+ O# ~- e/ E5 G& _
================================================4 B8 W& T3 \$ J' I
二、安装MySql
1 i; h& o2 o. s1 H! p安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;9 T% z- x7 ~! N9 t
按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;$ K5 D# N; c. x$ s9 e
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)
2 a+ C' ~7 O: J; L: \7 T4 H从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
3 w1 o3 J, r4 n6 G9 E: I2 x2 d即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;" V7 n# O  l9 n) V0 D& I* Z
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;% u9 b5 L+ J' H% o  K' `/ r3 c4 W" T
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
/ L3 y/ \# m! J3 f. ?5 e: g/ t; q& x第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
; K9 }% e* K) @5 y/ v" a  a0 ~' D出现: C:\MySql\bin>MySql -uroot -p Enter password: ********** Welcome to the MySql monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 3.27.44-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 9 M- X4 l* B: n& g4 k+ n# Q
即安装MySql成功。& H" [2 S7 \: @# `4 a4 {8 A
==========================================
  E7 L/ d% w  n, F# q+ k三、安装Apache 1.3.x 及 PHP运行设置' B' q& A# @8 v2 L4 P
1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
2 q, t( _# v3 _( {: ?1 T如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
, y8 Q) ?& ?( u- s- h1 H2 U* K; o有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。
8 Z0 X. q! s! Q2 \6 b+ N值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。 5 a/ O; ~0 v) i6 H' e
尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
6 G, F7 d! q0 m如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
5 D( {3 g' R; J0 [) s
& u9 i/ a7 D. e; l" o" W& `* ?ScriptAlias /php/ "c:/php/"
+ Q0 {# {$ R3 j6 n4 |AddType application/x-httpd-php .php .phtml
; W& f% V/ X" V! k' z; d( k6 @Action application/x-httpd-php "/php/php.exe" / D8 B8 J& `* K$ R+ N5 w3 o: J
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
2 V( u& x1 |  K/ Q' D" U% D5 w
警告 : ]* D1 w+ F! a* q
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
. t4 u% |7 ~& X( {6 h- P' |/ J
# B2 m7 B; m7 ^6 |如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行: 8 t5 A6 T# v$ i; W: ^
- i1 O; m, H( y! S# |& ?
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
: D' y5 D! Z! M  ~9 d8 u对 PHP 4:. j4 N, Y0 b# R0 M3 @
LoadModule php4_module c:/php/sapi/php4apache.dll
3 q- i+ M0 Y" w. G对 PHP 5:
: y" r# V) g, w) S6 Y% |LoadModule php5_module "c:/php/sapi/php5apache.dll"3 {3 V+ n8 m) f  v
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
, X+ C0 {( ]% W1 \4 T* PAddModule mod_php4.c
! f+ [$ _+ G1 i: q, T* h# ~9 g对于 PHP 5 则为:( @  ]! e+ q5 f$ l6 F9 b3 x% S
AddModule mod_php5.c+ s* K9 z3 u1 T0 ~0 I( @
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
! h6 {* N8 o, J7 b2 I; I: u" i1 i
$ ?  r$ }& Y* \5 ]0 s+ A* g; |修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。 2 @/ |8 |! c: B8 |
有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
: J+ D. s: T, f6 \. `3 A3 A! e如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 2 d! e2 C! p' e$ Z0 x. w
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。% o3 }7 U2 {  U0 `
============================================
/ b! S9 U& g+ W" `1 B四、实现Apache虚拟主机的两种方案
# Z. _+ n7 S3 h: U7 Z简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
) A( G. u* y& n' B. l6 K支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 % e( m5 z  _6 L! u% C3 e
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 $ G) A2 a3 p% H- ^" `0 o
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
3 A) ]+ W- d. Q设置。 & P$ t. |7 M( e
设置Apache虚拟主机通常有两种方案
% X5 h0 R( H+ |( C& `- R1.基于IP的虚拟主机 & p" J: K- S* ?+ C) y
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 # j% r) y/ l$ Z- M% q5 A0 G$ }
网卡上绑定多个IP地址去服务多个虚拟主机。
8 l* ^$ G. F9 C7 |+ @若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
( R* c2 ~9 c4 q" x. [1 |  [/ Y# i你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
0 z1 z2 ]! e3 s% H2 R; n/etc/rc.d/rc.local,确保每次启动后自动运行。
; }% `- t9 Q& e* |#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \ 1 b" B, C9 k! u4 N0 G" S' P
192.168.0.255 up : o) {. i% ]' w+ X; U
#/sbin/route add -host 192.168.0.2 eth0:0 ( ]9 P' H5 Z, D2 H) i) r+ U
然后你需要设置/etd/httpd/conf/httpd.conf文件: ! j, z& Z& p7 _; ?9 q- Y* o  e
<VirtualHost 192.168.0.2> 1 l/ V  j" l. X/ H* a
ServerAdmin webmaster@yourdomain.com
% `) A9 ~) R2 _DocumentRoot /home/httpd/sales.yourdomain.com ; l1 M& X1 f2 [4 @$ _( E
ServerName sales.yourdomain.com & A! X/ f' p2 w) i' U9 g- N
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log $ x7 Y& R0 ~; Z- g" o, s6 H
TransferLog /var/log/httpd/sales.yourdomain.com/access_log 4 c9 D2 V9 ?+ Z$ F3 X, H8 R
</VirtualHost> . B  ?- H7 a: A5 d
然后分别创建目录
" S" t! {% G$ I; _  i$ G1 ?, s; t; \/home/httpd/sales.yourdomain.com, 4 l3 b% H4 r$ C6 r8 N( B3 `
/var/log/httpd/sales.yourdomain.com 2 v9 [- v4 ]3 z4 q! b
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保
7 e5 {* Z: ?1 Q: u. l; w; B1 i你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
9 M; \- u3 c$ K$ [! m0 V, |9 `/ \4 e注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
2 {& P' N3 j) h) G! S& [9 B虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 0 W  ^- T+ g9 F) _+ T
方案。 5 C$ ^! @% b8 j9 ^- }5 @# j
9 \. e- c* z% e7 W4 v
2.基于名字的虚拟主机:
5 r0 D$ L+ e- g+ F  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 - E% @+ R) Q# @
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件 ' d( H2 n& M' a0 J  q  b( L5 d
/etc/httpd/conf/httpd.conf
3 C6 D1 E( l1 p/ L, A% ~  FNameVirtualHost 192.168.0.1 % Q- z5 b# _" w0 @; @
<VirtualHost 192.168.0.1> + y: V" k- S* L. b9 p9 A. J5 S
ServerAdmin webmaster@yourdomain.com 3 {  B( C( W; x
DocumentRoot /home/httpd/sales.yourdomain.com $ \, p' h* P9 n
ServerName sales.yourdomain.com 5 F8 Y6 g& C! F$ C9 ]
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
# `" e! ~! @- vTransferLog /var/log/httpd/sales.yourdomain.com/access_log
6 j2 N. N  Q- S9 |</VirtualHost>
) N" X0 S) J1 n$ F5 e+ J<VirtualHost 192.168.0.1> 0 w3 {4 y) j+ b" Z- Q6 m. Y9 [
ServerAdmin webmaster@yourdomain.com % @4 H2 D& G8 D, I; e
DocumentRoot /home/httpd/hr.yourdomain.com * F% ]. k5 y) v3 T
ServerName hr.yourdomain.com
0 x$ V" |+ l- K3 O, F* VErrorLog /var/log/httpd/hr.yourdomain.com/error_log / A, _& W" e: i: F( p
TransferLog /var/log/hr.yourdomain.com/access_log
* I! q8 b- `* E" _6 L</VirtualHost>
/ ~" w$ h( E  y& d9 L" m/ H6 w/ u6 {注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机, ; b, g( U# t6 \& r. c
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS : _4 N2 e" s4 e" W
都指向IP地址192.168.0.1
6 b4 ]# B; B3 |! ]上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 ' f0 z  Y+ q( H3 d
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
/ T9 _- }9 q8 f1 ~9 Z若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 ( T  {' P7 C  E9 ~4 P, J+ {
提示:上面所提到的相对目录可以用绝对路径代替,如: " _$ O" h2 T& m- ?1 Y
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot
/ I. A4 k& n( H# K==================END=======================& ]$ e* K$ f1 w6 p' M1 J  _9 ^
这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件
. z& a' ]6 O9 W9 a/ f/ H+ [! y# a- D下载地址:7 u3 p; K6 }( e6 t0 T
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那
+ u: S, i9 d3 a: _! p2 ^% V' k1 W) R怎么没图哈
5 Y3 F* R8 u( A1 h0 h! N应该图文结合啊/ p  M6 g6 ]  L7 b& {+ k

TOP

返回列表
【捌玖网络】已经运行: