Win2003 + IIS6.0 + PHP5 / ASP + MySQL5 服务器配置及虚拟主机基本安全设置

关键词:Windows 2003, IIS 6.0, PHP, ASP, MySQL, 服务器配置, 虚拟主机安全设置, 跨站攻击

IIS + PHP + MySQL 我是在05年配置过一次,之后再也没用过这种搭配。由于Windows2003和IIS6的高安全性使得它实施起来比Apache平台麻烦很多,可能会遇到各种各样的难题,首次配置几乎不可能一次成功。虽然将近有4年没搞IIS的PHP配置了,但一些关键问题还能记得,应朋友的要求帮忙配置服务器,顺便回忆了一遍,现在我把配置方法和需注意的事项说一下,供朋友们参考。

(原创文章,转载时请保留链接:http://blog.csdn.net/rssn_net/archive/2009/01/29/3854682.aspx

一、安装IIS 6.0。

二、ASP配置:
 1. 启用ASP:Windows 2003 IIS 安装后默认不开启ASP。开启的方法是:打开“Internet信息服务器管理器”,在“服务器程序扩展”(Web Service Extension),将“Active Server Pages”改为“允许”即可。
 2. 启用父路经:很多ASP程序需要操作父路经,比如包含父路经文件<!--#include file="../conn.asp"-->,而IIS6默认情况下是禁止操作父路经的。启用方法为:选择相应的网站,“属性->配置->选项”,勾上“启用父路径”。

三、安装与初步配置PHP:

 1. 解压php5安装包,放置于C:/php5,并将该目录权限设置为Everyone可读+运行。

 2. 将php5目录下的php5ts.dll以及所有以lib开头的dll文件复制到C:/WINDOWS/system32目录下。

 3. 对php.ini做必要的修改:将php5目录下的php.ini-recommmended复制一份,文件名改为php.ini,放到C:/WINDOWS下,并作如下修改:
    (1) 找到extension_dir = "./",修改为 extension_dir = "C:/php5/ext";
    (2) 找到session.save_path = "/tmp",修改为 session.savepath = "C:/php5/sessions",同时在php5下新建sessions目录,权限设为Everyone读+写。

 4. 设置PHP解析程序:打开“Internet服务管理器”,选择“网站”(全局设置,影响所有虚拟主机),打开属性页,作如下设置:
    (1) 选择“ISAPI筛选器”选项卡,点击“添加”,在弹出的“筛选器属性”窗口的“筛选器名称”中填入“php”;在“可执行文件”中填入“C:/php5/php5isapi.dll”,点击确定;
    (2) 选择“主目录”选项卡,点击“配置”,在弹出的“应用程序配置”窗口中点击“添加”,“可执行文件”填“C:/php5/php5isapi.dll”,“扩展名”填“.php”,“动作”设置为“全部动作”。 (这一步不一定成功,若完成后查看php页面提示404找不到,请尝试删掉改项目再重新添加。)

 5. 启用ISAPI扩展:打开“Internet信息服务管理器”,在“服务器程序扩展”(Web Service Extension),将“所有未知的ISAPI扩展”改为“允许”。

 6. 重启IIS,在网站目录下建一个php文件,内容为<?php phpinfo();?>,看看能否正确解析。

若不成功,请检查并重复前面几步,尤其是4、5两项。

四、PHP详细配置:打开C:/WINDOWS/php.ini:

1. 将下面几行开头的分号删掉:
  ;extension=php_dbase.dll       可选
  ;extension=php_gd2.dll         这个是用来支持GD库的,一般需要,必选
  ;extension=php_ldap.dll        可选
  ;extension=php_mbstring.dll    必选
  ;extension=php_mssql.dll       这个是用来支持MSSQL的,可选
  ;extension=php_mysql.dll       这个是用来支持MYSQL的,要支持MYSQL必选
  其他的如果需要用到也可以去掉前面的分号;

2. 修改如下几行的值:
  short_open_tag = On             启用短标签,即<? ?>。
  display_errors = On             输出错误信息到浏览器
  error_reporting = E_ALL & ~E_NOTICE    禁用警告提示
  file_uploads = On              允许文件上传

五、MySQL安装与配置:

1. 运行MySQL安装程序,并进行配置:
勾选Configure the MySQL Server now,Next;
选择Detail Configuration,Next;
此处,如果计算机是作为Web服务器运行,选择 Server Machine ,如果是本机调试用,则选择 Developer Machine,Next;
Next;
选择 Mutifunctional Database,Next;
选择 Decision Support(DSS)/OLAP,Next;
Next;
选择 Manual Selected Default Character Set / Collation,将 Character Set 改为 gb2312,Next;
Next;
设定密码,Next;
Execute,完毕!
(未指定的选项均使用默认设置)

2. 安装MySQL控制台程序:

大部分人选择使用phpMyAdmin作为MySQL控制台,但以Web形式进行数据操作会带来很大安全隐患,而且灵活度不高。若仅仅是在服务器上操作MySQL则完全没必要使用phpMyAdmin,我推荐MySQL-Front(Google之)。由于MySQL比起早期的版本,密码验证方式有了改变,为了保持与旧版本程序的兼容性,建议首次登录MySQL时执行如下SQL语句:
set password for root@localhost = old_password("admin888")  (其中admin888是用户密码)。

六、虚拟主机基本安全配置(ASP+PHP):

每增加一个网站,都应为该网站创建一个运行帐号。即在“计算机管理->本地用户和组->用户”中新建一个帐号,并设置密码,建议命名为以“IUSR_”开头,并大写;然后在“Internet信息管理器”相应网站的“属性->目录安全性->匿名访问和身份验证控制”中,填入该用户名和密码。

增加一个网站,在为该网站建立帐号时,都应确保:
 1. 帐号权限应尽可能小,建议令其不属于任何组,或只属于Guests组。
 2. IIS中的用户名和密码应当与建立的IUSR帐号相匹配。
 3. 帐号应有C:/WINDOWS/temp目录的“读+写”权限,建议将该目权限设为Everyone读+写。因为ASP脚本执行过程中需在此存放临时数据。
 4. 帐号应有php安装目录(即C:/php5)的“读+运行”权限。因为php的ISAPI扩展程序在此,并以IUSR身份运行,故需可读并可运行其中的程序。
 5. 帐号应有php5/session目录的“读+写”权限。因为php利用此目录存放Session文件。
 6. 帐号应有相应网站的“读”权限,并允许脚本程序(ASP)执行。
 7. 为了防止脚本跨站读写,每个网站都应使用不同的IUSR帐号,每个网站的目录仅允许本网站IUSR帐号有权限(读取、修改、运行、写入等)。

七、常见问题:
 1. Q: 执行php脚本提示 "Call to undefined function mysql_connect()" 。
     A: php5核心已不再支持mysql,而是作为可扩展的模块执行。需要自行将libmysql.dll复制到C:/WINDOWS/system32目录下,并在php.ini中将extension=php_mysql.dll前面的分号去掉。

 2. Q: 执行php脚本出现很多 "Notice: Use of undefined constant" 。
     A: 这不是错误,而是警告,例如代码 $_SERVER['HTTP_REFERER'] 不存在,则输出警告。在php.ini中设置 error_reporting = E_ALL & ~E_NOTICE。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值