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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。0 ]1 o( p3 ?( D  r) i# B0 E& y

2 T( [  k9 @* C; l$ n* B一、安装PHP4
' {4 ~( d; R% p$ B2 m; Q. \我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
5 s8 T' j* \* M$ |" S* |1.下载后,解压到c:\php目录下。
% e' a1 V, t. D: F4 q2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。& k3 M" o9 q2 _# c2 a
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
7 k  T' v2 _$ v1 W3.1找到register_globals = Off 改为register_globals = On
  U% z9 t8 ]3 H6 R9 ?' _8 O: }) W这一步是为了使部分旧的PHP程序能正常运行;1 ^' f0 o5 E# n
3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
" U  A% O) G% b  B7 q3 E" ]; k以下内容新手请略过/ H4 A# y) ?: x) p/ \" k) C
===============新手略过开开始================$ l5 [. D' U" @' f, Q( u7 f0 p  H3 D' |
刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions) - A1 U4 M9 [( E% z9 T2 q
;extension=php_bz2.dll. L1 t/ ^; G: B! o
;extension=php_cpdf.dll
; M, D) H; p" v9 [! s;extension=php_crack.dll
! r* ?: y( R/ E  U; T1 D# O;extension=php_curl.dll
- e8 d- C, E. Q% c..... 5 Z0 l$ Y! C: o6 L" y
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;# ~* n. y) K% E  m8 j6 X( C
其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
0 x, Z  }8 k# T如下面, S2 Z4 d7 [# N( w& g% m$ p
extension=php_gd.dll) o/ i) |" H# Z: c" @
;extension=php_gd2.dll
6 C. V- l6 Y- [9 ~+ @# m9 I3 _' s2 c按实际所须的extension=php_xxxx.dll前面的分号都去掉。( O" G: H4 A* \, y7 B% ^6 b
=============新手略过结束================8 h$ |8 n/ a/ Y
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp8 _4 Q9 y' V% ?2 L& E$ l7 B
并在C盘建立一个TMP目录
5 y1 k3 {3 Z. G! w8 P3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
- U% l* T) j& y& f( V) R7 @================================================$ T2 _  g' W( n: _) ]9 c
二、安装MySql
) a* J3 k' ~! p1 C) [安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;) }, w) [/ q" X! {* E+ L
按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
2 X6 y2 q, d8 p* _7 K8 a& e运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) + W! ?: O9 @! `8 x3 \( o- M
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口' Z4 f* X6 O9 c3 t5 i& G: b& D& A
即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
! \; ~% X/ `3 z1 A0 j5 M8 v当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
4 S2 Y% m1 c, ]测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
( Q, v, k! ], ]9 U第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
4 F: t  |2 d! i' f, e4 b" ^1 ~# Y; l0 M出现: 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 K# k# R$ c% w: p& g9 u+ Z( A+ ~
即安装MySql成功。$ D2 {8 u! ^( L# D/ `# p7 m' L
==========================================
( t. n7 W- T$ K+ \三、安装Apache 1.3.x 及 PHP运行设置
' Y+ [; {* T" J1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
( o3 W, Y0 m3 D4 ^# w如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
. ?! N% d6 H, C有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 0 M+ n. T: g& u, F) E0 D. |
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
5 s6 U$ e) ]% m- |& \" V尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
) `& ~6 [  F0 G! i- Y3 O如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装: % H2 q: K7 m3 M/ d4 e: x( a

& E& T* Q; R4 a: n- N6 ^9 A+ mScriptAlias /php/ "c:/php/"
: T3 `9 N& B* f2 I, ]6 u8 tAddType application/x-httpd-php .php .phtml ) v1 y, L2 c) J6 @% T
Action application/x-httpd-php "/php/php.exe" / E) \7 d3 u6 e* r  x1 D/ i8 L& }3 o
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
0 W& S/ Q( O. t2 `0 h5 K( R4 B+ I1 C! d5 P  G7 \5 |2 g3 D
警告
2 ]/ N8 _& y# f9 V) t2 h在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
* A# L" I8 ?$ y$ S: V3 F
  S1 u( v5 c- _9 M6 U如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
9 e3 s2 U$ j" U% ]* m7 h
0 b( i& ?/ K6 ?用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,) }! P% b' Z3 P. b
对 PHP 4:- @4 C8 j0 v  w+ U
LoadModule php4_module c:/php/sapi/php4apache.dll
* |/ N9 U, R0 e对 PHP 5:
# A8 E& ^( G/ yLoadModule php5_module "c:/php/sapi/php5apache.dll"6 Z: H6 R, x4 F3 {
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
& U! M& y9 h$ o# v2 a9 wAddModule mod_php4.c- C: N9 t2 B' f2 t5 V
对于 PHP 5 则为:( B# Z5 n6 t' y  c
AddModule mod_php5.c$ ~  q/ @# V2 i. I* f: S; m9 Q
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。 : _8 Q" Z* s! u" o0 P' I7 O

6 n/ m' |" \3 o& _  h0 r修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
. Z9 ~! _4 ~& y$ ^8 m有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 & j! L* D! s; U* a4 t) D  \  K8 e
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 . `0 J! X* r" r8 v: w
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。9 j' M; v( \! z; W3 W6 C" W
============================================( T3 b; o/ I+ r, U+ C% P3 \
四、实现Apache虚拟主机的两种方案0 u2 ]% k) l' ]% e# N2 S
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
. |  f7 ]% k$ U5 b支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
: s: l, d1 A  C$ H. w/ q9 waccount.yourdomain.com,同时又想为sales部门建立网站,网站内容也 0 L# Q. _4 f& y3 T
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
4 b7 Q8 V: c' i3 r% O7 ~8 W设置。 . _$ @$ o  F- X! J: H$ {2 l" o( U, K
设置Apache虚拟主机通常有两种方案
6 F# }# S# T* a$ M9 o2 C1.基于IP的虚拟主机
- f) ]) D# Y2 v" I9 R2 a; L0 V$ N  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
  K, N& n8 S: M5 \& W) F8 g网卡上绑定多个IP地址去服务多个虚拟主机。
