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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。9 p2 I: ^+ V- U* j2 R
8 x+ p" D  V% I: a
一、安装PHP4: G* W# ^; Q. {5 E
我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
) n! s( X* T2 E$ L. t: j1.下载后,解压到c:\php目录下。
  j6 O$ w* c8 i7 j2 T2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。6 o$ W" g$ R0 [9 Q6 f8 r3 |& x3 ]
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。6 z3 ]8 h( K6 J( K$ ]. g7 C' {
3.1找到register_globals = Off 改为register_globals = On
- ?% V* i5 d( _( \9 j7 |( `* A) B这一步是为了使部分旧的PHP程序能正常运行;
3 O. W' C+ }) d" A4 t3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
7 ~5 }* ^$ J! H# d6 w9 v以下内容新手请略过$ _* W+ J/ I- h* r) }
===============新手略过开开始================9 h5 W- X" h4 b: ?  b2 P1 c
刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
" ~. S/ h( o' X; s1 a;extension=php_bz2.dll, b: a- F- `3 R% M( X
;extension=php_cpdf.dll
( y& s$ G# F* k8 B, ^* \0 O;extension=php_crack.dll% J" n3 P& `0 ?9 U6 N* ~$ S
;extension=php_curl.dll% W1 w/ G9 H0 C  _: k. p
..... : T1 A7 f' F4 w) k' I  S* I) z
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;0 a2 [4 |( _$ r" W% p2 Q% W
其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;
" B1 _; M& d& A* I  H: J4 T; k如下面' V" g9 s* D/ O: |+ M) z
extension=php_gd.dll
% h; J9 v3 F: v+ Q$ i* i' l;extension=php_gd2.dll
0 E' i; v3 Q/ c2 F6 D7 t  d8 ?按实际所须的extension=php_xxxx.dll前面的分号都去掉。! y5 `% ]: o' _* Z( |: {
=============新手略过结束================9 Z+ p) p" I4 d- }! X& d
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
% R1 J& n$ D& J3 N* r并在C盘建立一个TMP目录$ u4 A) b# z5 o( f1 D7 E
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。% b$ v, j- k5 w9 i$ Y! g2 ]
================================================
& F* a  I& ~3 ?$ _) R+ Z二、安装MySql
, d: }  h0 @; a2 e& G7 V; M安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
7 g6 v# t5 q4 q% k按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
" N: o+ C& D) [  h) D" U- w' `/ P0 k6 p运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) . s7 i3 E+ b0 r1 P
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
9 F* a7 Y- U$ P# F( U! V% L- U; J即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;7 d+ h9 `, @3 W4 U& ]7 a
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
; r0 k0 |  S/ ?8 Y/ K1 m, j3 q测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
' g# q' ?) H  p9 A& e0 O第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
7 N/ u  d+ ~$ t! a出现: 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> / e0 j% ?# y/ n5 m- j
即安装MySql成功。
$ w" M0 |7 h" }. U! c. R: _% k==========================================
% I5 n0 J  t4 B5 a5 j2 P0 k三、安装Apache 1.3.x 及 PHP运行设置
0 F4 @0 L. U9 @% }; i1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
- R0 Y& q/ G3 o- t5 ^如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。
: N* R, `8 S  c1 y/ N8 ?* f5 k有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 ! x& H: ?8 e+ G' ?
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
( C( J- ~" Z0 s3 e尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
( f# ^# {) K' m8 }7 p如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装: # L, g7 o4 }* X' X
' n2 B6 O2 }$ E* b* u% u* H
ScriptAlias /php/ "c:/php/" + u( |: I1 }7 j* t" k' @
AddType application/x-httpd-php .php .phtml * e7 I& z& g8 J* T& g7 f+ \
Action application/x-httpd-php "/php/php.exe"
/ N8 r+ I2 w! W7 A. W注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
1 l3 S/ U# d2 @' I6 R2 i; C: A
1 n6 C/ }, N. ~9 K警告
) O: Q* u1 d5 B* n+ v) b4 |在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。   y1 V1 R1 q0 G1 Y2 I* q
! O, v# b: n3 V, g, q
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
9 q# K) m$ V& d) R
6 {# L8 }; n/ ]8 q( [# ?$ T用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,
$ J% n; u$ a0 I+ S对 PHP 4:! T8 t4 q; p4 u3 K  A+ h9 X0 D1 t- F
LoadModule php4_module c:/php/sapi/php4apache.dll
& n/ u8 d2 H9 o) I* p% Y对 PHP 5:2 |% Z8 K1 r  U3 E8 T" |2 e
LoadModule php5_module "c:/php/sapi/php5apache.dll"
1 d, n% w2 V+ t8 W, i3 v" s你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
1 w9 S+ u* z$ B! ]4 uAddModule mod_php4.c! F) t) m3 @; H4 }6 w; |
对于 PHP 5 则为:. Z/ @% W! O* D. `9 o  F
AddModule mod_php5.c
% E. e. I5 j5 {1 [: |搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
) o$ ^' ^# i8 k. v! ^3 ~* x- k) }+ E, r* n# U5 U! k
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
; S* f4 E$ w3 Y7 F3 x8 A3 ]有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
& N2 T( X& R4 Y6 x5 P$ A如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 / I  O6 z( X/ |/ ]
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。/ j! w8 F' Y, w+ f
============================================
, `  D! n4 S; ^四、实现Apache虚拟主机的两种方案$ J) n: W7 M; x' ?) D# w% e
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 + y" A2 F5 {$ z4 T' D
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
' g, `7 l1 _+ ^4 {account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 # \  z& E# j6 \2 B6 y. e
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
$ K4 m: F7 `. d! W* u设置。 3 C8 q! N$ d9 g; R2 j. l
设置Apache虚拟主机通常有两种方案
& ?3 |- m" N" y1.基于IP的虚拟主机 & Z/ G0 a+ [/ u( }
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 2 {/ O+ ]& l+ |! f
网卡上绑定多个IP地址去服务多个虚拟主机。
# m! h4 v' W/ S# C: @  \若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 . X5 w  }% |  n
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
' [; m) j6 \' X. L/etc/rc.d/rc.local,确保每次启动后自动运行。 . D7 c# K; Q% ]' P3 h1 m; _; B& ^3 N$ ^
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
+ q1 Z3 n9 [5 a- H  w: |) r192.168.0.255 up
/ C- j' s9 o, n/ U% W# L#/sbin/route add -host 192.168.0.2 eth0:0
8 ]. r6 Q/ k; t, f然后你需要设置/etd/httpd/conf/httpd.conf文件:
: b, N9 L0 n! [0 _& P5 E  l  _9 {<VirtualHost 192.168.0.2> * g2 D3 K( X9 _& C* {+ S* F
ServerAdmin webmaster@yourdomain.com
& x- V( u! u" g  Z5 PDocumentRoot /home/httpd/sales.yourdomain.com 4 \) {9 N7 l% |8 g
ServerName sales.yourdomain.com   V2 O/ a8 @2 X  x6 F$ H! f5 L7 O
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
6 E: V! B6 t/ f% ?% X( l$ K) JTransferLog /var/log/httpd/sales.yourdomain.com/access_log
9 _3 C" [1 |* Y1 c* S: h</VirtualHost> : F" R; J7 B; H' o$ J. E! R& i/ Q
然后分别创建目录 7 K! `  K3 W5 B- Y* |
/home/httpd/sales.yourdomain.com, 2 g$ j! @, k, V
/var/log/httpd/sales.yourdomain.com : }* F! z  ~! }
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保
( O. a* h+ L2 U4 }& I1 v你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。
8 O! g8 y+ K, _7 S4 K注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
8 r5 n: s" X1 Q2 d虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
1 |" p/ h: Y4 Z2 _9 K方案。 : g& H1 j* Q0 w/ o! Z& y

