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

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

前言:这一篇是我亲身配置的经历,希望大家喜欢,现在网络的教程中,PHP运行在Apache“模块”方式的文章中都少了最重要的一个步骤,也就是说按其方法配置PHP不能运行,有的太过简单,有的太过复杂,所以花了点时间整理一下。' H0 h) m" x# W0 Q- }. ?
. P; ]1 r. a  V
一、安装PHP4
' T  S, K8 N. C1 h# y5 Z我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip
- K$ K$ R- _" k1.下载后,解压到c:\php目录下。# x7 G, l; L/ }3 m, x4 {
2. 把c:\php目录下的php4ts.dll php4ts.lib文件都拷贝到c:\winnt\system32目录下(即window 2000系统目录下的system32目录)。
7 |( P/ Q, {; X3. 修改php.ini文件,把c:\php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。
8 j1 S' a" w; L3.1找到register_globals = Off 改为register_globals = On7 z) F, z) V9 k5 H" y' c
这一步是为了使部分旧的PHP程序能正常运行;
  G3 K* T1 d2 ~& O& T3.2找到 extension_dir = ./ 把它改为extension_dir = c:\php\extensions
  Q' F9 p( Z8 s% N以下内容新手请略过( A! B8 ~2 G* s( K* P: f
===============新手略过开开始================
" z- x- p" \& V刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所有的扩展dll的功能( Windows Extensions) # ^$ P5 `% h5 |9 [
;extension=php_bz2.dll
+ d, g" c  u. @) u7 g2 H;extension=php_cpdf.dll
/ A' V! P: _5 [;extension=php_crack.dll7 H# A. j% O8 K1 X7 R0 v
;extension=php_curl.dll
( ?0 G% r4 f* D8 c. C..... ! R( {- g: s* t4 c1 a& t& l
要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;
, R! _; I0 t* G' p2 a' s# ^其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;" |6 N4 Z- e. }& s+ e
如下面) e# R! Y% r4 U6 f
extension=php_gd.dll
: h5 P3 _! Y6 F  ~5 Q) p;extension=php_gd2.dll$ [+ d9 y0 Q  U8 }  g
按实际所须的extension=php_xxxx.dll前面的分号都去掉。3 @. i# |# T8 T9 D8 @1 ^7 R# t
=============新手略过结束================. C( _* O, o( i3 q8 c
3.3 找到session.save_path,把这一项改为 session.save_path = c:\tmp1 l5 B2 K! F& n. @: P; w  o
并在C盘建立一个TMP目录
: E6 Q- u; m4 Z- O) M3 p% d3.4记得要保存刚刚的修改 并把php.ini文件放置在c:\winnt目录下。
  j% P9 ~" d, F9 h% C/ c* O================================================
! }, t( U; w- \' E1 h1 U" B% o二、安装MySql
) T( j1 B3 r9 X4 F. X, B安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;
7 `% h* \$ i: y# S! ?- f- D( [: S按默认安装,即安装在c:\MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:\MySql\bin 目录;
# a% C* Y# B* t! V; P( d& R; S6 p运行mysqld-nt --install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)
; X& M$ ~* I4 A4 S从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口
( r6 T. |9 ?, z% @7 Y# ]即c:\MySql\bin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;+ T0 h: l# N* N1 W/ D
当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;
: y; {! L/ z- k+ Y/ q" I测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;
5 k# u! Y, \+ t" ]% r第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)
5 W8 F& `6 s3 L8 [出现: 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>
8 H4 Q" q) D1 W' r* m8 g& b; N即安装MySql成功。0 x6 o3 R2 q8 l, F) M
==========================================1 x% w2 v3 o. h; W* M
三、安装Apache 1.3.x 及 PHP运行设置
5 L) _! g. h; _! k$ c: D6 a1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:\Apache或C:\,因为马上你就要修改它的配置文件。6 [  O! ~8 t4 r
如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。 9 i( y, I5 e& M/ J( p% H, c' |- Q8 s
有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。 5 N; V+ S/ S, u0 Y/ m  Z9 y
值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。 / B1 p& j4 I: X- T# T
尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。
: d8 j9 U: @7 h$ z* H如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:\php\ 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:
2 M2 x3 O: t) ?7 i% t1 s4 Q% l) N( j! J' k% Y& W! J: Y
ScriptAlias /php/ "c:/php/"
  T4 ?3 M  I! D6 K6 G5 jAddType application/x-httpd-php .php .phtml
2 t5 A+ z; H* ~2 H; L8 wAction application/x-httpd-php "/php/php.exe"
# o! b3 c6 s) Q' j8 q注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。
" N6 d0 C2 l3 B4 H2 }# ~5 Y% E) K6 e6 M0 k4 t& [
警告 % H9 q- G; K  t- v
在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。
1 j5 _1 X$ @. t. D
" B$ K$ Z: H1 W如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行: - C0 F3 ?3 p8 Z4 Y  L' t! L3 U
% r$ Y! S1 n) U: X/ |
用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,% W' \2 B$ ?( H" A3 ~
对 PHP 4:
; l. F; }( v+ E1 a, m, K4 vLoadModule php4_module c:/php/sapi/php4apache.dll
, i  v1 E: T  L' T- D! O对 PHP 5:2 v$ A. W5 G& S
LoadModule php5_module "c:/php/sapi/php5apache.dll"+ A9 s8 j) R" E& H4 j6 j
你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:! L% L, @; X, W$ W1 r+ e
AddModule mod_php4.c+ Z& e! W0 `/ K, O5 `
对于 PHP 5 则为:' d" h0 r9 ~$ Y; i. H$ g1 ~
AddModule mod_php5.c
( I3 O! w* h4 k搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。 & V! F- d5 v$ o1 t+ Y7 z9 L

% l: k$ a" c2 h' C修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。
6 |. V9 d! l2 W2 {$ K- @$ f" V9 c有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
5 W. S) a4 Q* o. W如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:<?php show_source ("original_php_script.php"); ?>。用你想要显示源代码的文件名替换掉 original_php_script.php。
1 R1 X7 a0 J! g6 f5 J: Y注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:\directory\file.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。% H/ O7 J& V6 h* v; ~3 @4 i
============================================
% r( z7 j! Q2 t5 b四、实现Apache虚拟主机的两种方案7 j+ g9 \8 {' K; q9 B/ U
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 . B4 J1 U- ]1 R1 G3 \( \- S1 T
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 + G: M# P, v/ n; ^/ P- P' c  z
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也
  {' `" E, N' N6 ?, y7 \: v3 K% T放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
& X3 E5 K  c6 C1 f+ Y' G设置。 4 T, j5 x. _: A2 E; k8 T
设置Apache虚拟主机通常有两种方案 9 Q& u: }7 l/ U+ }$ l
1.基于IP的虚拟主机 # v# F/ q8 `: D+ C7 D, g" @
  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 4 q8 q7 n' f3 o% i( ?
网卡上绑定多个IP地址去服务多个虚拟主机。
- e. j/ x* e+ i若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
, G; F9 l+ X7 u  Y你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
0 ~4 e9 W1 ]( [+ Z) D  A/etc/rc.d/rc.local,确保每次启动后自动运行。
& |9 n  X5 b" h, J6 b#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
' g) h/ d% x+ x6 T& `8 u+ O192.168.0.255 up * @8 @" K2 ?9 P) `" T
#/sbin/route add -host 192.168.0.2 eth0:0
0 P- K0 j* o) D! i( F, U然后你需要设置/etd/httpd/conf/httpd.conf文件:
4 O* P/ Z7 J4 ?$ O<VirtualHost 192.168.0.2>
* q- ~6 k5 e5 r. sServerAdmin webmaster@yourdomain.com
3 o' r" F6 r' ~9 @% a) e0 JDocumentRoot /home/httpd/sales.yourdomain.com   S4 k3 g5 t5 C$ Y( ~7 L4 C- ?
ServerName sales.yourdomain.com , N* f( R) c6 |" M  o$ P
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log " u) P# h# \; {/ k: f: j1 t
TransferLog /var/log/httpd/sales.yourdomain.com/access_log 7 h3 {  v0 t0 }% e+ W0 K+ }
</VirtualHost> ; p2 X. r6 q) L8 _; v
然后分别创建目录 ( k, L. ?9 C6 T4 P
/home/httpd/sales.yourdomain.com,
3 z8 Z5 \2 D6 d$ L4 i- u/var/log/httpd/sales.yourdomain.com : s3 f2 Q5 `5 c+ b
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 + Q* X# ?* P+ f9 e8 Y: {. I
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。 - A) ]) a, x& T) k, }# N
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的   ?6 a% Y3 i- Y/ l% K! s: U* R
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
4 v8 m# ~0 w" b! B7 \& e方案。
2 N; o2 T6 j# W
) ?- ~& M  t9 ?. x; ?# |2.基于名字的虚拟主机:
3 S0 N$ l3 a% v5 X2 P' E4 j! T  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
  Q. e. y  D" s7 r浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件 # H  p3 w- d0 J" J
/etc/httpd/conf/httpd.conf
7 N7 M8 ~1 _2 j% w2 HNameVirtualHost 192.168.0.1 2 J# f0 ~  ?5 }! Q
<VirtualHost 192.168.0.1>
  p# S2 [5 K4 d( N5 Q2 r! U. gServerAdmin webmaster@yourdomain.com
0 ]% e. k) u4 c$ U% ]  hDocumentRoot /home/httpd/sales.yourdomain.com 5 o, C& F) \2 r/ I, }9 D
ServerName sales.yourdomain.com
% R" b* `+ C9 s: x& G" wErrorLog /var/log/httpd/sales.yourdomain.com/error_log
  Q9 Y2 [9 y  @) Q, C3 ^5 QTransferLog /var/log/httpd/sales.yourdomain.com/access_log
0 m- m2 W8 E0 Q</VirtualHost> ' c0 Y0 f, W( u# i3 ~2 S
<VirtualHost 192.168.0.1>
4 [4 L, ~6 o0 F4 P- b$ @7 dServerAdmin webmaster@yourdomain.com
" X" w! A/ `8 c6 nDocumentRoot /home/httpd/hr.yourdomain.com
# s( }: |4 E4 H. y$ S! C! WServerName hr.yourdomain.com
* Z+ S% U1 L$ g4 _! G6 dErrorLog /var/log/httpd/hr.yourdomain.com/error_log + q7 h: e" O& J# h
TransferLog /var/log/hr.yourdomain.com/access_log 3 S0 w( |  D% k( j
</VirtualHost>   h2 e8 N$ S. V  M- P  h
注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
7 S) [  f# b8 ?! a0 t为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS * M$ g, b0 a6 i- m+ ?5 _
都指向IP地址192.168.0.1 4 _9 K) s) U+ `6 ?* g, C0 U
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 # a3 |6 ?! C% r# T' G1 k
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, ' ]7 Z0 p6 c- H% b2 i+ G
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
9 f  Y3 p' n1 s3 m/ D+ U9 _8 K6 }提示:上面所提到的相对目录可以用绝对路径代替,如:
1 s  u$ B. S# c4 m# V+ E/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot
; d/ `, [/ T* M==================END=======================
$ }2 P! u8 j# R! }2 Q" F这只是入门,只能保证你的WEB服务器能正常运,要了解更多的 PHP 及 Apache 的详细设置,还要靠大家更加深入的实践...

另外可以用一个安装包安装全部PHP软件' o& s, M) J. D# `  X* L
下载地址:
8 \7 Z. n3 p5 M" M1 u, d6 yhttp://webclub.net.cn/data/phpStudy1.2.5.rar

TOP

亲娘那* B7 d$ t# m6 t6 g% E9 g  G+ o* `
怎么没图哈" _. E1 v9 O5 v7 Z2 N
应该图文结合啊
- R! X, s2 }8 k

TOP

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