您的位置:首页 > 编程语言 > ASP

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

2009-01-29 22:07 645 查看
关键词: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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: