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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。. n8 b( v+ ~6 _

) B: Y- A8 z5 n: O$ O9 _5 m# k- S7 X一、安装PHP4
3 s2 |( x- D/ n9 p我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
2 T  S3 L) x/ W; G2 V: L' J1.下载后,解压到c:\php目录下。' |5 ~; W) }3 ]; B; Q: ?
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。$ D  |( o: F1 Q9 ]
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
( e& o1 Y+ W' X; q* i3.1找到register_globals = Off 改为register_globals = On
  O" V2 f% p0 M9 S这一步是为了使部分旧的PHP程序能正常运行;
4 f- P5 K; D1 y2 ]9 u( Z3 z5 E3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions& ~7 x* D7 z9 E  z& [1 G# I
以下内容新手请略过/ D# ^3 U% c" @/ H$ W. _
===============新手略过开开始================
: p( K4 p$ I; ^# J9 _+ P1 J刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
+ V! g3 c" ]' N# y# _: v;extension=php_bz2.dll3 s% O. z, d$ U% ?9 ?- e
;extension=php_cpdf.dll6 ]* [7 `0 n, R9 L; c9 _# |# W
;extension=php_crack.dll* Y- u% Q, j7 d2 G; u7 U% }, j
;extension=php_curl.dll) j8 N+ ?! G/ c# {( E; c
..... ( Y$ b! \8 l( a5 u8 D8 I5 f
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
5 N8 T& T1 d5 Q: g' @5 l" T其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
* F' K7 R+ O2 M9 F* @( T如下面  V1 m( n) S/ C: J8 j7 a' S6 q
extension=php_gd.dll
7 |1 c0 S& K  U) ?$ E8 s" ?;extension=php_gd2.dll5 _; y- ^" o) Z4 A( _3 z$ ~
按实际所须的extension=php_xxxx.dll前面的分号都去掉。
- @, I. J+ t9 F. H  K/ y+ x# x=============新手略过结束================
) ?( i7 X. K  [" }: o3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp; O: @$ U1 _9 T% s$ Y
并在C盘建立一个TMP目录; o( V: U# r! e/ n
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
+ U3 B$ `8 E, Y================================================( U, v, g' H6 |4 N
二、安装MySql
! a5 n  I& I: I$ ^3 u安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
, t) J& `" n" @4 w按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;6 R% F8 o$ f4 q+ H
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)
/ B. U+ N  f8 \3 B% m$ s: e从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
( M5 }% I, |7 N; T" m4 o/ l即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
/ Q* S  Y8 y$ c当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;! s) ?9 d8 E+ W# \8 ~- G
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
& s: k2 g7 ]* o. L* J6 G3 w6 ?% ?第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
' X7 v( p; C7 m0 S* |* Y出现: 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>
( V5 s7 a3 d! u即安装MySql成功。
2 h8 B! G) m8 q% i- i; L+ m==========================================
0 F' v5 o7 T  ?  @" F三、安装Apache 1.3.x 及 PHP运行设置, ^" L% J0 m6 H8 Q6 O; w: B
1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。& ^) C8 [$ l4 Q9 x9 K9 ~
如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
3 q7 Y2 \  C/ v  s/ |$ ]有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。
9 ?# L6 M0 r6 H, X: G' O) B值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
/ K3 ~6 W* \' k6 q. I尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。 + }1 p- L) Y2 U" R( z1 n2 ?
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
% b/ Z" f- N5 F& |8 o
, @  k, U4 D0 A6 O" mScriptAlias /php/ "c:/php/"
) E6 Y0 @, |1 n) ?% I; I# oAddType application/x-httpd-php .php .phtml
( X) i% Y. y# q  kAction application/x-httpd-php "/php/php.exe"
7 M2 h. ~( v: f& @, \" m* U: g注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。 9 ^/ X3 j! u9 y

. `  D0 {4 [! L3 E/ ^警告
, g" N: r; v1 |( Z4 j# A' n在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
8 p. A: [% }) N. ]; v/ T. f1 n3 f+ i: j' f2 e3 X
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行: & C/ S6 y1 p% T- g4 E, R

6 _. \' d/ b  t6 @5 C0 o" m用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
+ ]7 |0 B8 [" b- a2 d对 PHP 4:: ]+ s. \4 H6 D( Q5 E3 T7 K
LoadModule php4_module c:/php/sapi/php4apache.dll
' j. i9 t7 |! F8 `" n8 J6 ]5 }: _对 PHP 5:
. W4 A: e! m, ]9 nLoadModule php5_module "c:/php/sapi/php5apache.dll"
6 k1 u3 c8 @& q% B" Q) b你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:& p9 v- |4 \3 |: |; t/ d: u( h
AddModule mod_php4.c
9 I+ m4 ~) Z/ Z- c  h对于 PHP 5 则为:; [. b1 o# ^/ [4 W1 r
AddModule mod_php5.c1 w9 z$ w& t& C' N/ I! P
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
! a1 P0 |" U; X* Q' @* j/ \  `/ m& [- d% R& i7 A2 `/ }
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
' {: l8 o1 |" @# L( m, l/ k有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
8 b. E% l6 Y; n# j$ }) O6 f  Y如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 # a- v" e0 @: S% u, X4 ]% Y
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。) |" y3 ?* a4 }3 o, Y
============================================
( s$ u4 X- d- Y8 \四、实现Apache虚拟主机的两种方案3 f1 _1 X* k1 \# c4 `* n; N* c
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
. Y" A0 M  T& n" H% [5 a/ U支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
4 N0 b; f# {- O+ f) Kaccount.yourdomain.com,同时又想为sales部门建立网站,网站内容也 1 a6 F% d) R8 D+ D- ^
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机   e) G2 y$ g. ^+ q
设置。 5 D* g$ d7 j7 \
设置Apache虚拟主机通常有两种方案
6 q# n2 N/ ~1 Z" L5 e; L1.基于IP的虚拟主机
. e2 _4 p" D9 V  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
3 }5 ^& O# D/ V' W! f3 N网卡上绑定多个IP地址去服务多个虚拟主机。
" |. F0 Y( }9 \9 X若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
: O5 _/ J$ [# e6 P$ n& O! r你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 - k$ {  e+ P2 ?+ `: Q" `& B
/etc/rc.d/rc.local,确保每次启动后自动运行。
! r' g. l9 l9 @7 \/ I% z#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
) K% u# m' q. G: z$ Q192.168.0.255 up 7 @' Y& s0 o0 ?/ M/ _
#/sbin/route add -host 192.168.0.2 eth0:0 " P! J+ L2 `5 u
然后你需要设置/etd/httpd/conf/httpd.conf文件: % b* N* y0 m' p+ A5 b- F& |
<VirtualHost 192.168.0.2> + V7 u7 H3 y0 i& b/ [
ServerAdmin webmaster@yourdomain.com & E) g" l/ g' |, {& |+ N
DocumentRoot /home/httpd/sales.yourdomain.com
9 U! v" ^/ U. U8 J$ ?ServerName sales.yourdomain.com
* ?% {$ B. P, N- F; Y  r' DErrorLog /var/log/httpd/sales.yourdomain.com/error_log
5 l' E4 d! ~$ G% |) yTransferLog /var/log/httpd/sales.yourdomain.com/access_log
8 w# {; s4 d8 ?9 x. \( \</VirtualHost> - k, |* d9 M8 i6 X8 d, Q
然后分别创建目录 7 W* D' c; s0 G1 ^
/home/httpd/sales.yourdomain.com,
- ~+ O# S1 O/ \/ {+ M/var/log/httpd/sales.yourdomain.com - ^( s1 o( \: }) g! s4 j
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 . B' m6 N: q0 M5 E& g9 l1 P  p0 C
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
8 {* F2 ]$ Y& n5 V3 e注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
8 \  f- {; P+ m( i' I# Q! f" l! ]( C虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 # W7 |7 \1 }: O
方案。 ; x1 |# |, }( e4 t2 {" y* g6 i

. u6 t6 R3 c+ K2.基于名字的虚拟主机: 3 m7 z+ }. L! Y
  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 ! v6 q! p5 P$ L+ F
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
. W9 E) U, x' F6 K/ `2 u: Y/etc/httpd/conf/httpd.conf 9 V5 v1 @6 P2 v$ h; u9 d
NameVirtualHost 192.168.0.1
* d* Z& e1 R9 J  a7 s- x1 t( Q8 I. R; G<VirtualHost 192.168.0.1>
; ?+ f! E% m8 e2 X7 iServerAdmin webmaster@yourdomain.com . u3 {: m" M' ]1 p
DocumentRoot /home/httpd/sales.yourdomain.com
9 X+ B5 C% X/ |2 Z2 ]2 H! vServerName sales.yourdomain.com
* Y) X  r2 T, ^  I+ UErrorLog /var/log/httpd/sales.yourdomain.com/error_log
; e. F" ?9 `0 H/ b/ R  }7 X! y4 _TransferLog /var/log/httpd/sales.yourdomain.com/access_log
* _/ o+ F: ^+ c0 ^& }+ u</VirtualHost>
( W1 R5 Z' |$ l<VirtualHost 192.168.0.1>
# ~1 x1 j* a9 l9 ~1 a2 p4 KServerAdmin webmaster@yourdomain.com
9 y# f- y* J7 c* F5 mDocumentRoot /home/httpd/hr.yourdomain.com , `( \9 [' g7 {5 Z
ServerName hr.yourdomain.com
% x* ^& \8 k, @/ o2 N1 a( _ErrorLog /var/log/httpd/hr.yourdomain.com/error_log $ n2 ]& q. H3 s4 z$ L* W1 d1 l# d
TransferLog /var/log/hr.yourdomain.com/access_log
# h5 k' i4 A  B</VirtualHost>
3 x+ y7 r0 K5 l: b6 }, K0 f注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
0 v/ y0 D6 S1 O* k% a为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
4 U1 M8 B0 J) m# [7 l% L7 B都指向IP地址192.168.0.1
# S9 I3 y3 v6 z. Q% s上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 ' M7 K* t( o, Q6 H
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, # @7 l4 q) ?  ?! q
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 7 l1 `7 a5 k$ W: T5 l
提示:上面所提到的相对目录可以用绝对路径代替,如: & k9 t7 _1 @/ R
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot
: Y! s; l/ S* B* b7 X$ L==================END=======================
# x6 ~% V9 m7 `/ _( `4 J+ m) B这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

亲娘那
8 N4 s- W: E0 H% o+ ~怎么没图哈
  a# a, R" H8 V. ]- M4 U应该图文结合啊6 ]# }; m7 Z1 g: @* ]

TOP

另外可以用一个安装包安装全部PHP软件- ~' ^- L* F/ ^3 Y& [  m: N" X
下载地址:
* u% W* o" d& a/ n3 b! G$ g; x# Thttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

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