VPS服务器的win2003系统web虚拟主机IIS环境手工搭建配置教程(php/asp/.net/mysql/mssql)

MYSQL和MSSQL的安装以及其他扩展、基础教程:点击这里

所谓手工搭建配置,即不依赖于任何第三方辅助软件性质的建站,对真正理解IIS、PHP等的工作原理是非常有好处的!
一、IIS6.0的访问和一般设置
1、IIS6.0的访问
win2003系统下请确保你的VPS服务器已经安装了IIS 6.0,一般服务器都有的。如果没有安装,以后的教程会推出如何教你安装IIS 6.0,这里先不表。如何调出IIS 6.0。一般都是在开始菜单里的管理工具里,可以将其快捷方式复制到桌面,或者干脆在桌面新建快捷方式,位置填iis.msc即可。

020

021

2、IIS 6.0的一般设置:
IIS 6.0的一般设置,“Internet 信息服务(IIS)管理器”→“网站”→“属性”→主目录→配置→选项中选择启用父路径(这样可以使用登录认证码)。

021 022 023

3、为优化内存的特殊设置(非必须,可忽略此步):
有些顾客购买的可能是512M内存(独享)的VPS服务器,也可能是那种内存特别大、特别吓人(2G或4G以上)但价格很便宜的那种共享内存的VPS服务器(当然不排除促销款或越来越物美价廉的VPS服务器市场那些大独享内存的),或者说内存尽管很大,但网站太多挤占内存。总之,内存显得很紧张的情况可采取以下设置来优化网站访问:
1)、右击应用程序池,点击属性。
025

2)、回收选项卡设置如图所示,特别注意不要勾选收回工作进程。

024

3)、性能选项卡不要勾选“在空闲此段时间后关闭工作进程”,这些设置都是为了最大限度的利用内存,加速网站访问。如果你不这样充分利用内存,那么再你的内存如果是共享机制的话,你的内存会别其他VPS服务器的用户使用,正所谓“会哭的孩子有奶吃”。你一直声明对内存的使用就最大的利用了本该属于你内存。

026

4)、通过WINDOWS自带的计划任务来实现每日自动重启来释放内存:
操作步骤:
1、打开“开始”/程序/附件/系统工具中”任务计划”,弹出任务计划窗口;
2、然后双击”添加任务计划”;
3、运行“任务计划向导”,按“浏览”;
4、找到c盘下WINDOWS/SYSTEM32目录中的shutdown.exe文件,单击”打开”按钮;
5、在出现的对话框中键入该任务的名字(如”reboot”),执行方式选择“每周” ,然后按“下一步”选择定时关机时间(可以先试一下比现在机器上显示的时间晚1分钟);
6、下一步选中“当单击完成打开该任务的高级属性”,单击”完成”。

5)、设置多个网站的应用程序池为同一个,这样会非常节省内存,具体的网站设置下面的教程还会谈。
022

二、安装PHP 5.2+ZendOptimizer-3.3.3
1、安装PHP 5.2:
安装php5.2.exe到C盘,赋予安装后的php目录users的读取和运行权限很有必要。

001

002
2、设置php.ini配置文件:
1)、假设php5.2安装在C盘php目录下,用记事本打开C:\WINDOWS下的php.ini,如图所示:
016

2)、开头添加在[php]设置默认时区:
date.timezone = Asia/Shanghai

017

3)、在php.ini中找到extension_dir,将值c:\php\ext替换为./

029

030

4)、将C:\WINDOWS\php.ini里的诸如;extension=php_mysqli.dll中的;去掉,保存(可将带;extension=前的;通通去掉,所有的扩展都可以用)。替换所有的扩展为可用,也就是;extension=替换为extension=

018

3、下载ZendOptimizer-3.3.3:点击这里

安装ZendOptimizer-3.3.3,保证以下添加的代码目录关系正确。比如将目录ZendOptimizer-3.3.3放置在C:\php目录下, 配置C:\WINDOWS\php.ini 最后添加代码如下。

019

