返回列表 发帖

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。5 z$ y) D) y4 Z7 Z1 e5 O

- ?* Q3 `8 H4 t一、安装PHP4
) `) B. A) y* x0 p+ V: O我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip- x9 `1 O& ?, W* T5 f9 t, b! y$ v
1.下载后,解压到c:\php目录下。+ A# Q/ I2 ^. E  k: ^) w$ a
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。9 O5 F: N9 g, m
3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
( Q2 i7 i( d7 _' x3.1找到register_globals = Off 改为register_globals = On
  j; h6 C: f  h# k3 k这一步是为了使部分旧的PHP程序能正常运行;4 c; I3 I) m, ?( ]+ b* t! N
3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions) \4 X! d/ s( k" e- T* i/ {
以下内容新手请略过9 Y% f. M* v$ X+ `6 Y: S+ {6 r* T
===============新手略过开开始================
% ], X/ j& f8 W- [0 m7 S刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions)
2 d, n" n' J( g% K5 x6 w# n;extension=php_bz2.dll6 A0 _* ?: q$ N% Q- \+ G
;extension=php_cpdf.dll
3 b5 l* [. z$ \3 x1 y: A4 u6 _; w;extension=php_crack.dll
* {* L) T0 T; c$ U% [" L2 {;extension=php_curl.dll# k$ h) x  N' b7 Z& N5 S5 I# z8 s, t
.....
; h8 V4 V% Y3 F1 q5 ?5 H要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
, G, B/ |. X. u& a9 x其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;& E- _* L3 F+ p
如下面
" ?: S8 T; X5 F7 lextension=php_gd.dll" V, L& e8 r* c; M7 v7 O
;extension=php_gd2.dll8 p* Q! T' F7 A, w5 b, ]
按实际所须的extension=php_xxxx.dll前面的分号都去掉。$ e& R4 s9 F* I; [/ D9 V* z' @' b! q
=============新手略过结束================
; i5 c( T5 [' d% j( u3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp
( L! C: z& K) V# R并在C盘建立一个TMP目录
9 F, h4 x9 e) S: C6 R/ U3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
4 D' [: k( {% D4 H1 h8 C  y================================================
" D# {9 u" X4 ?  _二、安装MySql, z  U6 \+ }* y1 G1 q
安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
5 G, L- [- j8 a按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
- {3 [* a5 v, m. D) i9 H9 ?运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!) * G7 l$ O  u: l" U  s
从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
0 |* i0 B( s2 P' v即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;
' I0 b: c) G/ D7 k, {' |当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
$ K- ]% n8 ]/ n, c  S. T& m2 ^* L5 l测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;* s$ e7 C$ M2 g
第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
" X. }6 l' I, ?% ]" U4 p/ }出现: 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 B; z# x4 z2 f$ c8 a( d8 E  r7 a
即安装MySql成功。
6 l' P2 r0 k! w/ t1 M) l8 @1 x" k==========================================
" Z' z$ S1 R  {三、安装Apache 1.3.x 及 PHP运行设置3 H, T' p* f2 l  W& ^; g
1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。
0 Y- n- K( d0 K. S2 F如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 9 \3 E7 _7 x: G) w
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。
" E! s7 w4 j4 v. ^: x4 D0 q3 O值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。 ; l; t# h1 O# a" r  U0 v) R2 D
尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
9 F9 N& R! q3 j: v  k+ c如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
+ Y! \* _, \* b1 W% \5 \# N0 N) _. w
ScriptAlias /php/ "c:/php/" 4 ]+ H( ]5 r* M. {6 l) X+ I" Q
AddType application/x-httpd-php .php .phtml
  F3 D/ h6 E5 g' {- CAction application/x-httpd-php "/php/php.exe"
  [1 T, z$ c! |- z  ^注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
7 \! G, ~; {9 A1 ?8 G1 Y; D* N: q: r9 u* j3 g. E5 Q
警告 8 E& ~5 Y+ ]  u( l' ]
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
& e! R8 I9 x0 o1 T. }3 `1 m0 |( x$ G' @7 @' R
如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:
- n. j; h' u" I/ l9 H2 O* q& u; `+ `5 M( j! o  m5 X6 O, T
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,; e. B$ J1 ^3 ^, J( l) b
对 PHP 4:$ R$ L; t) Y( H$ C
LoadModule php4_module c:/php/sapi/php4apache.dll) `6 ]% y  R& `4 j7 Q% k
对 PHP 5:
( u, T' L7 A; S& E4 [LoadModule php5_module "c:/php/sapi/php5apache.dll"
, @9 _/ k4 {- d9 J- ~你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:
4 r. E, z, _. L) B8 ^) _AddModule mod_php4.c2 o& Q6 x( ?, ~2 V
对于 PHP 5 则为:
+ N5 s7 y( N1 l- t$ s/ dAddModule mod_php5.c+ L6 |& M3 ^+ d, l' @
搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。
6 S, K; ~9 ?9 H# q- L: i  ^6 D  e8 G; o1 X* c$ h! |
修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。 & q" u) n7 Z: D. ?4 H" H
有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
+ p' n! \8 |7 u; [如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。 ! ?& y1 v9 @1 h9 c" l
注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。, P+ C- f- f. X2 I) @. g8 [
============================================
3 n& I: A$ D5 B. r四、实现Apache虚拟主机的两种方案9 G9 _3 `# p& g# W$ B1 R) @& Q9 ?2 a
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 : j9 X% E9 I& ?# O3 ]. [1 H: a
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
1 r8 Y; ?% D' o: d4 Maccount.yourdomain.com,同时又想为sales部门建立网站,网站内容也 1 \& q; C( h' Q$ k2 R, G
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机 ' m2 J4 K; S4 H, k# D8 v
设置。
( w8 c) b. u# F- P5 n  S设置Apache虚拟主机通常有两种方案 ! A6 o. q2 Z$ I9 r5 B
1.基于IP的虚拟主机 6 M) T3 ]  N( q2 ^
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
" q1 l/ Z8 d4 ]6 a8 O2 f! m5 G网卡上绑定多个IP地址去服务多个虚拟主机。 1 Z+ c' W9 K1 {- c6 D# \
若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 + O9 |# S% x! w
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
9 D" P* S  n$ S/etc/rc.d/rc.local,确保每次启动后自动运行。 ; x  S6 T/ ^  p0 ?) [' V) p7 M
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
! h0 F- d3 I) m; ?. D4 l192.168.0.255 up
# w9 e$ a. N0 ~6 [8 o4 M6 D#/sbin/route add -host 192.168.0.2 eth0:0 ! x5 E- C4 k2 u2 k
然后你需要设置/etd/httpd/conf/httpd.conf文件:
: L! E: j' C* }# t, Q6 L<VirtualHost 192.168.0.2>
/ ^7 \( S  }# k- J8 Y6 p1 |& {ServerAdmin webmaster@yourdomain.com
$ l! l  u5 r+ O' h! t, C5 w9 ~5 MDocumentRoot /home/httpd/sales.yourdomain.com 6 k) ]; o( J$ L6 J' i
ServerName sales.yourdomain.com
6 ?5 [7 C# e) j$ a( }4 EErrorLog /var/log/httpd/sales.yourdomain.com/error_log
3 `) z  a. E) M$ ?, }: Q( @TransferLog /var/log/httpd/sales.yourdomain.com/access_log
' O4 Z  C  U- Z+ Z6 G+ R( V</VirtualHost>
! C4 ^! E- [0 J/ a4 e然后分别创建目录
1 c# N, i4 M8 s3 h1 m" b- }+ o+ P/home/httpd/sales.yourdomain.com,
6 S5 e' i# U0 z; c# B& n/var/log/httpd/sales.yourdomain.com
% \$ E* e5 H; m. N放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 ; Z  X2 y, n/ \1 f0 s& f
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。 ' J: Q+ g) U* ]( P
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的 $ Q7 _0 v" Y8 h' G& I1 I
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
) L& i" V3 I# J" U; t方案。 . N: ]( J) h2 W8 i5 l7 T
9 q  A9 j  l, X' {& O" \# n
2.基于名字的虚拟主机:
6 c& p4 i/ Z2 k, e7 E/ h  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
* g( A9 }! n* B5 ]: I浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件 1 ?. ~% a5 B* B2 d
/etc/httpd/conf/httpd.conf
4 E9 \- f! U- v! [# ~# ^NameVirtualHost 192.168.0.1 ' O' ]2 W7 Y9 Q; w3 l$ P
<VirtualHost 192.168.0.1> 9 t6 \( C" a$ _$ S6 F" L
ServerAdmin webmaster@yourdomain.com , G3 h( C3 @$ A  h, O0 k+ l
DocumentRoot /home/httpd/sales.yourdomain.com # K" c4 f  n" [- m+ U1 X1 y
ServerName sales.yourdomain.com 9 J  i5 d  p5 h- o2 C4 b4 [. [8 {1 q
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log # T( Y8 Q/ t8 R3 M) \: e4 G
TransferLog /var/log/httpd/sales.yourdomain.com/access_log 1 \% N, _% {+ v. n
</VirtualHost> * `+ @! O9 [4 J$ |/ j5 x; j8 c5 ~
<VirtualHost 192.168.0.1>
. P. b; W" `  ^5 IServerAdmin webmaster@yourdomain.com : Y4 f2 t$ r% Z. A& R! y' W' P: I8 q
DocumentRoot /home/httpd/hr.yourdomain.com
' B2 }2 b! G9 yServerName hr.yourdomain.com
. A! ?2 E& y9 C  vErrorLog /var/log/httpd/hr.yourdomain.com/error_log # V+ R6 F& R6 R7 V( j  C
TransferLog /var/log/hr.yourdomain.com/access_log / S1 E& f# d6 _: g; d4 Y' ]
</VirtualHost>   A/ e1 P! D. E/ d/ L" Z! D3 s/ R
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机, / u  [6 s% E8 d) J% W8 }
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
# C- i1 X8 w! m  \; W2 L7 N都指向IP地址192.168.0.1 : |, Z' ~6 U9 a) a8 u
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能
3 q# C  ~' h5 ]$ N# R没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
' J( O# Y( a/ H1 n5 Y若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。 - b6 b) T2 v/ U1 Y5 M* ~' A- \! G
提示:上面所提到的相对目录可以用绝对路径代替,如: . [' x$ t9 f0 Y5 Q& p$ s. Z
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot. J5 _' B; F, L6 y' {) F' I6 r
==================END=======================
- u& x5 ?; x$ r8 P! Y0 K0 z7 L: T这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件5 E' B* ?. y1 r! V; e2 C* e  \
下载地址:
; @/ R. I9 p7 X5 q1 Lhttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那% v2 S3 d) H  _' H) o) F
怎么没图哈
+ Q4 |5 f# z. ]+ Q) b+ u$ l" J应该图文结合啊; |! O# m; I% @% J+ p4 R$ W* H

TOP

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