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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。
+ _( T: p4 `/ ~& p
' c9 ]& B) H" L1 `! K1 |, j一、安装PHP4
9 y8 ]) [- y! F) K4 L% }& }: q我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip) B+ Z: w$ j& P- h" Z6 G9 |4 t1 b
1.下载后,解压到c:\php目录下。1 j4 R+ E+ d; p
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。& N' f' k1 m6 [. V
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
9 H7 C. s4 l5 m) G( D6 J3.1找到register_globals = Off 改为register_globals = On
% v; t/ m$ y$ Y这一步是为了使部分旧的PHP程序能正常运行;
! I) e2 ?4 d% D' `/ p3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
9 d8 \" M4 J+ n7 w" s9 C以下内容新手请略过
+ j3 k2 x0 l( |9 X6 \9 s& H+ O4 w===============新手略过开开始================
# R. d2 G# K% f9 I刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
/ Z9 E: ]9 C6 [( K# Q( v$ q;extension=php_bz2.dll! C8 C' m; S& K& [
;extension=php_cpdf.dll
' f% q% g4 B  d" D2 j' L; A;extension=php_crack.dll% s8 V2 J6 y: t- S9 q& M
;extension=php_curl.dll
3 P% O4 J3 V* `# n6 Q8 g" Q/ [..... $ `2 k6 Q0 x3 j$ o. w
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
& ~/ j; m* m" ^$ K6 y) I其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
3 I: o7 e3 l6 U6 r+ f如下面8 R! v! e4 V- R
extension=php_gd.dll4 N4 m/ [! w# e4 S9 T0 R- Z; v3 b
;extension=php_gd2.dll
8 R+ J/ T6 k* ]# t按实际所须的extension=php_xxxx.dll前面的分号都去掉。* E6 v# |" i+ V( C, j2 [; X
=============新手略过结束================" x+ x6 k" p/ F9 @
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
8 P" ^0 `$ ]+ Q0 |7 q$ S- D2 A并在C盘建立一个TMP目录  e7 k: t7 F# T9 u# s  ?
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。% Z2 V0 e8 r2 M! A1 ^% b) Y
================================================
# n$ {: B; Z1 I8 s" V& c& s二、安装MySql
$ a1 d, I8 G/ [: u+ _; q  b安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;8 d8 k6 E+ t& f$ g: Z+ I' g
按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
" h. v6 s  C, @" A  G4 S4 ]3 e运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) / }8 ]% @% A1 D7 i
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口/ [* b  C( W9 U+ y/ n
即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;1 U% B: {# k/ w2 ~6 r. ]
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;4 P4 x; `  z! ~) v& b
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
7 [( k$ D) |0 y; b8 ~9 k第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)' l0 T7 A3 @" D) D7 Q( O
出现: 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> . Z' Z0 b7 n0 t1 ~, }9 u* x# b: Z
即安装MySql成功。5 H. ?) ?$ B8 l2 K' O. {4 x
==========================================
( ]) D+ n! o+ t2 p4 m8 g0 d' L三、安装Apache 1.3.x 及 PHP运行设置
9 v0 \+ J6 s" U; U/ s; L1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
3 h* m! D! l3 p9 B9 y. y( d  g如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
, B  C. `# [3 q: F9 S有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 $ [' D& f7 E4 t
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
1 u6 v! ?6 P7 E尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
6 w8 u3 \; w( l* \如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
5 M' i8 w, |$ e" Y! \
4 g. Q% z+ i, S+ h7 A" GScriptAlias /php/ "c:/php/" $ {4 N& R9 {- o& L% v1 ?" i1 d
AddType application/x-httpd-php .php .phtml 5 I# L8 _: Q9 T( V! x' Y
Action application/x-httpd-php "/php/php.exe" $ J: R# k/ s, E# B: Q4 m5 X
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
; b! o" L# d5 V5 o
  l9 d3 z4 L0 u4 V$ B3 M  X警告
, O! R; k. i+ f( p在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
' ~3 E% i+ u) w" h; l. [0 q8 U( `- h; u5 t- W  g) b* x( z
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
$ p: `$ i/ U" [
. p# x# s" a* ^$ U用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
/ h: ^7 q, I3 Z+ {% G) V对 PHP 4:& o6 K" T( X3 L1 k8 F& @7 P+ p9 w: a
LoadModule php4_module c:/php/sapi/php4apache.dll
! c+ g) O1 V7 P* S; T对 PHP 5:" w$ \, `: x9 o& ~0 E
LoadModule php5_module "c:/php/sapi/php5apache.dll"* q: Z; Q0 ]/ O4 Z1 }
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
: m* X  U, [* c8 u5 W2 JAddModule mod_php4.c
1 `: H3 ^7 r8 ^( |/ q& d3 T+ o对于 PHP 5 则为:# Y0 b0 c$ t, A8 y
AddModule mod_php5.c1 b6 a1 w' e" l- Z
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
0 [$ ?9 j8 e5 _8 J- ^8 P8 `( N' g# X/ i# O# W
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。 : O# \0 D6 @5 Q$ Z" c5 _
有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 + z0 s, e  l3 D: X2 A
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 . B; X- \, ~0 J5 i, s2 _' e$ [
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。6 w, t$ \2 E' n" u9 l' x
============================================& ~6 m8 Z0 `* m. X
四、实现Apache虚拟主机的两种方案
4 k$ `" a: a3 R% u4 H简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 ' W+ e6 E9 c- |0 I3 l
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
7 K. g5 y. p! b; Y- U, k/ \account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 ( P8 R9 I  r$ Q9 `( K
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机 3 W$ I; \+ g7 K$ Q1 c& w4 K* o
设置。
. E+ a: v% l- G5 a, S3 R+ ?# J4 u设置Apache虚拟主机通常有两种方案 2 Z) ~( ]& B. \9 p8 l0 Z" n
1.基于IP的虚拟主机
7 L9 Q7 h  s" n  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
3 k* d# S/ _3 N网卡上绑定多个IP地址去服务多个虚拟主机。
4 D$ s; G' o% H1 R0 h3 S& A若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 ! ^2 c0 i7 A9 Z( O/ `
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 & U9 Q- q% A7 P" O% W# G5 \
/etc/rc.d/rc.local,确保每次启动后自动运行。 . g: E3 s3 q" h7 A) E( h
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
( T2 s8 L$ Q" P0 P! C192.168.0.255 up 3 y* \9 i9 B  M: z1 i- x. P
#/sbin/route add -host 192.168.0.2 eth0:0 ( Y9 d$ k/ ]3 R) l
然后你需要设置/etd/httpd/conf/httpd.conf文件:
% Y/ d6 v/ O% w; c0 w$ v<VirtualHost 192.168.0.2> 3 D' T* l! l2 q$ f* O
ServerAdmin webmaster@yourdomain.com , f, [. T6 r4 v, B. }& d# Q
DocumentRoot /home/httpd/sales.yourdomain.com
; v: V+ Q. l# I* \; b9 DServerName sales.yourdomain.com 0 B/ J% C4 @6 j. i9 S1 Z. [. ]
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log 0 z; [5 X5 T7 o8 y9 a. l$ n
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
# p- @$ N. e3 ]% o7 i+ |: m</VirtualHost>
/ P) j" n0 A" l2 f3 d8 h& m然后分别创建目录
" q( x" K2 H9 s5 [/home/httpd/sales.yourdomain.com, 6 O- [) }: t) o6 ^
/var/log/httpd/sales.yourdomain.com
0 ^8 r$ ]8 P, E2 G1 ~放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保
/ g- C- W! p# [* v* G; A" [你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
! I3 I0 s* z) q2 f& e注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
7 o! d  j9 ~! T$ O虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 # G, c3 G* i, D  Y# L% p; |% |7 l
方案。
9 B" O: w# M! b' _" [
( e8 m3 S; n; f" a* m2.基于名字的虚拟主机:
4 x  R. V. }0 D1 w/ j' W  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 3 E! Q' \; ]& e3 L8 k, ?
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件 3 O0 s: A/ t' R, d  q
/etc/httpd/conf/httpd.conf
" T7 ~9 N5 y9 m9 p/ E0 DNameVirtualHost 192.168.0.1 / d- I$ L( R0 b
<VirtualHost 192.168.0.1>
; g* `: ~5 \" v; m) HServerAdmin webmaster@yourdomain.com 1 {) m" o, w/ [9 _) f8 S& l
DocumentRoot /home/httpd/sales.yourdomain.com 7 {/ e' t) D( I: H2 }1 }8 N8 b& l0 j
ServerName sales.yourdomain.com 1 A* y. Y" f; g' h$ r
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log " j1 D4 x- \6 U: R
TransferLog /var/log/httpd/sales.yourdomain.com/access_log # p- \5 W( |8 t2 P
</VirtualHost>
8 e% ]" x9 E) f1 a, e<VirtualHost 192.168.0.1>
8 t/ y! t0 H" T5 H7 p( LServerAdmin webmaster@yourdomain.com
/ K, _9 I( n6 @& q1 MDocumentRoot /home/httpd/hr.yourdomain.com
; y: e' l) e- {* |! l! [4 V& yServerName hr.yourdomain.com
: ^/ B# ]& G- }1 ^0 cErrorLog /var/log/httpd/hr.yourdomain.com/error_log 6 S5 r4 e3 R/ ]5 @
TransferLog /var/log/hr.yourdomain.com/access_log 4 P) l  E- c* e' p) g
</VirtualHost> 3 C' D& T0 P% J$ a4 s6 |
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
  ]1 l" O; m8 ~8 O为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 0 S: c* ?! r: Z, Q1 z- D7 Q
都指向IP地址192.168.0.1 " U2 \  v4 ^+ S* M
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 4 z$ f" C0 H, D& M$ e
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, 4 l$ ?% S1 Z: B
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 2 x. y0 B$ a7 w8 T2 ]
提示:上面所提到的相对目录可以用绝对路径代替,如: / O4 d' n/ ^; [' H
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot* P' m9 T3 U& v, a9 O
==================END=======================% t3 M$ {; Y$ R
这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件* Z4 e; V$ k$ Q$ X. {
下载地址:
3 M8 ~8 L5 z. hhttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那
+ Q# _+ @$ }3 o& x( r怎么没图哈
! I( ^6 M5 s- @4 d应该图文结合啊3 M* |7 O) ]0 @4 _( p  B3 G" `

TOP

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