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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。
1 h' `, g4 Z$ B, I- {# w5 r' M( R) |9 E6 h
一、安装PHP4, }1 X, i4 Y9 e) {' D
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip0 g, F% f, o- A: Z& M* h7 P2 l3 H  ]+ J3 `
1.下载后,解压到c:\php目录下。" a' V. ^% Q- _
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。3 z0 v/ G# q/ u; x4 A
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。% \! k2 h: n8 i3 x" i% {
3.1找到register_globals = Off 改为register_globals = On4 u+ Z! }. v/ c# H1 g6 F
这一步是为了使部分旧的PHP程序能正常运行;2 x" z8 G8 D9 `( L5 E' L
3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
* o1 v) s% A; r/ ?' @4 _& B9 }以下内容新手请略过
( H7 Z* L9 ]. O2 o) N===============新手略过开开始================, O/ ]/ K# O5 j+ b# ]% ]' ?4 T
刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions) 6 Y0 h1 |0 z: s9 p0 p# p& L& N7 [
;extension=php_bz2.dll) Z" P: M5 Q1 l+ S% V3 R: E  `; Q/ ^
;extension=php_cpdf.dll
- F, e: J6 U. I/ H;extension=php_crack.dll  o8 J7 I6 `& q3 T9 x* c/ ~# n
;extension=php_curl.dll
# i, D, q: B- G- G5 h..... / Y. {  P) f# v) Y9 x2 C
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
0 D3 h% E* c8 X4 r. @( v其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
( ?3 Z, K4 P0 y如下面
4 n( w' x. L% m) d  }- Wextension=php_gd.dll
' g6 f! s  p: n, l: x;extension=php_gd2.dll: n1 T4 T" L# k( r6 n+ D9 e
按实际所须的extension=php_xxxx.dll前面的分号都去掉。
- r6 ?! ]' r' `8 J& F=============新手略过结束================2 W! p- `1 c1 O5 W$ }
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
! g* I9 L. N! S; u% D" @4 S: W, u并在C盘建立一个TMP目录( Q7 |: B: a9 k5 S/ ^2 Z0 }
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
3 y; l8 \! w3 N9 _) B! x. K================================================% r1 N/ o2 g' j, f
二、安装MySql2 G5 o2 {& m) o0 j# f
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
+ `0 v7 {! e+ Z/ _5 D* o; p按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;+ @3 f, n8 f, c% V! @" ~* @
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) 5 c% I+ e4 J, S3 \( B
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
. q% h& x0 j. t即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;, V0 M9 U% |& S4 ]5 A; U
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
7 F8 B$ @/ Y. |  [7 _8 N( `测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
" |; b% U1 R4 v; A' L第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
/ a- S, o1 i0 J" R出现: 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>
/ {5 `( }2 L" e; I. D+ ^2 c即安装MySql成功。$ p* V# k# [2 b  W# k* a& R; a9 n
==========================================
' _1 l& ^4 b" ^6 N# K4 f8 m7 T% Y三、安装Apache 1.3.x 及 PHP运行设置3 B: V2 i) U7 k- c, L) N
1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
7 k, ~! A! j# e( y+ x3 z, A: \+ k如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 $ x& D/ `) H4 M7 e' B1 H
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 ! P- E( N$ }- E6 {+ Y2 I- ?5 U
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
; H3 g* U  [. T6 g+ I6 }尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。 4 u8 G( H6 q8 C( C1 U) B
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装: 8 M$ I+ N  w) z( |
3 X4 a( L7 v/ r, G2 q3 J; q
ScriptAlias /php/ "c:/php/"
( c) R6 W6 [- W, VAddType application/x-httpd-php .php .phtml - e* P4 i* L' v6 W8 [) f
Action application/x-httpd-php "/php/php.exe" 4 A' {- F4 |% E) v) i8 ?( ]
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
* _# x9 Z& |' W  r- Q' X+ K! H' x5 R- m" H! |( h! j& G
警告 2 |2 H3 H% I9 {; C% R$ c+ d
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。 9 B; y- V# C  p+ R# d

+ R  O. K1 {: v/ ]; y! |如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
( @8 S3 Z! }1 t# {* T! [' W- E/ f1 i3 L+ W+ [* g
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行," Z4 k3 f6 z  X0 O
对 PHP 4:' |) \; {& v- P' o& }( O/ K
LoadModule php4_module c:/php/sapi/php4apache.dll
) F9 o/ V  y$ N4 X. X( _对 PHP 5:  F7 ]  |: v9 F7 K
LoadModule php5_module "c:/php/sapi/php5apache.dll"
( T4 P5 W; z, h你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
  K* V. A/ v4 x- O$ UAddModule mod_php4.c
$ u1 m( R' t" E5 {" ]/ q, u对于 PHP 5 则为:$ C0 H, l6 x  k! h, a' ?* B: F
AddModule mod_php5.c+ s/ m5 T5 L4 s6 n6 ~2 ^6 Q7 _
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
( m) ~5 d  {$ {  ~! H- v2 [  H9 @8 i' W
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
8 O& c8 J8 c* O7 S2 s# m有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
8 r5 Y6 {) R8 x& _$ w0 E如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 4 Z+ z/ h3 C9 n# x! c9 J" }
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。9 y5 Y( H: N! F4 q. F0 R7 Q9 a6 z2 |
============================================
* L; j. P5 U* G$ |6 L四、实现Apache虚拟主机的两种方案4 H* D% U/ a& o4 w9 @  J) Y. P
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
# v! U( a$ v: K4 M; L# _4 U6 g支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 5 h# n' s) O. Q1 j
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也
7 c- ]1 z3 G5 w' u3 d放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机 6 L4 a# d0 h1 A0 l
设置。
# P( R9 d+ W& o0 j5 Q设置Apache虚拟主机通常有两种方案
; l- {/ ?. \* e, d; c1.基于IP的虚拟主机 0 J. N% k9 |& m$ Y+ C
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 - X) n" ~3 X  ?0 Y
网卡上绑定多个IP地址去服务多个虚拟主机。
* _0 H" x1 e3 Y- ^1 o; S1 d若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 ; \! J/ P. A' `2 R
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
% Q/ R2 ~$ V1 @! M( n: f" }/etc/rc.d/rc.local,确保每次启动后自动运行。
+ P! A  U* c" y4 H; h" j#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
$ }7 m4 h" t, y% `( u! @192.168.0.255 up % B" M! {, v  Z* T* P
#/sbin/route add -host 192.168.0.2 eth0:0
6 \0 Z8 a. N: l, }1 C然后你需要设置/etd/httpd/conf/httpd.conf文件:   F5 u$ S0 s4 I4 k3 \1 u0 B2 b' a6 |
<VirtualHost 192.168.0.2> ' ]: e0 F  j  l6 ]$ h9 m, Y6 O
ServerAdmin webmaster@yourdomain.com
1 \8 K' g6 ^) \& _2 A3 vDocumentRoot /home/httpd/sales.yourdomain.com 4 ]4 X" V0 _" z1 d
ServerName sales.yourdomain.com ; B& t  a$ ?( Y* S
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log 8 ]. Y3 J+ i: j  |
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
# B0 n. ]. m; a$ x  f# y) N* i</VirtualHost> # W3 p" P2 _. R, `3 b" P' t3 E
然后分别创建目录 ' m0 b: h3 `+ D# i
/home/httpd/sales.yourdomain.com,
/ N/ q3 g; M$ b2 ]4 w& I7 B' Q* @/var/log/httpd/sales.yourdomain.com ' ]$ e. z- z4 E# [0 y! b
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 8 [$ k# s& g$ S, L
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
) i6 s3 y4 g& u9 c注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的 4 I' c) f( K( x: i% M9 a4 x8 ?
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 ; L3 r8 v; b/ d7 y$ z5 {2 S
方案。 ( l) n9 I4 ~, q: x/ b% K

% O! {! k' A/ s7 Z4 Y- K' U$ p2.基于名字的虚拟主机:
8 ]: e9 i  m6 s5 {/ {2 H0 c8 [  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 / w+ Z/ x  d0 ^$ g) D$ G
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
* X, ^0 M; c/ H+ @/etc/httpd/conf/httpd.conf 2 z, I; S- m4 `0 s4 N' I
NameVirtualHost 192.168.0.1 ) K; q: l/ k0 ?% f6 t$ Y) \
<VirtualHost 192.168.0.1> 1 O4 ?( o" ^- _+ u1 |$ }
ServerAdmin webmaster@yourdomain.com
+ \" N& G) x5 e+ k5 O! O0 LDocumentRoot /home/httpd/sales.yourdomain.com . S7 W. G/ f% g5 J4 r- \
ServerName sales.yourdomain.com " A" l0 T; B; T/ m4 j; |
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log : u1 n8 J' S( c  S9 C! F3 c* d  q5 F# g
TransferLog /var/log/httpd/sales.yourdomain.com/access_log 2 Q* D  N( _5 L, }/ T
</VirtualHost>
7 k/ ?! N3 ?) [<VirtualHost 192.168.0.1> 8 g, k$ J$ z% g# V4 ]3 i5 _
ServerAdmin webmaster@yourdomain.com
+ V% t3 N6 J# t+ f3 @DocumentRoot /home/httpd/hr.yourdomain.com 6 ~$ |" R+ c2 R. \# e$ P% c; y
ServerName hr.yourdomain.com
- T; |8 l9 {  B9 i) WErrorLog /var/log/httpd/hr.yourdomain.com/error_log
! N6 n& f" D5 R) ], S/ CTransferLog /var/log/hr.yourdomain.com/access_log 5 G# L; x0 `% c
</VirtualHost> 5 N* l0 K2 ]4 I& y$ F+ C- {2 a
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
. {% s" k( v, }) F8 P6 d. f为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
: i0 X) w) |8 V. |" ]都指向IP地址192.168.0.1
3 }6 f- g7 ~6 h上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 % \' {9 e2 y/ s% h) b+ p3 b  S0 a- H
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, % T5 G3 v) _" f7 J0 [" \; C
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 ! G# w2 v8 D( x/ @$ B4 }+ r, y
提示:上面所提到的相对目录可以用绝对路径代替,如:
7 i/ i% B  w7 @: x4 g9 v; K/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot/ z" p: b5 i# J; \
==================END=======================6 z& [! B% z0 m
这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件
7 f2 J( k' j( M$ ^5 N下载地址:. F/ C9 p5 R4 o4 n6 y* m% a9 m
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那$ P& o" I* E9 K. K' C# z
怎么没图哈
8 H# D- I4 I, }1 J应该图文结合啊' v  s! |$ J- h( ^" {  M6 _

TOP

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