末尾处添加以下代码,原有代码用;注解掉。

zend_extension_manager.optimizer_ts="C:\php\ZendOptimizer-3.3.3\Optimizer-3.3.3"
zend_extension_ts="C:\php\ZendOptimizer-3.3.3\ZendExtensionManager.dll"

020
4、“Internet 信息服务(IIS)管理器”→“网站”→“属性”→“ISAPI 筛选器”→添加筛选器名称:PHP可执行文件:php目录下的php5isapi.dll。添加php映射文件。

003

012

013

014

015

5、IIS“网站右击,主目录,配置

004

点击.asp,再点击编辑

005

复制以下箭头所指的一行代码,然后点击取消。

006

点击添加:

007

IIS默认网站主目录配置添加扩展名.php,映射到C:\php\php5isapi.dll这个文件。动作设置为GET,HEAD,POST,TRACE(刚复制的粘贴)。

008

009

注意要勾选“脚本引擎”和“确认文件是否存在”:

010

011

6、IIS中的web服务扩展添加PHP5.2,映射到C:\php\php5isapi.dll这个文件,并且设置允许状态。

029

030

031

三、安装安装asp.net 4.0和安装asp.net 2.0

1、开始安装asp.net 2.0和asp.net 4.0,文件分别是NetFx20SP2_x86.exe和dotNetFx40_Full_x86_x64.exe:
asp.net 2.0:点击这里
asp.net 4.0:点击这里

023

如果安装asp.net 4.0遇到以下产生阻滞的问题,请先安装wic_x86_chs.zip:点击这里

021

wic也就是windows imaging component。

022

2、右击IIS里的“网站”,查看属性,点击asp.net可以看到默认的版本是asp.net 1.1,也就是说虽然我们刚才安装了asp.net 2.0和4.0,但新建的各个网站都是默认asp.net 1.1。所以要想办法改变这种默认属性,最好是asp.net 4.0,办法是先注册asp.net 2.0,然后再注册asp.net 4.0

027

开始菜单,运行注册asp.net 2.0,运行以下代码:

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 /aspnet_regiis.exe -i

另外也可以运行:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i -enable
(如果不设置,访问网页时会出现异常详细信息: System.Web.HttpException: 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限)

024

安装过程中,直到提示完成!
025

注册asp.net 4.0到IIS中也是如法炮制,运行以下代码:

C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i

另外也可以运行:
C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i -enable

026

现在ASP.net的默认设置已经变成4.0了!

028

3、还有要安装一些asp组件,比如AspJpeg和AspUpload,可以选择下载。
AspJpeg:点击这里
AspUpload:点击这里

四、域名绑定:
在安装discuz!、Z-BLOG、discuz!NT之前(有关这些程序具体的安装过程:点击这里),要设置好根目录的域名(这里的程序都是以子目录演示的,诸如club、blog、bbs等子目录)。打开IIS,右击要编辑的网站,比如这里的“默认网站”,点击属性,点击网站选项卡,点击高级:

015

点击添加:

016

输入主机头值,也就是域名,比如这里的t.shiyibook.com。但注意域名商那里也要设置好域名解析。一路确定。

017

怎么查看网站的目录结构,右击网站,点击打开即可。

019

这就是这个网站的目录结构。

020

五、最简单的网站测试(以默认网站为例):

002

1、下面来测试最简单的php、asp、asp.net程序,以初步检查环境是否正确。
测试用的源码下载:点击这里

021

将测试用的源代码解压到网站根目录。

022

可以看到解压后的文件有1.php、2.asp、3.aspx这三个文件。

023

2、其中,访问2.asp的时候,可能出现service unavailable的错误。这种情况后来发现是IIS中ISAPI 筛选器php 5.2呈现未加载状态的红色,这说明php虽然安装,单并未加载成功。后来发现是php目录的权限问题,这一问题已经在上面安装php的时候解释过了,并给出解决办法。也可能是安装php时任何忘记的设置导致的,所以请严格执行上面的php安装步骤。有时php目录多了IIS_WPG权限的设置也会出现此类问题。解决service unavailable后别忘了重启IIS。

