关键词: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。

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

  1. php iis mysql windows2003,Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程 | 系统运维...

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14 MySQL版本:MySQL5.5.25 二.相关软件下载: 1.PHP下载地 ...

  2. Windows Server 2003下配置IIS6.0+php5+MySql5+PHPMyAdmin环境

    Windows Server 2003下配置IIS6.0+php5+MySql5+PHPMyAdmin环境 配置环境: 操作系统:Windows Server 2003 sp2企业版 Web服务器:系 ...

  3. win2003 iis运行php环境,win2003 IIS6.0配置php环境如何加载php5isapi.dll

    因为我自己是windows 2003+iis我想在上面可以运行php那我休安装了php环境,然后再加载php5isapi.dll就可以,说起来简单但是不成功,下面看我的解决办法. 首先,从PHP官方网 ...

  4. IIS6.0打开ASP文件,出现500错误或404错误解决方法

    IIS6.0打开asp文件提示500错误解决方案和IIS6.0中访问asp文件提示404错误'无法找到该页'的方案 在IIS6.0中,默认情况下没有开启对asp的支持 解决方法:打开 [iis管理器] ...

  5. Win2003 IIS6.0性能优化指南

    问:好多asp.net程序,放在一台服务器上,客户端连接使用一段时间后,在服务器上打开任务管理器一看,发现有很多w3wp.exe,占用内存很大,达到1g,请问为什么会这样?有什么办法可以避免这种情况呢 ...

  6. Win2003 IIS6.0性能优化指南--Good! 请见原址.

    问:好多asp.net程序,放在一台服务器上,客户端连接使用一段时间后,在服务器上打开任务管理器一看,发现有很多w3wp.exe,占用内存很大,达到1g,请问为什么会这样?有什么办法可以避免这种情况呢 ...

  7. iis6.0与asp.net的运行原理

    这几天上网翻阅了不少前辈们的关于iis和asp.net运行原理的博客,学的有点零零散散,花了好长时间做了一个小结(虽然文字不多,但也花了不少时间呢),鄙人不才,难免有理解不道的地方,还望前辈们不吝赐教 ...

  8. iis6.0 php phprc,Windows2003下IIS6.0+PHP5+FastCGI环境配置

    一.FastCGI fcgisetup_1.5_rtw_x86.msi(这个是支持IIS6.0的)下载地址:http://www.iis.net/download/FastCGI 打开页面后点右边 d ...

  9. .net MVC4.0项目发布到阿里云虚拟主机中遇到的问题。

    正所谓学以致用,今天本来想做个bootstrap的demo发到服务器上看一下效果,结果服务器搞了半天,最终太晚了没能学到什么东西. 首先写好页面之后我做了一个MVC4.0的网站项目,然后把Bootst ...

最新文章

  1. vb socket的使用
  2. 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信
  3. python人工智能——机器学习——模型选择与调优
  4. java中ajax的用途_java Ajax的应用
  5. MySQL性能调优与架构设计——第11章 常用存储引擎优化
  6. 26.如何使用python操作我们自己创建的docker image呢?
  7. 6.高性能MySQL --- 查询性能优化(1)
  8. yii2 中 controller 向layout 传值
  9. 巧用层次坐标解决统计图分类轴与系列取值
  10. MATLAB中保存eps文件的正确做法 | 保留颜色
  11. 计算机关闭提示音,即将发布:如何关闭Apple计算机启动提示音
  12. [Win10] 解决 Office 安装后图标空白的问题
  13. python之微信自动恢复
  14. 用户体验五要素--战略层、范围层、结构层、框架层、表现层
  15. JAVA 实现《飞机大战-III》游戏
  16. 信息过剩而注意力稀缺的时代需要的是专注
  17. 通过freemarker模板,使用jsoup将html转换为word,包含图片
  18. 用canvas画一个太极图(八卦图)
  19. 《Unity Shader入门精要》笔记:基础篇(2)
  20. 需求人员使用CQ的基本职责

热门文章

  1. 厉挣宝------九个努力奋斗的理由
  2. 将视频转化为一帧一帧的图像
  3. win10停止更新的方法以及更新后老是连接不上网的情况
  4. AE教程丨路径生长动画
  5. 易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组
  6. wagon-maven-plugin 快速打包上传并执行springboot应用
  7. org.apache.http.ConnectionClosedException Premature end of Content-Length delimited message body
  8. 程序员:面试时,我特么都不敢说我是写公众号的
  9. Python编程:从入门到实践_动手试一试答案
  10. 内链和外链到底是什么?