返回列表 发帖

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。, l7 h; m4 }. h2 n$ g7 V
; c) I+ T3 g5 u2 r* x9 h
一、安装PHP4
: R) J% K+ p" T2 O3 I我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
9 h4 S/ n& }' o3 l1.下载后,解压到c:\php目录下。$ w. B9 b% O( h- O
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。9 H8 \0 m* W' \1 H7 ]
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
; q$ C4 l) Z( N! L& a3.1找到register_globals = Off 改为register_globals = On) \/ J% W4 a" T. k* D, ?
这一步是为了使部分旧的PHP程序能正常运行;! W1 S$ d7 b6 ?  q: \
3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions1 m8 X5 R8 C8 P) E5 Z
以下内容新手请略过
5 b9 O3 y' Z# y3 j===============新手略过开开始================
* m0 v6 r! J. `7 m刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
" z( K/ @6 G; C;extension=php_bz2.dll
) r, a9 x; y0 g# B" `;extension=php_cpdf.dll& N, q5 [0 u' i: j1 P6 {
;extension=php_crack.dll, v  }2 K5 r, q& s+ V4 h4 @
;extension=php_curl.dll/ C4 w7 f' v5 d8 b
..... . B. d( e2 a& v6 W7 a
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;8 C: Z% ~- I" U- y
其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;  ]# C( K% I/ G$ S  h1 \
如下面( I) |; |% c/ y9 G) j4 c
extension=php_gd.dll: Q9 X! J! L! K5 I1 a0 v
;extension=php_gd2.dll' x" Y; \& j6 p% o3 a7 h1 R. M' a
按实际所须的extension=php_xxxx.dll前面的分号都去掉。  r6 |; r% e. S; J" g7 u" f
=============新手略过结束================
% l  }  g9 A1 `* i3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
  e! Y. p% L% Q7 b$ c并在C盘建立一个TMP目录! I! H7 d4 y" p1 `  v