024

025

026

如果上面设置的还不行,右击该网站,点击权限,根据情况,网站的目录添加INTERNET来宾用户权限(IUSR开头的用户)或者USERS用户组权限,总之多试试(正常情况下VPS服务器一般没此类问题,出了问题多试试)。

024

然后访问2.asp又可能出现无法找到该页的问题,这是因为web服务扩展里禁止了ASP了,允许打开即可。如果没问题了,则页面返回“OK!”。

032

028

042

3、这样一一试过1.php、2.asp、3.aspx都没问题后,来设置默认文档。这是没有默认文档的网站首页访问,假设网站首页是index.html。那么IIS中右击该网站、属性、文档设置好添加好该默认首页。

027

023

六、IIS中新建网站的一般过程:
1、以上讲的都是在IIS中已经有的“默认网站”里做的测试。要是我们要新建网站怎么办?因为我们需要不同的子域名绑定不同的网站,这里我们还是以t.shiyibook.com这个域名做例子,因为两个网站不能用同一个域名,所以先把默认网站里的t.shiyibook.com域名删除,来具体在演示一遍新建网站的全过程。

034

2、右击网站,菜单里选择新建、网站。

035

3、给新的网站起个名字,这里就叫web。

036

4、设置网站的IP、TCP端口和主机头,IP如果选择全部未分配就行了(如果你有多个IP可以指定选一个,不过域名商那里的解析也得是这个IP),TCP端口就填默认的80就行了(除非你在国内VPS服务器上运行但又没有备案,想用其他非80端口,这样可以跳过域名备案监控)。主机头也就是域名,这里演示作为例子就填t.shiyibook.com吧。

037

5、域名商那里别忘了解析到目前的IP上。

003

6、然后要求输入网站主目录,这里就选D盘的wwwroot目录。记住勾选运行匿名访问网站。

038

7、下一步,勾选读取和运行脚本即可,其他不要选。菜鸟不懂的就按我说的做,这些都是为了网站安全做的设置。解释如下:运行脚本权限就是运行php或asp或.net的权限,执行一般碰不到不用勾选,写入就是修改php或asp或.net的内容的权限,99%的情况下碰不到,否则网站很不安全。浏览有时会用到的,设置后访问主页首页时的效果如下图所示:

039

8、浏览有时会用到的,设置后访问主页首页时的效果类似如下(在无默认文件的情况下能索引全站文件):

020

9、 然后可以单个对这个网站进行属性设置:

033

10.右击该网站,点击权限,根据情况,有些网页程序需要,给默认网站的目录添加INTERNET来宾用户权限(IUSR开头的用户)或者USERS用户组权限。
024

七、安装GZIP和伪静态组件
1、安装GZIP组件下载(IIS6-SET-GZIP):点击这里
下载后一件安装即可,非常简单。GZIP是压缩网页文件大小的插件,这种压缩并不是我们平常说的文件打包的意思,尽管有点像。总之,这样能使网站访问速度加快。
033

2、安装IIS伪静态插件。
ISAPI_Rewrite_Full:点击这里
ISAPI_Rewrite3_Full:点击这里
第一个是支持php.ini的ISAPI_Rewrite_Full版本,第二个是支持.htaccess的ISAPI_Rewrite3_Full版本。ISAPI_Rewrite_Full版本就是ISAPI_Rewrite 2.9完全版:具有完整功能的版本(无任何限制)。

默认是装在C:\Program Files\Helicon,默认就好了!

034
ISAPI_Rewrite_Full安装使用方法:
1)、将下载文件解压安装,安装过程中你可以自己选择安装目录。
2)、安装完成后打开ISAPI_Rewrite目录中ISRWConfig.exe,输入SN中注册序列号。

042

043

044
3)、设置ISAPI_Rewrite目录权限,如果权限未设置好,可能访问网页时会出现Service Unavailable 的错误。
权限说明:
Administrators 和 SYSTEM 全部权限
IIS_WPG 读取和运行/读取。设置权限的过程如图所示:

