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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。
- i0 m) @$ ^/ E: r% T3 Y0 p
5 |& j1 `2 w, [+ G一、安装PHP45 {6 ~1 O% c2 H% x5 Q
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip) d. ?6 u# u. c$ a
1.下载后,解压到c:\php目录下。3 v6 P5 ~9 Y; |9 r% u/ _. x
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。! q8 F+ m* C' P! t7 f5 Q
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。% W* {. U4 r% `% D! o3 M3 h/ i+ G" @
3.1找到register_globals = Off 改为register_globals = On
' Y! u: R6 R: ^0 i这一步是为了使部分旧的PHP程序能正常运行;
4 H1 a$ d# G( L' b+ F9 q& W3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions6 c) X  p' M" h/ K' D* u! \
以下内容新手请略过
- I3 J' v3 x+ q. G  @. s/ |3 w$ r2 I===============新手略过开开始================
. v& j2 h% |. v1 \7 z2 F+ R  w# \9 l刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions) # B6 i" W1 [0 m
;extension=php_bz2.dll
+ |, i/ J+ R3 K5 u( d% @;extension=php_cpdf.dll
" x/ c% E* D2 A) ^;extension=php_crack.dll
" G3 `. F; G2 V- f" D8 f;extension=php_curl.dll
# |4 V3 y$ i% o/ f5 ^, x1 o..... - V+ r+ u# U+ t
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
$ v, E# K/ c( a* W7 v: G, h" v其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
& X  L# l7 N6 o( R0 ~如下面' _4 ]( C$ J- ^
extension=php_gd.dll
) c) u* P: E4 ?5 t$ U;extension=php_gd2.dll
' |1 E5 K4 x- R" `按实际所须的extension=php_xxxx.dll前面的分号都去掉。& k7 o# ?4 h/ G# o: D& s( B, O0 O- N
=============新手略过结束================2 f# S. J  {3 j
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
: u, }- z; q) M$ M# F并在C盘建立一个TMP目录9 K; {  x2 }) l# k
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
# F& E) j3 B1 E+ R% v  J+ i+ x================================================
* t4 |0 u. a' S9 ]: B二、安装MySql! a  C9 x& d. |) ~+ i5 F/ d
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;' B: [* f! t2 H7 b- i* X
按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;5 P/ E* k: C2 Z6 W( f8 W
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) % F, M4 U: T1 l7 {: V9 P
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口' Q; E: ~) @$ J, R1 E! x
即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;2 F* ~3 t. n/ L7 l9 H  v! H$ X
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;! U7 N/ J- N$ U% S$ ?6 X. n* ~/ h
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
7 u! l" X0 ^: @第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
3 u# s5 z+ V2 C$ A出现: 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> . o' i0 y) [6 ~# l
即安装MySql成功。; F$ k0 t7 i: s
==========================================
' {( s3 }- f8 T: ?5 u三、安装Apache 1.3.x 及 PHP运行设置
' \4 S8 q! c- y. {( Z7 o: n1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。6 Y3 e2 g- U5 \. F7 [! j' K
如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
  R! m+ o6 X4 |' B2 U有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 % w6 R1 o8 k- N% B" x$ Q  O/ E
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。 ( h, `9 e1 R- i, }& t
尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。   ~" V3 X% x* t4 ^6 C5 }
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
3 L3 w9 X; j3 F+ \9 G+ M6 y4 o* h4 ]; N0 Y  j/ E, }+ B
ScriptAlias /php/ "c:/php/" 8 s: d; [1 M* T  X' G
AddType application/x-httpd-php .php .phtml
) a" Y! V( d$ @2 D# \( bAction application/x-httpd-php "/php/php.exe"
5 A1 y, _1 A( u5 q, q. ~! [注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。 ( G$ ?  J0 ~4 m6 g; {. Q" w$ I/ \; W

8 `2 p1 x5 e8 H6 t$ [7 n& Q7 W警告 2 ^) E; x7 b* Z( P8 D
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。 0 A# U0 r# m) F8 q' n0 l! c

7 m3 A. i$ ]4 G8 R. X如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
, K6 }- I; O6 u$ S$ L3 L" }
& G3 |, R& R( I" i用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
, C6 f' m4 l! N) ^1 S. l8 g% W对 PHP 4:
) Z+ W7 t: o. @% n7 S! z0 DLoadModule php4_module c:/php/sapi/php4apache.dll5 D) Q) z6 n' T7 L6 T* O
对 PHP 5:# H5 p3 k( b( L) Z
LoadModule php5_module "c:/php/sapi/php5apache.dll"5 j" o" G- _8 x" P- m4 X9 ]+ K0 ~$ l
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
3 _: g0 Z( C* U+ }) b" iAddModule mod_php4.c3 e* M6 S( R7 T  y( K
对于 PHP 5 则为:
3 q; J9 N, d! F7 qAddModule mod_php5.c
  w& j) o& N% _8 j4 G搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。 % D3 O& B7 j8 @" n. C* ?
