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。
Win2003 + IIS6.0 + PHP5 / ASP + MySQL5 服务器配置及虚拟主机基本安全设置相关推荐
- 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下载地 ...
- Windows Server 2003下配置IIS6.0+php5+MySql5+PHPMyAdmin环境
Windows Server 2003下配置IIS6.0+php5+MySql5+PHPMyAdmin环境 配置环境: 操作系统:Windows Server 2003 sp2企业版 Web服务器:系 ...
- win2003 iis运行php环境,win2003 IIS6.0配置php环境如何加载php5isapi.dll
因为我自己是windows 2003+iis我想在上面可以运行php那我休安装了php环境,然后再加载php5isapi.dll就可以,说起来简单但是不成功,下面看我的解决办法. 首先,从PHP官方网 ...
- IIS6.0打开ASP文件,出现500错误或404错误解决方法
IIS6.0打开asp文件提示500错误解决方案和IIS6.0中访问asp文件提示404错误'无法找到该页'的方案 在IIS6.0中,默认情况下没有开启对asp的支持 解决方法:打开 [iis管理器] ...
- Win2003 IIS6.0性能优化指南
问:好多asp.net程序,放在一台服务器上,客户端连接使用一段时间后,在服务器上打开任务管理器一看,发现有很多w3wp.exe,占用内存很大,达到1g,请问为什么会这样?有什么办法可以避免这种情况呢 ...
- Win2003 IIS6.0性能优化指南--Good! 请见原址.
问:好多asp.net程序,放在一台服务器上,客户端连接使用一段时间后,在服务器上打开任务管理器一看,发现有很多w3wp.exe,占用内存很大,达到1g,请问为什么会这样?有什么办法可以避免这种情况呢 ...
- iis6.0与asp.net的运行原理
这几天上网翻阅了不少前辈们的关于iis和asp.net运行原理的博客,学的有点零零散散,花了好长时间做了一个小结(虽然文字不多,但也花了不少时间呢),鄙人不才,难免有理解不道的地方,还望前辈们不吝赐教 ...
- 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 ...
- .net MVC4.0项目发布到阿里云虚拟主机中遇到的问题。
正所谓学以致用,今天本来想做个bootstrap的demo发到服务器上看一下效果,结果服务器搞了半天,最终太晚了没能学到什么东西. 首先写好页面之后我做了一个MVC4.0的网站项目,然后把Bootst ...
最新文章
- vb socket的使用
- 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信
- python人工智能——机器学习——模型选择与调优
- java中ajax的用途_java Ajax的应用
- MySQL性能调优与架构设计——第11章 常用存储引擎优化
- 26.如何使用python操作我们自己创建的docker image呢?
- 6.高性能MySQL --- 查询性能优化(1)
- yii2 中 controller 向layout 传值
- 巧用层次坐标解决统计图分类轴与系列取值
- MATLAB中保存eps文件的正确做法 | 保留颜色
- 计算机关闭提示音,即将发布:如何关闭Apple计算机启动提示音
- [Win10] 解决 Office 安装后图标空白的问题
- python之微信自动恢复
- 用户体验五要素--战略层、范围层、结构层、框架层、表现层
- JAVA 实现《飞机大战-III》游戏
- 信息过剩而注意力稀缺的时代需要的是专注
- 通过freemarker模板,使用jsoup将html转换为word,包含图片
- 用canvas画一个太极图(八卦图)
- 《Unity Shader入门精要》笔记:基础篇(2)
- 需求人员使用CQ的基本职责
热门文章
- 厉挣宝------九个努力奋斗的理由
- 将视频转化为一帧一帧的图像
- win10停止更新的方法以及更新后老是连接不上网的情况
- AE教程丨路径生长动画
- 易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组
- wagon-maven-plugin 快速打包上传并执行springboot应用
- org.apache.http.ConnectionClosedException Premature end of Content-Length delimited message body
- 程序员:面试时,我特么都不敢说我是写公众号的
- Python编程:从入门到实践_动手试一试答案
- 内链和外链到底是什么?