035

036 037 038 039 040 041
1)、ISAPI_Rewrite3_Full版本就是ISAPI_Rewrite3,安装、使用方法(ISAPI_Rewrite3版本是3.1.0.73)在将Rewrite破解文件夹中的ISAPI_Rewrite.dll和ISAPI_RewriteSnapin.dll文件覆盖到程序安装目录下,老的ISAPI_Rewrite.dll文件重命名,然后再复制新的即可,以免提示“ISAPI_Rewrite.dll正在被使用,不能复制”。

049

048

050
2)、打开安装目录下的httpd.conf文件,在里面输入以下内容并保存,这样就没有使用天数的限制了;
RegistrationName= wlqcwin
RegistrationCode= 2EAD-35GH-66NN-ZYBA
046

047
3)、安装好后记得给ISAPI_Rewrite3软件安装目录network service的读权限。
并在IIS默认网站ISAPI筛选器添加ISAPI_Rewrite_Full版本的映射文件ISAPI_Rewrite.dll,添加ISAPI_Rewrite3_Full版本的映射文件ISAPI_Rewrite.dll。    045

4)、安装过程中IIS会自动安装好ISAPI筛选器中的伪静态。如果没有安装,请添加,将配置路径指向ISAPI_Rewrite.dll。

051

5)、打开IIS管理器,点击左边菜单里的[Web 服务扩展],然后选中右边web 服务扩展中的[所有未知 ISAPI 扩展],再点[允许]按钮。

052

八、网站不同目录的权限优化:

下面谈谈网站对应的三个不同的子目录安全设置,假设有网站有html、database、net这三目录。其中html只放置一些html等静态文件,database放的是数据库文件,net放的是asp.net程序文件。
那么网站的整体属性就如同下图做读取和纯脚本的执行权限即可。

027

在做上述设置时,已经有了一些网站或目录,所以IIS会提醒你是否这些这些目录的权限也执行上面的设置。

028

然而对于net目录放的是asp.net程序文件,因为不同于php、asp等程序,asp.net要求必须以程序身份运行,最好应用程池还要单配的。那么右击net目录的属性,创建新的应用程序即可。029

030

database目录放的是数据库文件,数据库里的信息很敏感,不允许其能被浏览器直接访问到(只能通过php、asp等间接访问),那么就要撤销读取设置。 031

html 目录只放置一些html等静态文件(包括图片、音乐等文件),然而很多php、asp等脚本程序有生成html等静态文件、上传html等静态文件的文 件,这就给黑客留下了安全隐患,他们可以上传伪装的php、asp等脚本程序并来执行来取得更大的系统权限渗透,所以像这类目录要设置为可读取,但无执行 权限的安全级别。 032九、FTP的设置:

其实用VPS服务器,如果是自己用的,用不用FTP来传输文件没那么重要。这里以文字形式简单说说,以供参考。

1、IIS的FTP设置:
a.一种方法是可以运行CMD命令添加:打开程序–运行–输入CMD进入命令提示符–执行命令 net user xxx(账户名) xxx(账户密码)    /add
b.另一个是打开控制面板–管理工具–计算机管理–选择本地用户和组–选择用户–在右边窗口右键新用户.
更复杂的权限设置可查看这里:Windows 2003 IIS下FTP用户权限设置

http://wenku.baidu.com/view/b1e5cf00eff9aef8941e06dd.html

IIS中相应添加设置:详解:开通IIS的FTP服务器并添加多个FTP用户

http://www.cnblogs.com/freespider/archive/2011/11/06/2237815.html