; m6 T/ d$ [  d, R  n8 }
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。 % g. p& f" [' E8 c" k9 T1 h
有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 ) k9 {/ u3 L0 {
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 4 m$ b  y( p) J* t# ^
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。( ]  d" ]8 D) n
============================================
! K' m! _; X0 L/ X# I7 C2 c四、实现Apache虚拟主机的两种方案, b, b, C( w( s* p# v+ [; e' A. N
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
( a" r" u2 S$ F# D6 C, ^5 ^$ m支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
3 B7 M& {4 O6 H& Raccount.yourdomain.com,同时又想为sales部门建立网站,网站内容也 % m7 ^5 C4 [$ R" ^
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
* m& q' a& \6 P8 N& B& q1 P设置。
) G% S2 z' G  ?* F1 m设置Apache虚拟主机通常有两种方案
7 ~( F& O+ y  k$ O6 B1.基于IP的虚拟主机
* u! T8 J, Y/ \! }! |% g( Y  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
0 x1 \% d4 }8 z1 T) F3 \网卡上绑定多个IP地址去服务多个虚拟主机。 ! l% A. v; p; k% u/ L1 q
若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 $ z; a6 e0 _9 S
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
  i+ F6 m& z$ W7 n0 V+ h2 g" r/etc/rc.d/rc.local,确保每次启动后自动运行。
: p4 V6 \9 `9 ?( }* F#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \ 9 a/ o' d( K, q' _2 }0 Y! H
192.168.0.255 up
* E# U  n& H: ^0 S) t6 g6 v#/sbin/route add -host 192.168.0.2 eth0:0 / X/ `% F2 R" I" d$ @8 _
然后你需要设置/etd/httpd/conf/httpd.conf文件:
2 F0 u* F* |# J+ A3 J<VirtualHost 192.168.0.2> % ?* f7 z, ]' h$ c" l. S. }" y( Y% {
ServerAdmin webmaster@yourdomain.com / s7 W* \0 T- Z  Y- S! N) h+ d
DocumentRoot /home/httpd/sales.yourdomain.com
" {5 ~2 \7 G3 j1 b8 P9 dServerName sales.yourdomain.com
1 X; j; q- Q$ e* D, HErrorLog /var/log/httpd/sales.yourdomain.com/error_log
! }7 \7 \$ W6 ?4 t! T; _4 jTransferLog /var/log/httpd/sales.yourdomain.com/access_log + F3 s  B; Y6 L" b5 b+ T5 X
</VirtualHost> * M3 u! D% b  B& l$ x7 k& `
然后分别创建目录 / _2 m% j0 s0 T& R5 \
/home/httpd/sales.yourdomain.com, . K' @$ H7 p9 N) l
/var/log/httpd/sales.yourdomain.com
2 R& j4 N; X. ~放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 8 b1 ?+ E2 ?1 d  T* s5 H
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。 9 u7 y7 I8 `2 B" ^; j" f
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
( r5 r9 }, `3 N虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
* ?  ]  S' j. I8 y; o方案。
5 e  X+ z) U6 L8 D/ w: |2 D$ V* x6 D) P  g
2.基于名字的虚拟主机: $ w! z. g  l4 l4 k$ B  a
  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
- K$ v7 }  j  U1 X2 ]6 `浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
; w! D/ X4 c" K. m9 T) y8 V* p" C/etc/httpd/conf/httpd.conf
3 k! }8 [, d% l9 F, w  jNameVirtualHost 192.168.0.1
0 T3 [0 H& E5 _% Y  D% U: N  W<VirtualHost 192.168.0.1>
% q4 P, @% ^+ B* R8 h  GServerAdmin webmaster@yourdomain.com
+ W# W( P0 p' Z& ^8 c0 X( iDocumentRoot /home/httpd/sales.yourdomain.com
/ G! s; w5 X$ MServerName sales.yourdomain.com : `% T, N2 f. y! W# @
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log * w% k7 g+ u2 [0 C2 o
TransferLog /var/log/httpd/sales.yourdomain.com/access_log & Y0 M4 D) e( e9 \8 n
</VirtualHost> 0 R8 g1 }+ ~$ r0 h' J3 l4 _
<VirtualHost 192.168.0.1>
) c3 c2 s* s* _+ o( ^' ]: TServerAdmin webmaster@yourdomain.com
$ f% S0 Q" y* G1 V) z; \3 YDocumentRoot /home/httpd/hr.yourdomain.com
; [% t8 A& e1 m. M" x4 c/ @, ZServerName hr.yourdomain.com
3 l& ~9 l) p" l/ ^/ R% r( D6 {ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
* w+ ?# s2 n2 @1 u7 W  _6 U; iTransferLog /var/log/hr.yourdomain.com/access_log % W8 Q3 k$ N6 A+ s; r
</VirtualHost>
. R1 l! i7 d8 @# z. p& q注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
; l+ N, p! v  ~: ~# v5 r7 V+ ]为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS ) b5 \  i6 i$ |
都指向IP地址192.168.0.1
5 o5 J- w) D- \9 B/ F6 f上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 * |: ]( t4 m( H/ Q
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
3 Z8 U7 |+ c0 ^- d" b若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
  x& _$ e' @. k1 x0 i提示:上面所提到的相对目录可以用绝对路径代替,如: : Z/ a  G% y. b2 N/ c
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot
+ a, \- v3 w% k2 [$ ?- e4 V==================END=======================
5 C1 E; _# N" ^5 _4 e这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件0 _4 T2 C. o6 l. V* T1 Q; C
下载地址:- C; F  `9 ?4 V; Z7 }! h& U" H
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那
! l! w' q+ A& w1 `+ a% b; S& C7 F怎么没图哈
1 o+ l- |1 a" j; U) z; P0 ~应该图文结合啊
& o" U, R# y7 k  Y0 ]+ e) I/ I' {

TOP

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