场景
需要在客户服务器上进行项目部署实施:
- 客户提供的服务器只有Windows平台;
- 客户可提供的二级域名有限,或无法提供二级域名;
- 服务器所在网络监管很严格,一般只开放80服务端口(如需开放其他端口则需要较长审批流程),无法通过VPN或FTP方式进行后期系统维护;
客户服务器环境为:
- Windows
2003
-
IIS
6.0(.Net Frameworks 2.0+)
项目部署环境要求:
- PHP
5.3.13
- MySQL
- 微博(记事狗)
- 论坛(Discuz!)
解决方案
1.准备工作
A. 通过Google搜索解决方案(得出参考文献如后面所列)。
- 2种可选方案 - ISAPI和FastCGI;
- 最终选择FastCGI - 由于文章中指出“ISAPI方式稳定性不佳,经常会导致整个Web Server
Crash,所以微软特别针对IIS开发了FastCGI模组(IIS7已内建),据说效能及稳定性都有较大改善”。
B. 在本地搭建模拟部署实施环境 - IIS上搭建项目部署所需环境准备工作如下:
- 下载 PHP 包( 使用 php-5.3.13-Win32-VC9-x86.zip 线程安全版 ) -
最好安装于非系统盘,与项目系统处于同一文件夹且需是英文目录路径(暂时不考虑IO问题)。
- 下载 FastCGI for IIS 包并安装 - 默认安装于 %windir%\system32\inetsrv
目录下,包含fcgiext.dll、fcgiext.ini、fcgiconfig.js等几个文件。
2.模拟环境搭建
按照参考文章中所列,逐步修改相关配置。
开始确实摸不着头脑,实际上这几个 ini
配置文件中对于其中配置条目都有相关说明,比如php.ini中对默认使用什么值、建议在Windows平台上打开或关闭配置项等,fcgiext.ini
中非常详细地举例说明了多种php处理方式。
2.1 PHP.ini
相关配置变更
1. 首先开启『扩展目录』配置项
然后修改 PHP.ini 配置文件中如下3个配置项(IIS 的辅助配置):
cgi.force_redirect = 0 cgi.fix_pathinfo=1 fastcgi.impersonate = 1
2. 同时,需要开启MySQL相关配置(在如下图所示配置节)
具体应该只开启 MySQL 对应动态链接库配置项
3. 需开启下面设置项,以避免 Discuz! 出现 PHP 不能进行 script 解释的问题。
4. 部署时需打开 log 相关选项(如下图所示的 ini 配置节)
如下图需打开『显示启动时错误信息』选项,一般按照 PHP.ini 文件配置相应说明进行对应修改即可。
进入实际生产环境时需关闭 log 并开启文件 log
5. PHP 按照上述配置后可以先放置 phpinfo.php 检查 PHP运行环境是否
OK,如果提示有自动区域设置(Locale)问题,可以通过修改下图所示配置项完成:
记得删除 phpinfo.php
2.2 fcgiext.ini 配置文件变更
修改 fcgiext.ini 配置文件 - 指定fcigext.dll需要处理的IIS站点及相关配置
一般需指定
fcgiext.dll 对应处理的 IIS 站点编号(如下图所示),避免客户服务器环境多系统间影响。
并在 [Types]
中进行设定,其中:
php:823433=PHP ;小写php为指定处理.php后缀的url请求,冒号后面数字标识对应IIS站点编号,等号右边的大写PHP表示对应的具体处理节[PHP]
[PHP]节中定义对应用于FAST
CGI方式的PHP环境,这个方括号[PHP]内的PHP可以自定义,只需与[Types]中描述对应即可。
此外,须将下面两个时间设长些,因Discuz!中对 UCenter
的处理时间相当长(登录大概要10多秒钟):
RequestTimeout=50
ActivityTimeout=90
2.3
IIS 相关配置变更
假设PHP安装路径在
C:\PHP5,但从客户服务器环境及系统更新维护角度讲不建议这样做。
對
C:\PHP5 目錄增加 IIS_WPG 群組的讀取及執行權限。
(沒加這個就會跑出
FastCGI Error)
5.
加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。
Path=C:\PHP5;
PHPRC=C:\PHP5
6.
開啟 IIS 管理員,如下圖設定。
7.
增加預設首頁 index.php
8.
檢查網頁服務延伸。
(正常的話應該會有這一項,若沒有請自行加入
C:\WINDOWS\system32\inetsrv\fcgiext.dll)
主要需注意:
A.
PHP.exe所在目录的可执行权限设定 - 需注意保障客户服务器安全,除非必要不要开启 IIS_WPG
系统默认用户组除了文件夹浏览、读取、执行权限外其他任何权限,特别不能为了简单直接开启系统的
Everyone 权限。
B.
尽量不使用fcgiext.js进行配置,而是直接修改fcgiext.ini配置文件 -
因为客户服务器有时会出于安全考虑关闭了本地cscript脚本的执行服务。
存在(遗留)问题
1. PHP 的文件 log 好像不能启动;
2. PHP 相关优化配置工作没有进行 - 数据库缓存设置、进程内存使用大小限制、上传文件限制等;
3. fcgiext 相关优化配置工作没有进行;
4. 未进行压力测试,需进一步对系统瓶颈进行考察 - 通过Google搜索或压力测试
建议
1. 最好将
Discuz! 和 微博(记事狗)分别放置于不同的应用程序池 -
如BBS和Weibo,以避免同一个w3wp.exe进程内执行的相互影响。
2.
最好将各站点除.php外地其他所有对应处理扩展都删除。
3. 将 IIS
相关优化整理出来。
参考
工具
分享到:
相关推荐
### cve-2017-7269-iis6.0环境搭建及复现过程 #### 一、背景介绍 CVE-2017-7269 是一个针对Microsoft IIS 6.0 WebDAV扩展的远程代码执行漏洞。此漏洞允许攻击者在未经过身份验证的情况下向IIS 6.0服务器发送恶意...
cve-2017-7269-iis6.0 的poc 再metersploit中使用,亲测可用。
IIS6.0作为一款成熟的Web服务器软件,以其稳定的运行、良好的安全性和高效的性能在企业级环境中得到了广泛应用。通过合理的配置和管理,IIS6.0可以满足各种复杂的网站和应用需求,并且具备强大的扩展能力,为IT专业...
对于需要在Windows XP环境中搭建Web服务器或者运行旧版应用程序的用户来说,这个安装包是非常有价值的。安装时,用户需要注意关闭防火墙或者设置相应的端口例外,以确保IIS可以正常提供服务。同时,由于XP系统已不再...
IIS6.0引入了诸如 metabase、应用程序池和更精细的安全控制等功能,使其在企业级Web服务部署中得到了广泛应用。 **安装IIS6.0** 在安装IIS6.0时,可能会遇到找不到文件的问题。这通常是因为安装程序没有自动定位到...
win2003系统iis6.0完整版 IIS 6.0安装说明: IIS 6.0 适用于Windows server 2003系统安装步骤如下: 开始---控制面板----添加/删除程序----添加/删除Windows组件(A)----应用程序服务器--- 将解压后的IIS文件路径复制...
在 Windows 2003 + IIS 6.0 环境下,以 FastCGI 方式配置 PHP 5.3.3 需要经过四个步骤:IIS 6.0 环境配置、下载 PHP 5.3.3、配置 PHP 和下载安装 Microsoft FastCGI Extension for IIS 5.1 and 6.0。 首先,需要在 ...
在IIS 6.0中启用NNTP服务,可以建立一个新闻服务器,提供论坛式的讨论环境。NNTP配置涉及设置服务器的新闻组列表、用户访问权限、存储位置以及与其他NNTP服务器的同步策略。 4. **IIS 6.0中的集成与管理** IIS 6.0...
IIS 6.0 中的一个最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。 要点 为了更好地预防恶意用户和...
在描述中提到的“已测试能够安装成功”,表明该压缩包包含了完整的IIS6.0安装文件,适用于那些需要在兼容环境(如Windows XP Professional或Windows Server 2003)中搭建Web服务器的用户。 IIS6.0的主要特性包括: ...
总的来说,通过这个“Microsoft IIS v6.0教程”,你将能够掌握如何部署、管理和优化IIS 6.0服务器,提升Web服务的稳定性和安全性,同时也能了解如何利用IIS 6.0的各种功能来满足不同的Web需求。无论是新手还是有经验...
Windows Server 2003 是微软发布的一款经典服务器操作系统,其内置的Internet Information Services (IIS) 6.0 是一个功能强大的Web服务器组件,广泛应用于企业级网站部署和服务。IIS 6.0 的设计目标是提高安全性和...
通过IIS6.0的强大功能,开发者可以更好地设计、测试和部署.NET应用程序,同时享受到稳定、安全的服务器环境带来的诸多便利。无论你是初学者还是经验丰富的专业人士,掌握IIS6.0的使用技巧都将极大地提升你的开发能力...
作为Windows Server 2003操作系统中的关键组件,IIS 6.0在web服务领域扮演着重要角色,提供了强大的网站托管、应用程序部署和安全控制等功能。 IIS 6.0的主要特性包括: 1. **性能优化**:IIS 6.0引入了工作进程...
2. **添加组件**:通过“控制面板”中的“添加/删除程序”功能,选择“添加/删除Windows组件”,在弹出的向导中勾选“IIS”选项,然后按照提示进行安装。在安装过程中,可能需要插入Windows Server 2003的安装光盘以...
IIS 6.0作为其中的一个版本,是在Windows Server 2003系统中默认搭载的Web服务器,它在安全性、稳定性和性能上都有显著的提升,对于企业和个人开发者来说,是一款重要的服务器软件。 在IIS 6.0的完整安装包中,通常...
IIS6.0,全称为Internet Information Services 6.0,是微软在Windows Server 2003操作系统中内置的一款强大的Web服务器。它为用户提供了一系列的功能,包括网站托管、FTP服务、SMTP邮件服务等,是许多企业和个人在...
IIS6.0(Internet Information Services 6.0)是微软在Windows Server 2003操作系统中内置的一款Web服务器软件。作为一个强大的、可扩展的且高度可管理的Web服务解决方案,IIS6.0在当时被广泛用于企业级的网站部署和...