如 何弄出一个总目录,所有用户可以浏览,但各个用户只能管理各自的目录。首先增加一些用户诸如ftp1和ftp2,新建一个目录wwwroot,在 IIS中新增FTP,设置所有人可以访问。下面新建2个目录ftp1和ftp2,赋予wwwroot的users组权限拒绝写入并仅对此目录有 效,ftp1目录增添用户用户ftp1读写权限,ftp2目录增添用户用户ftp2读写权限,则ftp1和ftp2仅能浏览对方而不能对对方写入。如果 users组为灰色不能修改,可以新建一个ftpusers用户组类操作,记得删除ftp1和ftp2的users用户组权限,并且删除wwwroot的 users权限,增添wwwroot的ftpusers的权限并设置仅对此目录ftpusers没有写入权限,不能删除users的话只要保证不能写就行 了,实在不行修改IIS 的FTP授权规则。

2、genne6这样的FTP软件管理:
genne6下载:点击这里
IIS的FTP设置还是挺复杂的,但有助于理解深入权限问题。如果我们不装kangle这样的虚拟主机系统最好不要用IIS自带的FTP,我们最好使用genne6这样的FTP软件管理。

使用说明:
1、运行 Setup.exe 安装,设置administrator的密码。
2、运行Gene6,工具-本地服务-停止启动,退出正在运行的Gene6 G6 FTP Server 程序和线程,包括服务器端程序(任务管理器终止G6FTPServer.exe)。
3、复制registration-key.dat和languages.sib文件到安装目录,重新启动程序。
4、点击Tools\Languages\Chinese选择中文界面。
5、工具-本地服务-开始服务。
6、点击左边菜单local machine,输入administrator的密码并勾选记住密码,登陆。左边会生成中文菜单,右键“域”新建一个域。一路默认,选择不创建匿名 FTP用户。然后在刚才新的域名点击用户新建一个用户,弄好账号、目录和密码,在跳出来的用户设置里的访问权限里先选好路径(这里对应着用户的“虚拟路 径”和“实际路径”可以将很多不同的目录一起规划到这个用户下访问),勾选所有权限,除了文件夹的安全、隐藏和拒绝不要选就OK了。自己用FTP客户端软 件诸如filezilla测试一下是否OK了。如果不能正常访问,检查开始菜单,管理工具中的服务里有没有其他已经安装的FTP服务器,停掉并禁用,将 Gene6启动。

十、如何备份IIS配置,右击击IIS中本地计算机,任务,备份,然后C:\WINDOWS\system32\inetsrv\MetaBack里将备份的配置文件打包,待系统重装或转移时就可以还原了,解压,右击击IIS中本地计算机,任务,还原。

十一、如果window 2003有强制密码的要求可以这样做,不过一般买来的vps如果是windows 2003倒是很少见强制密码的。选择开始>程序>管理工具>域安全策略>帐户策略>密码策略
密码必须符合复杂性要求:由“已启用”改为“已禁用”;密码长度最小值:由“7个字符”改为“0个字符
1、等待系统自动刷新组策略,约5分钟~15分钟
2、重启域控制器(若是修改的用户策略,注销即可)
3、使用gpupdate命令
仅刷新计算机策略:gpupdate/target:computer :
仅刷新用户策略:gpupdate/target:user

十二、如果你安装过kangle服务器并且安装过其IIS插件的,然后卸载了kangle想用简单的IIS服务器的请参照一下内容。
如果你卸载装了带有IIS插件的kangle服务器会发现服务器并不是简单的使用IIS服务器,网站不能访问,一切变得乱七八糟。这时怎么办?

参照这篇《解决卸载kangle后 ,IIS任何端口外网无法访问!内详》:http://www.kanglesoft.com/thread-9119-1-1.html

httpcfg query iplisten 发现只侦听了127.0.0.1,增加 httpcfg set iplisten -i 10.1.1.9 ,其中10.1.1.9替换成你的服务器IP ,重启操作系统才能生效。

如何访问IP就能访问默认的网站,IIS设置网站时只设置IP不设置主机头就行,如果IP也不设置为默认值则127.0.0.1(http://localhost/也一样)也可以访问,前提是侦听了127.0.0.1

如果之后又要重新安装kangle的话,别忘了httpcfg delete iplisten -i 10.1.1.9, 其中10.1.1.9替换成你的服务器IP ,重启操作系统才能生效。

发表评论