! q' X  T& }, p8 R4 P3 |7 U: N* c2.基于名字的虚拟主机:
3 t0 S; u" P" I8 b) f  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
% R8 S/ i3 t) h9 I* H3 I浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
' A$ G" n& y% O; {9 t/etc/httpd/conf/httpd.conf   ~( g- Z: h  u* |$ R" v" t
NameVirtualHost 192.168.0.1
# f3 E8 @/ X9 p3 j& m% J" B<VirtualHost 192.168.0.1>   s* Q* w" z( y3 h! P8 ~
ServerAdmin webmaster@yourdomain.com
' }' F# y9 i9 J1 D: N( uDocumentRoot /home/httpd/sales.yourdomain.com
" D" [$ v/ e1 w2 CServerName sales.yourdomain.com
7 |) Q. w# h6 _- \# OErrorLog /var/log/httpd/sales.yourdomain.com/error_log # D7 Z! p1 Z3 x# {
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
% N9 {. V1 O9 G0 U+ J  O</VirtualHost>
+ M9 f# C- x  U+ a8 G) H" q1 X<VirtualHost 192.168.0.1> / U4 v7 ^7 l& n& A
ServerAdmin webmaster@yourdomain.com . N# i  g+ \. ]# L
DocumentRoot /home/httpd/hr.yourdomain.com
, O$ X1 ]9 {2 G2 U+ [+ p6 }( @ServerName hr.yourdomain.com
' @) A( o# w/ f( xErrorLog /var/log/httpd/hr.yourdomain.com/error_log
7 z* a# d7 i- v9 s) N' mTransferLog /var/log/hr.yourdomain.com/access_log % p7 ?8 w: Q" o- J6 A/ w
</VirtualHost> # B4 F8 Q/ n$ t; n0 V; z
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机, 2 J5 R. b& \, y( F9 z7 Y  U! c4 {
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
: |- L6 V; b( U2 n. `9 Z都指向IP地址192.168.0.1 4 O& M. d3 n  r4 Z# \( G9 d
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 / i9 Y/ F# l& w( @$ e
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
5 D5 a" n4 r) c; {5 n- ~若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 , r- S6 n6 ^, I' f8 t
提示:上面所提到的相对目录可以用绝对路径代替,如:
, d. L% Z+ U- O' ~6 K( X+ D; g! L6 C/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot+ \9 e) ?6 I% k# {
==================END=======================
8 t. N5 [& k. H/ k这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

亲娘那
- P& w. m$ t$ d" q: x) z怎么没图哈
9 Z( E" f9 X2 \( }  z应该图文结合啊
3 r8 o* X( ]/ f

TOP

另外可以用一个安装包安装全部PHP软件
6 s# ]8 v* X7 q% `下载地址:' j9 @9 M8 l1 `, r$ s
http://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

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