在你的机器上装上IIS系统组件,方法如下:
如何安装IIS - WINDOWS XP下IIS的安装教程:
安装条件:Windows XP操作系统+ 系统安装光盘
其它说明:windows2000下IIS安装和Windows2003下IIS安装可以参照该教程,大同小异
安装步骤:
1、插入windows xp安装光盘,打开控制面板,然后打开其中的“添加/删除程序”
2、在添加或删除程序窗口左边点击“添加/删除Windows组建”
3、捎带片刻系统会启动Windows组建向导,在Internet信息服务(IIS)前面选勾,点击下一步:
7、点击主目录:在本地路输入框后点击浏览可以更改网站所在文件位置,默认目录为:C:\Inetpub\wwwroot
在执行权限后面点击配置-调试-教本错误信息,选中:向客户端发送文本错误信息:处理 URL 时服务器出错。请与系统管理员联系。
点击文档:可以设置网站默认首页,推荐删除iisstart.asp,添加index.asp和index.htm
点击目录安全性:点击编辑可以对服务器访问权限进行设置
8、把你的asp网站文件复制到你选择的网站目录下,假设你选择的目录为为默认目录:C:\Inetpub\wwwroot
9、把frshop.rar解压之后的文件复制到C:\Inetpub\wwwroot\shop下即可
10、您可以通过以下方式访问你的网站:
http://localhost/shop/ 或 http://127.0.0.1/shop/ 其它人可以通过http://你的I用户名或 http://本机IP地址 访问
11、如果您有域名,把域名解析到本地IP地址,即可通过http://域名访问
注意一般机器为局域网上网,网站只能在局域网内部访问,外部一般访问不了,但是可以安装动态解析软件实现外网访问
如果你的服务器不能被局域网内用户看到,原因很可能是因为你的windows防火墙的原因。你可以把防火墙关掉试试,在防火墙中的高级设置中,可以选上WEB服务器选项来解决这个问题。外网访问,可以用花生壳,你可以在网上找有关资料。
IIS安全架设WEB服务器的安全设置
因为IIS(即Internet Information Server)的方便性和易用性,使它成为最受欢迎的Web服务器软件之一。但是,IIS的安全性却一直令人担忧。如何利用IIS建立一个安全的Web服务器,是很多人关心的话题。
构造一个安全系统
要创建一个安全可靠的Web服务器,必须要实现Windows 2000和IIS的双重安全,因为IIS的用户同时也是Windows 2000的用户,并且IIS目录的权限依赖Windows的NTFS文件系统的权限控制,所以保护IIS安全的第一步就是确保Windows 2000操作系统的安全:
1. 使用NTFS文件系统,以便对文件和目录进行管理
2. 关闭默认共享
网上邻居属性--本地连接属性--Microsoft 网络的文件和打印机共享 卸载 可以完全关闭共享
打开注册表编辑器,展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\ LanmanServer\Parameters”项,添加键值AutoShareServer,类型为REG_DWORD,值为0。这样就可以彻底关闭 “默认共享”。。
3. 修改共享权限
建立新的共享后立即修改Everyone的缺省权限,不让Web服务器访问者得到不必要的权限。
4. 为系统管理员账号更名,避免非法用户攻击。
鼠标右击[我的电脑]→[管理]→启动“计算机管理”程序,在“本地用户和组”中,鼠标右击“管理员账号(Administrator)”→选择“重命名”,将管理员账号修改为一个很普通的用户名。
5. 禁用TCP/IP 上的NetBIOS
鼠标右击桌面上[网络邻居] →[属性] →[本地连接] →[属性],打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[WINS],选中下侧的“禁用 TCP/IP上的NetBIOS”一项即可解除TCP/IP上的NetBIOS。。
6. TCP/IP上对进站连接进行控制
鼠标右击桌面上[网络邻居] →[属性] →[本地连接] →[属性],打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[选项],在列表中单击选中“TCP /IP筛选”选项。单击[属性]按钮,选择“只允许”,再单击[添加]按钮,只填入80端口。
7. 修改注册表,减小拒绝服务攻击的风险。
打开注册表:将HKLM\System\
CurrentControlSet\Services\Tcpip\Parameters下的SynAttackProtect的值修改为2,使连接对超时的响应更快。
保证IIS自身的安全性
IIS安全安装
要构建一个安全的IIS服务器,必须从安装时就充分考虑安全问题。
1. 不要将IIS安装在系统分区上。
2. 修改IIS的安装默认路径。
3. 打上Windows和IIS的最新补丁。
IIS的安全配置
1. 删除不必要的虚拟目录
IIS安装完成后在wwwroot下默认生成了一些目录,包括IISHelp、IISAdmin、IISSamples、MSADC等,这些目录都没有什么实际的作用,可直接删除。
2. 删除危险的IIS组件
默认安装后的有些IIS组件可能会造成安全威胁,例如 Internet服务管理器(HTML)、SMTP Service和NNTP Service、样本页面和脚本,大家可以根据自己的需要决定是否删除。
3. 为IIS中的文件分类设置权限
除了在操作系统里为IIS的文件设置必要的权限外,还要在IIS管理器中为它们设置权限。一个好的设置策略是:为Web 站点上不同类型的文件都建立目录,然后给它们分配适当权限。例如:静态文件文件夹允许读、拒绝写,ASP脚本文件夹允许执行、拒绝写和读取,EXE等可执行程序允许执行、拒绝读写。
4. 删除不必要的应用程序映射
ISS中默认存在很多种应用程序映射,除了ASP的这个程序映射,其他的文件在网站上都很少用到。
在“Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“主目录”页面中,点击[配置]按钮,弹出“应用程序配置”对话框,在“应用程序映射”页面,删除无用的程序映射。如果需要这一类文件时,必须安装最新的系统修补补丁,并且选中相应的程序映射,再点击[编辑] 按钮,在“添加/编辑应用程序扩展名映射”对话框中勾选“检查文件是否存在”选项。这样当客户请求这类文件时,IIS会先检查文件是否存在,文件存在后才会去调用程序映射中定义的动态链接库来解析。 5. 保护日志安全
日志是系统安全策略的一个重要环节,确保日志的安全能有效提高系统整体安全性。
● 修改IIS日志的存放路径
默认情况下,IIS的日志存放在%WinDir%\System32\LogFiles,黑客当然非常清楚,所以最好修改一下其存放路径。在 “Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“Web站点”页面中,在选中“启用日志记录”的情况下,点击旁边的[属性]按钮,在“常规属性”页面,点击[浏览]按钮或者直接在输入框中输入日志存放路径即可。
● 修改日志访问权限,设置只有管理员才能访问。
通过以上的一些安全设置,相信你的Web服务器会安全许多。
杀毒软件和防火墙的安装
避免机器受到蠕虫木马类的工具防火墙和杀毒软件是不可缺少的 这样就可以避免以上的蠕虫和变种病毒的入侵了 但是防范恶意的脚本攻击还是不起作用的。
DOS入侵
DOS是Hacker最经典和最常用的一中攻击手段
我们可以进入
windows2003/xp X:\windows\sysset32\cmd.exe (X系统盘符)
windows2000 X:\winNT\sysset32\cmd.exe (X系统盘符)
重命名或者删除CMDshell 最简单和最有效果的方法是 重命名和修改cmdshell的使用权限
注意更改了cmd文件名称的话 批处理不能正常运行的哦
IIS的ASP程序不能浏览的解决方法(经过本人证明,方法很好用):
IIS5的HTTP 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是ASP程序不能浏览但HTM静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录。
一、发生缘由:
由用户方面报告故障,说是该站点上所有的ASP页面均不能访问。
本地运行asp文件,IE提示:
HTTP 500 - 内部服务器错误
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
查看日志文件:
系统日志具体描述如下:
DCOM 错误 无 10010 NT AUTHORITY\SYSTEM Myserver 服务器 {3D14228D-FBE1-11D0-995D-00C04FD919C1} 没有在限定的时间内用 DCOM 注册。
二、原因分析
曾经删除过SA,SAM文件是保存用户密码的数据库文件,删除后,所有的用户信息就会丢失,而相应的组信息也会随之丢失,虽然重新登录过系统,系统已经重新建立了SAM文件,也重新安装了IIS,IWAM帐号也已经重新建立,但是,原用户组中的特殊信息却没有被恢复。
检查“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个IIS Out-Of-Process Pooled Applications该应用程序的ID号即为{3D14228D-FBE1-11D0-995D-00C04FD919C1},很多系统报错找不到应用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}之类的错误,就是因为该应用程序未能启动,打开该应用程序的属性,检查标识却为IWAM用户,右键启动,报错。把IWAM加入本地Users组中,也可正常启动。确定是因为IWAM用户无权访问该应用程序所致。
三、解决办法
1、修改IWAM_Myserver帐号密码,在“开始”->“设置”->“控制面板”->“管理工具”->“计算机管理”中,“系统工具”->“本地用户和组”->“用户”里面,一个IWAM_Myserver(Myserver为本地计算机名)的帐号内,右键更改密码,更改为一个自定义的密码即可,假设为“1234”;
2、修改IIS内部IWAM_Myserver帐号密码,在c:\inetpub\adminscripts\目录下(IIS安装默认目录),输入:c:\inetpub\adminscripts>adsutil.vbs set w3svc/wamuserpass "1234" .修改成功后,系统有如下提示wamuserpass: (string) "******"
(要在命令提示符cmd使用)
3、在“开始”->“设置”->“控制面板”->“管理工具”->“计算机管理”中,“系统工具”->“本地用户和组”->“用户”里面,确认IWAM_My server用户只在GUEST组内,再在“本地用户和组”->“组”里面,右键点击Users组属性,添加进NT AUTHORITY\Authenticated Users和NT AUTHORITY\Interactive两个用户成员,确定。
4、在IIS安装默认目录下输入:c:\inetpub\adminscripts>synciwam.vbs -v
将COM+程序的用户改回为IWAM用户,重新启动IIS Out-Of-Process Pooled Applications应用程序,没有再报错了,再重启IIS,检查所有WEB站点服务,故障现象解除!
至此,故障现象全部排除!
通过此次故障的排查,得出几点需要注意的:
1、事件日志的空间设置稍微放大一些,默认才512K,根据硬盘空间,适当放大一些,避免出现日志文件已满的情况;
2、不要随便轻易清空事件日志中的事件记录,很多故障现象需要从这个里面下手找原因;
3、所有返回的系统提示信息一定要注意仔细查看;
4、IIS中的应用程序保护应为中或高,如为低,则所有ASP页面均以本地系统权限运行,安全性存在问题。
5、COM+程序的用户权限和用户启动权限很重要,应注意检查。
6、系统默认组有时有重要作用,不能轻易删除或修改。
7、系统重要文件(如SAM)不可轻易删除,应尽可能采取妥善的解决方法。如使用外部程序修改注册表或SAM表信息以获得管理员权限。而不要删除该文件。
、使用组件服务MMC管理单元
(1)启动组件服务管理单元:选择“开始”->“运行”->“MMC”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。
(2)找到“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”->“Out-Of-Process Pooled Applications”,右击“Out-Of-Process Pooled Applications”->“属性”。
(3)切换到“Out-Of-Process Pooled Applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中,用户名是“IWAM_MYSERVER”。这些都是缺省的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“Aboutnt2001”,确定退出。
(4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。
(5)如果我们在IIS中将其它一些Web的“应用程序保护”设置为“高(独立的)”,那么这个WEB所使用的COM+应用程序的IWAM账号密码也需要同步。重复(1)-(4)步,同步其它相应Out of process application的IWAM账号密码。
2、使用IWAM账号同步脚本synciwam.vbs
实际上微软已经发现IWAM账号在密码同步方面存在问题,因此在IIS5的管理脚本中单独为IWAM账号密码同步编写了一个脚本synciwam.vbs,这个脚本位于C:\\inetpub\\adminscripts子目录下(位置可能会因你安装IIS5时设置的不同而有所变动)。
synciwam.vbs脚本用法比较简单:
cscript synciwam.vbs [-v|-h]
“-v”参数表示详细显示脚本执行的整个过程(建议使用),“-h”参数用于显示简单的帮助信息。
我们要同步IWAM_MYSERVER账号在COM+应用程序中的密码,只需要执行“cscript synciwam.vbs -v”即可,如下:
cscript c:\\inetpub\\adminscripts\\synciwam.vbs -v
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2000。保留所有权利。
WamUserName:IWAM_MYSERVER
WamUserPass:Aboutnt2001
IIS Applications Defined:
Name, AppIsolated, Package ID
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Root, 2,
IISHelp, 2,
IISAdmin, 2,
IISSamples, 2,
MSADC, 2,
ROOT, 2,
IISAdmin, 2,
IISHelp, 2,
Root, 2,
Root, 2,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Updating Applications:
Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04FD919C1}
从上面脚本的执行情况可以看出,使用synciwam.vbs脚本要比使用组件服务的方法更全面和快捷。它首先从IIS的metabase数据库找到IWAM账号"IWAM_MYSERVER"并取出对应的密码“Aboutnt2001”,然后查找所有已定义的IIS Applications和Out of process applications,并逐一同步每一个Out of process applications应用程序的IWAM账号密码。
使用synciwam.vbs脚本时,要注意一个问题,那就是在你运行synciwam.vbs之前,必须保证IIS metabase数据库与Active Directory中的IWAM密码已经一致。因为synciwam.vbs脚本是从IIS metabase数据库而不是从Active Directory取得IWAM账号的密码,如果IIS metabase中的密码不正确,那synciwam.vbs取得的密码也会不正确,同步操作执行到“Updating Applications”系统就会报80110414错误,即“.IIS服务器架设与IIS的ASP程序不能浏览的解决方法 .找不到应用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}”。
批处理同步
可以用一些BAT来修复这类IE问题的.
好了,到现在为止,IWAM账号在Active Directory、IIS metabase数据库和COM+应用程序三处的密码已经同步成功,你的ASP程序又可以运行了!
把下面的语句复制出来,粘贴到文本文件中.然后把文本文件保存生扩展名为.BAT的文件.例如:ie.bat.双击打开该BAT文件.一步步确定到最后.问题就能解决了.
IE.BAT
rem =====第七频道批处理开始========
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\System32\\dacui.dll
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\Catroot\\icatalog.mdb
regsvr32 /s setupwbv.dll
regsvr32 /s wininet.dll
regsvr32 /s comcat.dll
regsvr32 /s shdoc401.dll
regsvr32 /s shdoc401.dll /i
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s comctl32.dll /i
regsvr32 /s inetcpl.cpl /i
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s mmefxe.ocx
regsvr32 /s proctexe.ocx mshta.exe /register
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s thumbvw.dll
regsvr32 /s cryptext.dll
regsvr32 /s rsabase.dll
regsvr32 /s triedit.dll
regsvr32 /s dhtmled.ocx
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s hmmapi.dll
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s occache.dll /i
regsvr32 /s iepeers.dll
regsvr32 /s wininet.dll /i
regsvr32 /s urlmon.dll /i
regsvr32 /s digest.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s icmfilter.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s voxmsdec.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s vgx.dll
regsvr32 /s WEBPOST.DLL
regsvr32 /s WPWIZDLL.DLL
regsvr32 /s POSTWPP.DLL
regsvr32 /s CRSWPP.DLL
regsvr32 /s FTPWPP.DLL
regsvr32 /s FPWPP.DLL
regsvr32 /s FLUPL.OCX
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
rem =====批处理结束========
另:
前面都很顺利,但在“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”-
>“我的电脑”->“COM+应用程序”中,右键启动IIS Out-Of-Process Pooled Applications,发现仍然
报错,没办法重启IIS,发现问题现象
依旧如故,检查上面第三个步骤,输入csript synciwam.vbs -v命令后,返回的脚本执行情况其中最后一
段有一个Error的提示。一段英文,具
体文字描述未能保存下来,意思理解为:IIS的原数据库拒绝访问。
4、万般无奈,删除IIS的组件包,重新建立之,仍然无效。
至此又出现问题了。
查看应用程序日志和系统日志,发现错误提示事件ID号依旧为:10010、36、4205
上述的三个步骤中,前面两步应该都没有问题,最后一步好象有点问题。
根据事件ID号,查找相关资料,找出解决办法如下:
在“开始”->“设置”->“控制面板”->“管理工具”->“计算机管理”中,“系统工具”->“本地用户
和组”->“用户”里面,确认IWAM_My
server用户只在GUEST组内,再在“本地用户和组”->“组”里面,右键点击Users组属性,添加进NT
AUTHORITY\\Authenticated Users和NT
AUTHORITY\\Interactive两个用户成员,确定。
重复第三个步骤,即在IIS安装默认目录下输入:c:\\inetpub\\adminscripts> csript synciwam.vbs -v
根据返回的脚本执行情况进行查看,最后那一段的Error已经没有了,将COM+程序的用户改回为IWAM用户
,重新启动IIS Out-Of-Process
Pooled Applications应用程序,没有再报错了,再重启IIS,检查所有WEB站点服务,故障现象解除!
也就是说到了这一步IIS下面的ASP程序才正式恢复重新启动。
至此,故障现象全部排除!
因此,以下几点需要注意的:
1、事件日志的空间设置稍微放大一些,默认才512K,根据硬盘空间,适当放大一些,避免出现日志文件已满的情况;
2、不要随便轻易清空事件日志中的事件记录,很多故障现象需要从这个里面下手找原因;
3、所有返回的系统提示信息一定要注意仔细查看;
4、IIS中的应用程序保护应为中或高,如为低,则所有ASP页面均以本地系统权限运行,安全性存在问题。
5、COM+程序的用户权限和用户启动权限很重要,应注意检查。
6、系统默认组有时有重要作用,不能轻易删除或修改。
7、系统重要文件(如SAM)不可轻易删除,应尽可能采取妥善的解决方法。如使用外部程序修改注册表或SAM表信息以获得管理员权限。而不要删除该文件。
通过这个问题,偶发现一些看似复杂和不可思议的问题,只要动脑筋,通过仔细查看、分析,再到网上找到一些有关的文章加以对比——但也切忌死搬硬套——找到自己问题的根结所在,再找出相应的解决办法,问题最终总会迎刃而解。
PHP在XP下IIS和Apache2服务器上的安装(转)
最近,有许多朋友问我在WindowsXp下PHP的安装过程,正好最近我在自己的机器上 成功的以模块化的方式安装了PHP4.23。既然这么多朋友需要,我就以最常见的IIS和Apache服务器为例,把PHP在WindowsXP下的安装 过程写出来吧,希望能对要安装PHP的朋友有点帮助。如果不加特殊说明,以下的介绍同时也适用于Win2000版本。
一、概述:
在 安装之间,你必须先弄懂PHP安装的两种不同模式,一种是Cgi模式(CGI executable),另一种是模块化安装方式。可以这样来区别:在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php.exe去 解释这个文件,然后再把解释的结果以网页的形式返回给客户机;而在模块化中,PHP是与Web服务器一起启动并运行的,所以从某种角度上来说,以 apache模块方式安装的PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。
二、软件准备:
正所谓"工欲善其事 必先利其器",要想在你的机器上运行PHP得首先准备需要的软件。
(一)WEB服务器
首先你需要一要WEB服务器来支持PHP的运行,这里我们选择两种最常见的、也是用的最多的两种服务器来分别介绍。
1.IIS(Internet Infomation Server)
IIS 想必大家都不陌生吧,在Window2000中,IIS默认是被安装的。你可以通过 “开始->设置->控制面板->管理工具->Internet 信息服务”来打开它。如果你没有安装,可以通过Windows的“添加删除组件”来安装它。关于IIS的安装网上的介绍有很多,这里就不再介绍了。
2.Apache
Apache同样是一个非常优秀的Web服务器程序,同时它也是笔者最喜欢的一款Web服务器。它不仅小巧、灵活,而且在使用过程中非常稳定,不会出现一些莫名其妙的错误(IIS相对来说就差多了),更重要的一点是,它还支持把PHP安装成它的一个模块。
所以,笔者强烈推荐你用Apache来安装PHP。现在常用的Apache有两个版本,一个是1.36的版本,另一个是Apache2系列的版本,在这里推荐你使用Apache2版本,你可以在Apache的官方网站上下载到最新的版本。
Apache官方网站:http://www.apache.org
(二)PHP程序
最 新的PHP程序代码你可以在它的官方网站http://www.php.net/downloads.php下载到,注意要选择那种ZIP包的,不能选择 自安装那种,在写本文时,PHP最新版本是4.23版,大小是5417KB。当然你也可以在本站的下载栏目中下载到。好了。软件都准备好了,下面就开始我 们的PHP安装之旅吧!
注:以下的安装过程中是以PHP4.23版本、Apache2.040为准的。
三、IIS下的安装:
1.把下载下来的PHP安装包解压到你的C盘根目录(这里选择C根目录盘是为了以后修改调试方便用,你也可以选择不同的目录),解压后应该能得到一个类似于"php-4.2.3-Win32"的目录,把目录名称改成"PHP"。
2. 打开刚才解压的PHP目录,你会发现有一个叫做"php.ini-dist"的文件,这就是PHP的配置文件了,你需要把它改名成"php.ini",然 后复制到系统目录中(如果你的系统装在C盘,XP下就是"C:\windows",Windows2000下是"C:\winnt")。
以 前有许多介绍PHP安装文件的文章都说要修改php.ini中"extension_dir"和"doc_root"这两项的值,可是笔者在安装PHP过 程中都没有改过,也没有过任何错误,看来这两个参数不是必须的。当然如果你不放心也可以修改一下。把doc_root改成你的服务器的根目录,把 extension_dir改成你的PHP安装文件夹中的extensions文件夹所在的绝对路径。
3. 打开你的IIS信息服务控制台,右击"默认网站"图标,选择属性,打开默认网站属性选择,然后再选择"主目录"选项卡
点击"配置"按钮,你会看到又跳出一个选项卡,上面是已经定义的文档类型。点击"添加"按钮,在出来的对话框的可执行文件文本框中敲入你的php.exe所 在的绝对路径加上"%s %s",在这里是"c:\php\php.exe %s %s",扩展名文本框中写上你要求php程序处理的后缀名,在这里我们写入".php",下面的选项按默认设置即可。
4.好了。现在试着把下面的几段代码保存成后缀为php文件,然后放到你的一个虚拟目录中去访问,看一下是否能出现正常的结果。 也许你会碰到下面的输出结果: Security Alert! The PHP CGI cannot be accessed directly. This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive. For more information as to why this behaviour exists, see the manual page for CGI security. For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page. 不用怕,这是因为现在PHP在IIS中是以Cgi方式运行的,而你的php配置文件中这一项又没有打开。如果你看到上面的一段警告,你需要打开你的 php.ini文件,然后查找"cgi.force_redirect = 1"这样一句,把这一句前面的分号去掉,然后把1改成0就OK了,现在再来刷新一下你刚才的页面,如果没有什么意外的话,你的屏幕上的结果应该和我下面的 截屏差不多。到此,PHP在IIS上的安装过程已经完成了。
四、Apache下的安装:
我们这次采用的是Apache的一个全新版本Apache2,以前在Apache下安装PHP记得还比较麻烦,现在在Apache2平台下,我们可以方便的以模块化的方式安装PHP,前提是PHP版本必须是4.0以上的。
当 然,现在还在用PHP3的已经很少了。所以这次我们只介绍如何以模块化的方式在Apache下安装PHP,如果你想了解在Apache下如何以Cgi的方 式加载php,可以参考本站的另一篇文章"PHP+Apache在Win9x下的安装和配置"(http://www.hooday.com /?n=ReadArticle&a=34)。好了,闲话少说,让我们一起来领略模块化安装PHP的风采吧。
1.运行你下载 的Apache2安装文件,安装Apache,安装过程中会提示你输入主机名,管理员信箱等信箱,这些信息在你安装完以后是可以修改的,所以可以放心的输 入。在选择安装路径时,笔者建议你把安装路径也选成C盘的根目录。在一步步的"Next"后,你会发现Apache很容易就安装好了。
现 在再看你的任务栏的右侧,应该有一个类似于这个小图标的图标,这就是Apache2的服务管理器,也是Apache1.X版本所没有的。注意这个图片的状 态,如果有一个绿色的小三角,说明你的服务器已经安装成功,如果是红色的,则说明你的Apache没有安装成功,你需要进一步去找一下失败的根源。
一 般最常见的错误就是端口有冲突,Apache默认的端口是80,如果你的80端口被另一个程序(如IIS)占用了的话,就会出现无法启动的情况。出现这种 情况,你可以按照下面的方法来修改:点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"会打开一个Apache的配置文件,你可以用文本编辑器来打开它。
然后在这个文件的第120行左右,你会发现类似于"Listen 80"的字样。现在只要把这个80改成你想要的端口即可,当然在你用浏览器浏览的时候也不要忘了加上端口哦。
到 了这里,你的Apache应该已经亮起绿灯了吧,下面我们来测试一下它是否在工作。打开你的浏览器,在地址栏上输入"http://localhost /"(如果你的端口不是80,需要在后面加上":端口号"),不知道你是否看到了Apache的欢迎页,笔者在这一步并没有看到,不知道什么缘 故,Apache2版本好像没有默认的引导页面。如果你也没有看到,可以试着在后面加上一个文件名"index.html.en",如果能出现下面类似的 页面,则说明Apache已经工作正常了。
2.好了,Apache已经安装OK了,接下来就是看如何跟PHP结合起来了。
最开始的两步和上边介绍的IIS步骤是相同的,也是解压后复制到C盘根目录,然后改名,再把PHP.ini复制到系统文件夹,如果有必要的话,修改一下"extension_dir"和"doc_root"这两项的值。上边已经说得很清楚,不再多说。
接着便是最重要的一步了,也是模块化安装的核心步骤了,可要看仔细了。
打 开Apache2的配置文件(http.conf),可以通过点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"打开.
或者打开你的Apache安装目录下的Conf目录,你会发现一个名为 http.conf的文件,就是它了,你可以用任一个文本编辑器来打开它。在这个文件的第121行左右,你应该能找到"LoadModule"字样,然后 后面是一串路径,这就是Apache默认要加载的模块了,同样,咱们也可以在其后加上一句,让他来加载PHP模块。
其实,就是这么简单,你只要加上这么一句"LoadModule php4_module C:/php/sapi/php4apache2.dll",这里要解释一下"php4_module"是模块的名称,后面跟的路径则随你的PHP安装目 录而变,这三个字串之间是用空格符分隔的。
接下来,还有一步工作,也是很多安装失败的朋友所忽略的,刚开始笔者也是无论如何加入上边 的那一句后Apache就启动不起来了。后来经过几次试验,才发现,你的PHP安装目录下的"php4ts.dll"必须要复制到windows系统的 system32目录下,否则,就不可能启动起来。
现在再试一下,是不是一切都正常了。好了,再来回顾一下我们在Apache下安装的过程。
(1)添加"LoadModule php4_module C:/php/sapi/php4apache2.dll".
(2)复制"php4ts.dll"到system32目录.
是的,就是这么简单,PHP已经运行在你的机器上了。你可以通过双击任务栏的Apache服务器图标来看到这一点。
3.再来测试一下吧。
把下面的代码保存成info.php文件放在你的Apache安装目录下的htdocs目录下。 然后在浏览器中敲入http://localhost/info.php(如果你的端口不是80,请在localhost/后加上":端口号"),是不是看到了类似下面的屏幕所显示的。如果是,恭喜,你已经成功的以模块化方式安装了PHP
以 上在Apache部分所讲述的东西对不太熟悉Apache配置的朋友可能有一点不太明白,不过只要你按我上面所说的一步步的来,应该都不会出现什么大的毛 病。如果万一不知道自己改的哪一个部分使Apache启动不起来了,你可以切换到Apache安装目录下的Conf文件夹,将http.conf文件删除 掉,再将Apache的默认配置文件httpd.default.conf改名成http.conf即可。如果你想进一步的了解Apache的配置。
四、后记
PHP的安装本来就是一件很简单的事情,特别是后来所讲的以模块化安装PHP的过程。大家有时间都不妨自己试一下,这样你才能体验到成功的喜悦。
最后祝大家都能顺利的安装PHP。