3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。1 P, |7 A# F% `3 g# Y! r! c8 [2 c0 W7 X
================================================3 y3 K+ X0 a$ N. W) y: @- T0 h2 B
二、安装MySql
! P& p& [+ L' t7 C3 A4 X安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
8 c. X! A7 j0 z* [1 l按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;; v/ h: i. m& M6 F8 Z
运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) ' ]2 G. }" Z& d- d
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口- k( E& R( d% `! I: g
即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
+ s1 e4 H% Q% {+ O/ _& U当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
$ S5 U! N" S2 G测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
! [! o; P8 M3 I! `; u- j5 m第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)# D, y( f& h; ?' N( g/ ~) 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> - ~: r8 _! i7 A% M5 ?* E* G% a
即安装MySql成功。
2 _: I) K2 n* z" i  L: x==========================================5 D+ B0 V% O4 z7 Z( S; d0 ]+ ?
三、安装Apache 1.3.x 及 PHP运行设置; X- R" D+ q" G3 B, k0 d
1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
  r; X$ ?( W+ W% A5 m如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 ! b1 ^2 k; `+ g+ q! W, \
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 2 G/ R2 D4 s7 \4 z
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。
, e3 O5 J' y1 {% R2 m; J! W6 s尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。 - y, ~3 F( v! y' N1 c9 g: b
如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
* v; q  B& {. V( L- b2 z( A7 n# a' x/ _( e) \6 y& R
ScriptAlias /php/ "c:/php/" - a" |. N6 _2 m, u) y" ^  i
AddType application/x-httpd-php .php .phtml 8 M! b4 q& o5 z  c. f3 r2 J  _
Action application/x-httpd-php "/php/php.exe" ' R: |, r! l0 G$ J7 }1 `' Q
注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
- v' a0 V  |$ k/ Z7 q; L( R, m3 Y* [7 o+ j, n! w7 [9 c! N
警告
9 R! {1 h3 U$ X% T$ m7 P在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
0 x4 Z, |+ K: ?# Y: w% a4 b: ?0 p% m: L
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行: : q* e/ o! {) W6 ?6 A

* ^4 {5 c* P# E; j用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,3 d& k- U% ]7 F5 m
对 PHP 4:- v# o" s4 j6 v  h. O3 {  n( U
LoadModule php4_module c:/php/sapi/php4apache.dll: @6 e0 l1 i) p% }' ]
对 PHP 5:' c  ~3 _' ^$ O: j5 l; u  ]
LoadModule php5_module "c:/php/sapi/php5apache.dll"
* Z4 C+ v6 p) C, {你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:- @( f, q; ?, Y& Q" _* L( u
AddModule mod_php4.c+ e6 H8 l7 H9 P7 d7 V. e
对于 PHP 5 则为:1 Y* z& d7 x& v% y5 `
AddModule mod_php5.c$ L7 O% T5 Y+ H6 e) y: N4 y
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。 ) V; j+ w: J) b5 t
! G6 l: a- ~4 {
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。 5 s/ n# s# n8 G, K6 M/ S9 ^6 U
有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。 ) v8 G) S* t0 l" ]7 N1 [2 N
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 5 ?: p( M' M0 v+ _+ A# Y' u% T
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。% K# z$ S# A$ M, i( E# Q+ d
============================================
2 W3 G9 ]9 t3 ?# T四、实现Apache虚拟主机的两种方案
; f3 i% g$ Y: r- v* @% q. c( Z简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
' W6 F% d( l7 x: J$ f8 p4 Y支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
& A3 ~0 K- [: A; W1 ]/ u' Q# saccount.yourdomain.com,同时又想为sales部门建立网站,网站内容也 ( j* a% ], O& d) A# J+ c8 R
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
5 q6 o" W: F6 v2 R  {2 O) g* ?设置。
) j! U: l: o. u设置Apache虚拟主机通常有两种方案 & a$ A: V6 V# I
1.基于IP的虚拟主机
" e* y. r& Z  P& f7 G  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 ( ]7 o4 A2 |1 h2 l1 v
网卡上绑定多个IP地址去服务多个虚拟主机。
. x2 a! v7 [" y/ V% ]& C若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
  r6 \( Q, u( u9 U你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
6 z% O7 X+ c/ [) {# i6 S, }% t# R/etc/rc.d/rc.local,确保每次启动后自动运行。 2 E9 x* j  p; N& ?! T2 P
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \ ! w7 ?6 I$ z- {' g7 D
192.168.0.255 up
% q( w: Z' [2 V- C2 r7 _" M8 u#/sbin/route add -host 192.168.0.2 eth0:0 4 }2 V9 z9 N& h# s# \% g- M
然后你需要设置/etd/httpd/conf/httpd.conf文件: , v& A8 U5 {$ t' ~
<VirtualHost 192.168.0.2>
1 A$ l- i3 j8 F( IServerAdmin webmaster@yourdomain.com
( _* T- F! _/ W2 e. J& nDocumentRoot /home/httpd/sales.yourdomain.com 1 J' S1 d. \9 w' b/ C! r
ServerName sales.yourdomain.com ( H( F0 B* y! }2 l9 }: x& l
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
! Y+ R; \5 z- P- bTransferLog /var/log/httpd/sales.yourdomain.com/access_log * S3 D+ @' j2 z5 M/ ^: G3 T2 h& \
</VirtualHost>
4 K' a. t. n/ `然后分别创建目录
( \/ G6 q: F4 B' \8 P# C/home/httpd/sales.yourdomain.com, ( B2 x; G- m" x' _/ Z8 H9 j6 r
/var/log/httpd/sales.yourdomain.com
+ ?7 b: q0 J1 r+ O放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 ' B, o1 w/ l# s$ _/ K
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。 " i) S% M, F7 m# `
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
! ~; a" G9 D$ J0 |7 \2 r% [9 |8 q虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机 # P6 ^* z8 W+ q) L8 Y
方案。
3 h0 K# Q; T0 u3 y# w& X
+ X% x7 Q$ W! G" P6 Q4 Y, _2.基于名字的虚拟主机:
9 b, U5 M' j4 w3 d+ k/ ^  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
) m0 x4 i: _2 ]浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
- p( R9 ^0 E7 a/etc/httpd/conf/httpd.conf
: W) |2 |. z) l2 h4 i4 N$ GNameVirtualHost 192.168.0.1 " q" r& [2 ]/ m5 r* P5 G0 i  h, a0 w
<VirtualHost 192.168.0.1>
4 ]  n9 ], o" O+ XServerAdmin webmaster@yourdomain.com 5 Z7 V: g& |( i2 U, o- R0 N5 w
DocumentRoot /home/httpd/sales.yourdomain.com - \" t- U) k) k1 T) y
ServerName sales.yourdomain.com ! F# `( v* D" d+ j8 ^' U  i1 f
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
! @4 s" u9 D/ n. [; V7 k5 t' M  LTransferLog /var/log/httpd/sales.yourdomain.com/access_log
0 l- ~6 \$ t6 Q$ ]! l' w& u. n</VirtualHost>
  B! M* z7 Q7 W3 c5 m<VirtualHost 192.168.0.1>
) E/ [3 i+ E. @% f0 \6 j" ~8 T: NServerAdmin webmaster@yourdomain.com
; a! o6 _9 T( S/ R5 BDocumentRoot /home/httpd/hr.yourdomain.com
, K7 \& Y% w, b; d! e0 W( XServerName hr.yourdomain.com % k  c' p' L' j$ ^& k# o% n
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log 9 p/ h) H4 X) D: y
TransferLog /var/log/hr.yourdomain.com/access_log
/ s, K2 q; `/ k2 O</VirtualHost>
, n; t, q8 ^  |" F, {) X% y注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
5 ~/ }0 B6 s( a# V. }为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 1 Q) Q- y% R" d9 r
都指向IP地址192.168.0.1
$ e: X- _4 }5 n/ I$ g7 b/ L上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能
; \1 ^( G6 V  W' i6 o' H' s! C0 z没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
5 K' y) t4 P/ M, y6 o" s若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
8 v! ^' N# S8 q4 L提示:上面所提到的相对目录可以用绝对路径代替,如:
! j7 t8 p1 U+ {/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot1 d- Z5 v, o- z, z" ]2 p$ e
==================END=======================
. |" H1 J3 O4 z! B/ ~这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件
! _+ o- y  N1 P下载地址:
9 a8 N- w1 t3 ^3 s( Ahttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那/ G$ k( i5 ~( S5 f  T/ H% Q
怎么没图哈
0 u2 w! w! o% ^. O3 c* l$ c) c* \应该图文结合啊0 I  U6 `  k1 x. ^& |. P8 N

TOP

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