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

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

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

" R% R! \1 m1 [+ |; s7 J; s) B+ @% ^一、安装PHP4
) b, A5 ^" b, T7 z! G' ]9 f1 K我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip8 _! @5 O8 g# H) I
1.下载后,解压到c:\php目录下。
  D2 r- \: {0 X4 e2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。
/ {8 s: b6 ^: d: K% c" G3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
' x: O4 p  x, `1 k: d% U3.1找到register_globals = Off 改为register_globals = On- ]; ?/ U9 z2 u5 R  u
这一步是为了使部分旧的PHP程序能正常运行;
. \! ^# ~, r: I& P3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions  D+ p. Y( S: O- }) ]6 U
以下内容新手请略过0 V  Q5 l( I9 m7 [; r
===============新手略过开开始================
  N& e/ m3 H3 h7 V刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
- i  j4 o8 ?) \+ p! }* f;extension=php_bz2.dll( H: m* G# k9 W9 v# q# J( C
;extension=php_cpdf.dll
/ A  g+ M  R9 c( G% h8 B;extension=php_crack.dll' X, d3 d2 ~  ?  D3 J% k* ^, |
;extension=php_curl.dll1 q" R+ O" C' `. m! P
.....
* s; I' U' ~8 g6 q要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;+ t9 g/ m1 Q: r& h) S' c/ @2 @
其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;" G' j1 W; I& C2 f
如下面
6 m  U% X! [- c& Hextension=php_gd.dll, r2 g5 R, E& ^& K# C2 ^
;extension=php_gd2.dll
7 y+ Z2 g; N& ~/ z" U& h% r按实际所须的extension=php_xxxx.dll前面的分号都去掉。
) `9 \# O2 }/ @% J& Z=============新手略过结束================' I% N6 a/ j- @3 [8 j
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
3 r$ F, x# a9 |( i并在C盘建立一个TMP目录
: G1 o3 W: B3 W9 S- Q/ D( K: m) U, S3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
7 P1 y4 {0 j  P* A9 Y================================================$ c' X' a. g8 u. e7 m
二、安装MySql0 P# I9 C$ i( A$ f' @
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
, n8 \9 c0 o; o# m& w; b按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
; O  |5 e* k8 V  |运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)
9 ^" W+ F# |+ u% Z从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口5 A7 D% s5 `8 A. K4 Z$ ?/ D- m
即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
  S, n! `' @. F7 J当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;& v4 v1 J% t. j1 r1 |
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
3 b$ y  U- M6 T2 [. M第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)1 K; b8 r% t9 I. W2 V
出现: 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>
2 Y7 u: \% M3 j即安装MySql成功。
& }1 c+ r8 w  G- P+ u1 `==========================================
' ~' H/ v( C8 W$ c- r. ]三、安装Apache 1.3.x 及 PHP运行设置
# B) r, Z' G7 s' S1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。6 P  y( }5 O4 i/ W: H
如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 3 N1 `( i( S+ J& G) ]% x6 }( T2 s
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。
% W- M% M5 R. R4 N6 M值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。 + n6 ?& M9 ]) \4 P8 V
尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。 ' u+ @& F" \7 ?  Y" P
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装: 1 c6 ]! G  o5 A0 K1 g! l* D
# Q; N) O# T  G# I4 W6 D
ScriptAlias /php/ "c:/php/"
5 X1 v+ J; Q, y" d# g1 t6 O# YAddType application/x-httpd-php .php .phtml - X+ E& |. N! @# N
Action application/x-httpd-php "/php/php.exe" 0 B- b5 f( `5 R8 C4 h/ g
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。 9 {' [4 @, u: `  k9 F
9 L0 o, J" n7 F0 G3 U2 \0 R- W
警告 ' W, X0 ~" ^2 z  g, n( [
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。 5 ]# l. ^" A3 b

7 `3 N# z( a: R; b* _如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
1 _: v( n9 P" H! o# v& E  o1 U) B2 f( X- N
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
. U: s* n, Z7 R5 ]! X$ F3 d, z对 PHP 4:
) [/ g, d% Z# [/ \( S- p+ u% }9 |  M* iLoadModule php4_module c:/php/sapi/php4apache.dll/ o) w9 r$ B) p: e, B
对 PHP 5:* y6 m$ P6 e" R, V1 \2 V: N
LoadModule php5_module "c:/php/sapi/php5apache.dll"
, ]2 Y$ i) E2 g' L你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
' P( Z% q- p; [8 n: CAddModule mod_php4.c
# l' w/ G: ~' o. q  W4 k; R对于 PHP 5 则为:
" a8 F0 g0 G* JAddModule mod_php5.c( J/ k) H$ a; D
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
& m9 z1 w& ?8 ~. `4 ~
0 D4 Q0 v4 ^; C, y% X  Q1 _' A修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
1 n/ G3 g6 f; @* m有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 0 R- ?" C( G7 H% l& r, B  Z
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 2 ?7 Y! L! K: g; W, a3 T3 ^7 b
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。
3 t* j2 U- _+ \) r+ `! J% N============================================
; ^5 M9 N% ^2 p; {四、实现Apache虚拟主机的两种方案  X# e1 c: J8 g) z/ p* v
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 3 z4 ?1 X: y" x$ O/ D7 M  j+ `! e
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 4 t' i. q) ], ?) I
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 6 m$ i5 c/ H, J& U* u# k. h" D
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机 ! o$ V8 [6 {) i4 t- A
设置。
8 d0 b4 U7 D' f) w1 U6 t设置Apache虚拟主机通常有两种方案 ! w  b' X( A$ h+ Q8 R; X
1.基于IP的虚拟主机 # R; b; i$ s; k8 a2 U% f
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 + t" W0 _; j! c! F8 R' f
网卡上绑定多个IP地址去服务多个虚拟主机。
, g0 M, X* o/ A0 g$ Y' v9 b若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 - S0 ?* g6 j8 M& ?  _: l1 R
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
* {# C4 X% X2 M7 m; a1 v7 m) x& R( l, f3 S/etc/rc.d/rc.local,确保每次启动后自动运行。 " ^  {0 z! N; F! v+ Z- m4 Y
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
8 t. n4 W+ c  n# B1 n; y. [192.168.0.255 up 4 X, J! d7 L* C$ m( [( t, m8 d
#/sbin/route add -host 192.168.0.2 eth0:0
2 w5 d& [/ S% @! B, h. |然后你需要设置/etd/httpd/conf/httpd.conf文件:
) Q" H) r, y2 T. t- T. G# s<VirtualHost 192.168.0.2>
; c) G: q( E) D# cServerAdmin webmaster@yourdomain.com
- \& q  x8 o/ j$ sDocumentRoot /home/httpd/sales.yourdomain.com
6 r) ]6 c' q& `4 U7 fServerName sales.yourdomain.com . \/ z9 B8 S7 X5 O; I% B) |
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
* E% t" h# p; t! y# b" KTransferLog /var/log/httpd/sales.yourdomain.com/access_log 7 M# }. K/ }0 P5 }' m
</VirtualHost> ; h* B, O, ^+ w
然后分别创建目录 % R7 v; }6 }, Q5 K7 T
/home/httpd/sales.yourdomain.com, + Y. W% c0 k* g! c; o0 H& _: w
/var/log/httpd/sales.yourdomain.com $ K& D* Q* G. L
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 5 S/ q* v) c( ]- k% o5 \9 |
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
* j8 [  O0 \7 e1 [! m' n& ?! Z注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的 , ?( k0 L$ c! n/ [
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
( r- W: t: d7 O) I2 Q* w, i2 _方案。
% U3 C% g/ X* b* X2 i
% d* ]( y2 k! {( ]; k2.基于名字的虚拟主机: 5 j* Z* Y8 H: u5 R2 E& j
  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
$ Z; \& U0 }" M8 n, m浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
/ U' @/ _6 y9 E& V/etc/httpd/conf/httpd.conf
8 x, P! R. n& P/ `5 {NameVirtualHost 192.168.0.1 % |: `. y3 h4 U- W3 X/ m2 u
<VirtualHost 192.168.0.1> # ^9 p! b) }3 G4 s* Q, t6 e7 q6 N
ServerAdmin webmaster@yourdomain.com " i  W8 K5 w! Y- ?  A3 `3 k
DocumentRoot /home/httpd/sales.yourdomain.com * J; Y/ P( h% r5 O2 f  s
ServerName sales.yourdomain.com
- `/ K9 m: J$ x) AErrorLog /var/log/httpd/sales.yourdomain.com/error_log 5 w: V; a3 b' g8 b6 `0 D
TransferLog /var/log/httpd/sales.yourdomain.com/access_log 3 F( {% |( c( F. w
</VirtualHost> ; w. S$ t( H7 J  v
<VirtualHost 192.168.0.1>
; T8 W5 Z1 E, y' ]9 ?$ p* c1 {' tServerAdmin webmaster@yourdomain.com . F2 f; P8 w$ L9 k6 U
DocumentRoot /home/httpd/hr.yourdomain.com
3 n- A- M! v. {, O. EServerName hr.yourdomain.com * w' o6 [4 i8 O/ C: P0 _  H  b4 J. |
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log . T) c$ v+ }# A9 c
TransferLog /var/log/hr.yourdomain.com/access_log 5 ~: E- P( `; \' C% Q4 y
</VirtualHost>
- Z5 r* y' g  p+ z: r注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
5 ?( ]6 D. B, _为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 9 Q6 \1 X+ G7 o/ I7 I( x- t
都指向IP地址192.168.0.1
0 R, w7 Z4 F$ b! U3 C* |上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 & W' d$ _6 J/ f- e" \
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, - G3 m  E  T+ [+ S
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
7 m5 e! x: E' g1 x6 r提示:上面所提到的相对目录可以用绝对路径代替,如: 3 x  Y% {, |, _- \; x" R: k) Q
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot/ O( F* A, b0 `* c9 v, H4 q
==================END=======================
; Q7 a0 c7 |2 h这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

亲娘那
1 Y8 t9 D, \- b$ u9 V" }4 l怎么没图哈5 v4 H. {# v# V$ Z4 x
应该图文结合啊; g6 @6 ?7 t+ b7 }8 W5 O$ D2 }7 `

TOP

另外可以用一个安装包安装全部PHP软件( R$ G/ ^2 l. ~2 j$ a! M7 E
下载地址:& ^1 W( t5 u6 a1 X2 _. d1 ]# W
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

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