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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。
5 y& {; _$ f& c% K6 Q
9 [% S$ d2 j; s) i8 g, \一、安装PHP4( D) A. @' f8 n' m2 ~$ r
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip) S$ E8 b9 t+ l# c
1.下载后,解压到c:\php目录下。
: I2 V7 G/ q% u' a, K2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。; ]% I/ x& S' i# Y8 ]3 B7 m) T9 j
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
+ L# n$ T+ J8 A) h. B( z! z3.1找到register_globals = Off 改为register_globals = On( g3 \& W+ O4 j! K& k5 N9 I- q
这一步是为了使部分旧的PHP程序能正常运行;
; j  p& C5 G+ W, h" q; A3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
4 G. r. \5 I% @' ?# u" P2 V以下内容新手请略过
9 a6 n0 \! D* O& Y===============新手略过开开始================
0 w& _* m5 x1 C刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions) $ J" U6 a. x) y
;extension=php_bz2.dll8 v( Z( L. X  x* t  v
;extension=php_cpdf.dll- [& i" I0 c' S
;extension=php_crack.dll& a2 _# \' p4 y- I& ]* V7 B  d
;extension=php_curl.dll  P7 z: Q4 ?: m( Z) i$ o
.....
6 F0 y# S) N7 B" u- H; L. _( S. {要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
8 p. G$ C5 U  C: I9 ?! \# O其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;3 k9 m7 C4 A5 f* F
如下面. y0 i' ~; N# k. e* I' r
extension=php_gd.dll. {+ s  U- W, f) F* I/ I; u
;extension=php_gd2.dll
$ y  ~! L2 k% B0 u4 G4 O6 \8 o按实际所须的extension=php_xxxx.dll前面的分号都去掉。/ a  B9 G0 a; H# R  Z( I
=============新手略过结束================
* m- t" E4 J* H/ `6 K- s' o9 S5 |, D3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp1 ^  H* E# j' Y, A6 q) F
并在C盘建立一个TMP目录
7 x; B- {: Q, y4 l- N6 y3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。6 u6 z4 a* |, P4 X' u/ Q
================================================
- c: O% A; s/ O' ^1 S, S- L二、安装MySql3 O: C4 m7 x4 A, [+ [0 ^
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
5 j. V* X2 m1 e* n. v按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
9 j5 W2 y* {- o! n3 h! Z4 L运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) 9 o. X, a- Y' X- T
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
+ Y; ]; t+ j; a5 D$ y( p" G即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
& V: X& M1 C4 G1 i8 O/ \2 a3 W当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;7 d, M0 ^! b  \, Z- B& \; c
测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
/ z9 T4 h  ?: C5 C0 y第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)" ~  J( R$ o, x) G
出现: 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>
* }" _: t# |1 M5 K  g! i  C即安装MySql成功。. P* d: g0 Y* N+ z2 \1 s
==========================================, B1 {1 y4 R6 V: r8 W! [
三、安装Apache 1.3.x 及 PHP运行设置
* v5 O( N& g5 G1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
, K( ?3 \# k. R如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 0 B- P* r- I/ k4 O: e) e
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。
2 W& V5 _: F( E9 q( U) e9 W4 K  a( Q值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
# F1 C8 ~! Z& r. s  o$ q5 w尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
* W' k* }9 v9 q9 Y% m如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
0 X0 ^: c4 M/ }+ V% @7 m) f1 a3 x# |' g7 A# _" ]% j
ScriptAlias /php/ "c:/php/"
# R* h. S- m9 f4 I) OAddType application/x-httpd-php .php .phtml
% L& ~4 N: k' Z9 A! _8 qAction application/x-httpd-php "/php/php.exe"
5 M, J  |" f. J! |3 c3 H- U2 d3 N$ k注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
5 s, a0 g$ v! G$ H0 p  x" j8 n
7 Q2 g* t0 z% S/ w- h* P9 e警告
/ ~' R) c, g+ ]1 X% q在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
' r( |% s5 M, N/ y2 P
" ~2 o( D7 F1 c. v. @0 D) g7 V$ |如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
. Q5 t7 ~% y6 L% c8 b
0 v! L: E5 E5 e8 ^用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
! ^" H! Q' Y+ `# N4 \对 PHP 4:4 G# @- W5 H' N: f  G. H
LoadModule php4_module c:/php/sapi/php4apache.dll2 v2 s2 ^8 ~' N4 N5 Z; {
对 PHP 5:: F- \2 j  D& L
LoadModule php5_module "c:/php/sapi/php5apache.dll"
8 L3 K6 @+ J9 t% w你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
$ {( z2 p, J% a2 aAddModule mod_php4.c
# q! Z1 h( G6 w9 N7 _对于 PHP 5 则为:
4 I; |% l* {) B6 d5 _AddModule mod_php5.c
8 S6 Q/ ^% S. J( ~" k1 v搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。 $ G; m' [& W; B
, r7 j" j7 _1 e& t) U
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
& [6 }4 k% @. z9 y- x有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 - c9 W  @) G. n  o, c. G2 @
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。
, {5 l1 L+ ]5 r$ p; i: }6 l注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。: g3 k" j4 H4 h! S4 L5 R; n
============================================
; {; u+ u+ I0 J四、实现Apache虚拟主机的两种方案$ T" z3 T# }! E/ s5 G
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 $ J! Y) s4 H3 b: G8 q
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 6 [) H  ?/ ]5 F- X5 w! c- {
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也
1 ?. u% M  E/ m0 j8 E放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
3 ^6 H4 W* \. [! ]设置。
  I9 ]9 Y5 ?- _设置Apache虚拟主机通常有两种方案 9 `3 G+ j8 b4 b! z
1.基于IP的虚拟主机 " d* T* r1 }2 S; O
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 $ {3 m/ V4 i1 ^
网卡上绑定多个IP地址去服务多个虚拟主机。 , X. C4 ], A7 n' ]! H. ?
若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 + r; u1 p2 t9 k  }
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 ) v, Z& D# w5 l' w  d
/etc/rc.d/rc.local,确保每次启动后自动运行。
% I% E5 O! m% o2 B+ G" T#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \ % g+ f  |! @$ X4 k, Q/ D& I
192.168.0.255 up
8 Y  y" Y9 D+ f# u$ u) r3 V+ K#/sbin/route add -host 192.168.0.2 eth0:0
; p# d( T; j, b; N7 |4 v然后你需要设置/etd/httpd/conf/httpd.conf文件:
* l" ]( n6 w1 n) y! a/ R<VirtualHost 192.168.0.2> ( V$ j! t) Y+ y( E  T
ServerAdmin webmaster@yourdomain.com 4 y9 w' ~6 c7 Q5 y! m1 p7 J
DocumentRoot /home/httpd/sales.yourdomain.com $ s2 G2 w/ ]. [, N0 T$ |; P
ServerName sales.yourdomain.com ' D, M+ C6 S- s- [/ e
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log 3 U" y" r- D8 ?
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
4 _3 t9 v9 C+ w( ^0 o. V</VirtualHost> 7 e5 m# _1 w: ~7 `- P
然后分别创建目录 : L, }0 {! r! g  B
/home/httpd/sales.yourdomain.com, % _2 Y6 O' g; |* P
/var/log/httpd/sales.yourdomain.com
, }. F+ ]7 y# c2 z放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 , I- g' j9 Z+ v# P/ w
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
- T; s; i. y6 v  Z- F6 B! H* w注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
0 B2 p# v1 w- q! _; ^虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 6 o$ m7 [$ j% f- P: L  i
方案。
+ T* G, W, N9 i$ E4 y& U% L1 l1 i* _1 x" D! l
2.基于名字的虚拟主机: ; A/ U  l* ]+ F# P* _
  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的 2 M  J1 S  D( V" v3 H% J& G1 Y+ Z
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
9 J: j/ Q) s0 _% m% n/etc/httpd/conf/httpd.conf
  j3 W) r  U  gNameVirtualHost 192.168.0.1
( v2 r# A1 n) \$ G  o  y% u3 Z<VirtualHost 192.168.0.1>
/ ?7 M7 ]# q2 yServerAdmin webmaster@yourdomain.com
9 n* f$ D; b4 [' A& J% A9 L7 j- eDocumentRoot /home/httpd/sales.yourdomain.com
! l9 ^9 ^& g  J8 b" C+ a* iServerName sales.yourdomain.com
! Z' X- l* @+ T2 i" d( qErrorLog /var/log/httpd/sales.yourdomain.com/error_log . V, r+ p" I, n9 I( V$ K! {5 k
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
, p  I/ R0 P. y</VirtualHost> ! W! H: C& ~4 V& a' Q3 p) V- o
<VirtualHost 192.168.0.1> 4 K' {" j/ a9 D8 c+ q& B
ServerAdmin webmaster@yourdomain.com 0 P1 b+ e+ G9 L/ o
DocumentRoot /home/httpd/hr.yourdomain.com ! {7 U" v7 o' [& h
ServerName hr.yourdomain.com ) m# R8 n+ ]" h8 C% ?
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
9 f5 b4 V& G" S/ Z! }TransferLog /var/log/hr.yourdomain.com/access_log
! M: T/ E0 l9 d- J% ~7 H' @</VirtualHost> 8 ]1 E3 Q. P+ q
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机, 7 p# l( ?) y4 ~' I0 H. J" o
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 6 l! c" P/ N7 h; [
都指向IP地址192.168.0.1 ! N# N9 c( @5 N' ]& C7 z- n6 ^: H
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 . |" N: ^5 h7 s" b
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
! W# }  l! Z& ?$ F" E6 f若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
& g. V2 o, H0 {5 p* m* O提示:上面所提到的相对目录可以用绝对路径代替,如:
6 L5 A- j' n' l; e/ C/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot  L6 H) n. F' O- O) Y& Y
==================END=======================
& }  `. `3 D4 s/ y3 W这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件4 _% V* l3 l% b* z+ T7 J; E
下载地址:
9 c, |$ I9 H- c4 ^; Y; n+ thttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那
6 j& K5 U+ N& Y8 M; `$ O3 e! r怎么没图哈
2 C- w' _; B& G9 |% Z  r2 d应该图文结合啊
7 A# s! F: O0 J$ ?  {- h; D  x2 I

TOP

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