# p2 M6 {/ c( @若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
1 N4 ]8 X+ Q+ F) f  V你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 : J& ~( E4 i  Y# o: O8 Z
/etc/rc.d/rc.local,确保每次启动后自动运行。
# O, D" g; s5 V. c' C& w#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
) y; P2 t" e. q1 a0 [( g192.168.0.255 up
: o& ^) V. x, f1 _- I#/sbin/route add -host 192.168.0.2 eth0:0
: V0 v+ I% i/ A$ e, ?+ e: Q! c" ]& r然后你需要设置/etd/httpd/conf/httpd.conf文件:
, U+ O5 `3 B& l1 |9 C5 v<VirtualHost 192.168.0.2>
3 N2 ~4 v$ J5 h, k5 n& X# aServerAdmin webmaster@yourdomain.com
! R! t$ i+ M3 `7 CDocumentRoot /home/httpd/sales.yourdomain.com 1 {8 s7 o9 a( s0 Q. C
ServerName sales.yourdomain.com , W& G/ \4 m+ E. }
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log % R; i8 D% A! A5 P) h6 Z4 ], }
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
* K7 M* e! }& i# t</VirtualHost>
/ N; [5 W: P, B' Z  S然后分别创建目录 ( h+ h4 y3 M, K& ^) E
/home/httpd/sales.yourdomain.com,
/ G' o  A8 j. w8 E( H& F, }/var/log/httpd/sales.yourdomain.com $ u4 @3 o% V# j+ N- n* f
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 , }/ |9 f3 U0 K$ \+ f) k' _
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。 ( D+ C- t) z* X
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的 " ~# Z* D$ X" P; s, d, V: }
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 ' {0 K# @$ ]) Q/ m
方案。
6 W" s6 }7 k% N
5 P$ _7 P2 t; j3 [  c2.基于名字的虚拟主机: ' F. N; B7 Z) c1 l3 B
  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 3 |) O' k4 ~7 k% c
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
5 z) u4 U" Z0 N; J0 O# `4 e  M9 e/etc/httpd/conf/httpd.conf
0 g4 S2 J! Q& o- c1 s& L' s' K6 hNameVirtualHost 192.168.0.1
* E3 f% O' _  `) f: _<VirtualHost 192.168.0.1> # v' w: z/ o! Z" C/ y
ServerAdmin webmaster@yourdomain.com
4 k+ F5 {) L+ P' {0 H& TDocumentRoot /home/httpd/sales.yourdomain.com
4 ^% A) _$ M1 u  oServerName sales.yourdomain.com
9 a/ n3 f- V, i; h/ k5 gErrorLog /var/log/httpd/sales.yourdomain.com/error_log   ~6 p4 n: z, |6 D5 X5 i) F
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
' J1 U; ^8 ^! d# I7 A$ o</VirtualHost> . B4 a3 g/ I$ F2 w+ X
<VirtualHost 192.168.0.1>   R3 v% P& ]1 L3 j& ^
ServerAdmin webmaster@yourdomain.com 4 S: W3 n) ^, k" k; m5 {3 x
DocumentRoot /home/httpd/hr.yourdomain.com 3 e5 M/ m( m$ B" M
ServerName hr.yourdomain.com
% N. {7 o8 ?+ Q# ~ErrorLog /var/log/httpd/hr.yourdomain.com/error_log 2 D5 m, b, M. p5 t9 M
TransferLog /var/log/hr.yourdomain.com/access_log
% E9 M# X$ k0 r8 Z4 n9 t1 S</VirtualHost>
% t! ^9 W5 Y7 L4 ~0 o  |9 c注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机, & _- P$ w9 O. a- ]6 {4 m
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS + J% ]" }+ k1 o1 I3 d: u; F/ r( m
都指向IP地址192.168.0.1
9 a, ?0 x4 _7 `" ~. w上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能
! Z: }) O3 |  `4 f没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
1 k- T6 q; N: ~' }% Y9 c0 G7 O若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 ! m3 [8 E- c; C9 x8 P( m5 U$ K7 ]
提示:上面所提到的相对目录可以用绝对路径代替,如: , u. t6 p" L: U3 k
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot
1 Q0 g; _2 o4 l) K==================END=======================) W9 }/ P! \4 V* W
这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件
+ S8 z! D1 n" [  l. c/ ?下载地址:0 o* e  t$ r8 H& ~7 Y7 \
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那( i4 N0 v3 i5 G" u: P% R5 ~6 [: ~4 I
怎么没图哈
: D3 o7 S/ P( T* q) X9 ~应该图文结合啊; t' @) w% {9 B: ^

TOP

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