1、IIS服务器的搭建php
IIS全称Internet Information Service,中文名:Internet信息服务,专用于微软操做系统平台,兼容微软的各项Web技术,尤为是ASP.NET(其实也就在IIS上能跑),除此以外,IIS还支持CGI,IIS7之后的版本对Fast-CGI支持更好,因此PHP 5.3可使用Fast-CGI和Zend来优化在IIS上的性能,固然早期的ASP也是能够支持的,JSP的支持相对麻烦,并且性能很差,因此基本没人拿IIS跑JSP。css
基本步骤以下:html
启用功能 -> 设置网站路径和端口 -> 设置权限 -> 设置杂项 -> 正式发布web
1.启用功能:数据库
首先,咱们以Windows 桌面版系统为例,进入Windows的“控制面板”,如图所示浏览器
(Windows 桌面版控制面板)安全
进入“程序”,而后点“启用或关闭Windows功能”,而后就能看到一下选项,找到Internet Information Services(在Windows 7为Internet信息服务,下同),如图所示服务器
(Windows 桌面版的 Windows 功能)网络
在Internet Information Services以前的选项框上打勾,会发现有些内容是方块型的,意思是没有彻底启用其中的功能,建议按照图片上的介绍把“应用程序开发功能”中的内容所有勾选,要不IIS搭好之后只能挂HTML这种静态网页。勾选完成后,如还须要其余方面的功能,如ODBC日志、动态内容压缩、HTTP重定向等功能,也能够再次勾选,固然如今不勾选之后再加也没问题。框架
(关闭 Windows 防火墙)
完成后,点击肯定,Windows自动安装IIS功能,安装完成后,建议在“系统和安全”中,彻底关闭防火墙,保证IIS的其余端口可被访问,在IE或其余浏览器中,打开http://localhost,出现以下界面,则说明搭建成功
(IIS8 欢迎界面)
接下来,咱们来看看在Windows Server 2012 R2上的IIS搭建过程
首先,打开“服务器管理器”,在右上角找到“管理”->“添加角色和功能”,如图所示
(Windows Server 2012 R2 服务器管理器添加角色和功能)
接着,一直点击“下一步”,直到“服务器角色”一项,在右侧列表中找到“Web 服务器(IIS)”一项,如图所示
(Windows Server 2012 R2 添加服务器角色)
成功添加角色后,会提示你选择所需的功能,相似前面Windows 桌面版的介绍,选择本身所需的功能,推荐将“应用程序开发”中的全部选项所有勾选!若是做为真正的服务器使用,最好把功能所有配齐,免得再次配置。勾选完后,一路“下一步”等待安装完成便可。
(Windows 7和Windows Server 2008 R2的配置相似对应的桌面版和服务器版,可参照上面的介绍配置)
安装完成后,查看Windows服务,能够发现多出一项名为“World Wide Web Publishing Service”的服务,这个服务用于启动和管理IIS进程,保证Windows开机启动时,自动运行,而不须要某一个用户登陆。
(IIS的服务)
2.设置网站路径和端口
虽然服务器功能启用完毕,虽然咱们能够在局域网内经过IP地址或者在本机用localhost进行访问,但咱们只是浏览了微软给咱们的示例,咱们须要让IIS展现咱们本身写好的网站,此时就须要将网站相关的文件,如:aspx、html、dll等,这里,咱们用ASP.NET中最简单的WebForm形式单页面演示如何部署一个真正的动态网站。
首先,假设咱们的网站已经在VS中彻底开发完成,如图所示,网站基本目录文件以下:
(一个基本的WebForm网站)
提早说明一点:这个网站就是一个基本的Web API,根据参数id(GET或POST提交),从数据库中取出对应ID的数据,当id为0或不能转换为int型数据时,返回全部数据,超出范围则返回空数据。
若是直接运行或者调试,会看到下面的画面,其中,浏览器地址是localhost+一个随机的端口号,这是VS将网站挂在了自带的IIS Express上,但IIS Express仅容许本地调试使用,若是在局域网测试或者把VS的调试关闭,则会发现网站不能访问。
(IIS Express展现结果)
因而,咱们如今能够有两种方式整理网站须要的文件,第一是本身手动去复制,第二是用VS自动打包。若是不是网站特别大,文件特别多,仍是建议本身复制。如图所示,打开项目的源文件夹,咱们会看到许多文件,有.cs、.vscxproj、.config等,其中,咱们须要的只有如下几种类型:
第一,网站的视图或页面文件,WebForm为aspx,MVC为cshtml或aspx,WebService为asmx等等
第二,网站的资源文件,如js脚本、图片、css文件等
第三,网站的动态连接库,即整个bin文件夹,及及其中的dll文件
第四,网站的配置文件,Web.config
(网站源码文件夹)
剩下的文件,无论以什么后缀名结尾,所有均可以不要,可是不要删,都是你本身的心血!
把这些文件复制到你须要挂网站的地方,若是是服务器系统,只要不是系统目录,你能够任意放,若是是桌面版系统,别放在桌面上、系统目录就行,推荐放在如下几种路径:
第一,IIS默认路径,C:\inetpub\wwwroot\
第二,非C盘的其余路径,如D:\xxx
第三,非网络路径的其余可读写、脚本可执行路径
接着,咱们要在IIS里进行网站路径设置。打开IIS,在左边的列表中看到“网站”一项,如图所示,这里列出了全部在本机IIS服务器上挂载的站点
(IIS中的网站列表)
如今要考虑是将网站挂在本机的另外一个TCP端口(Default Web Site默认绑定80端口,能够将本身的网站挂在8080等端口上)上,仍是将网站挂在80端口下的一个虚拟目录中,这里分别介绍。
首先,若是咱们将网站挂在8080端口上,咱们须要在“网站”中新建一个网站,大体操做为:右键“网站”->“添加网站”->输入信息->点击“肯定”便可,其中,“网站名称”任意填写,“物理路径”选择上面放了网站相关文件的目录路径,剩下端口改成8080或者其余未占用端口都行,点击肯定,访问http://localhost:8080/或者IP地址便可看到本身的网站了,如图所示
(添加一个新网站)
其次,咱们来看一下虚拟路径的添加方法,所谓虚拟路径,就是相似http://www.xiyoumobile.com/admin/等访问方法,看似访问了网站中的另外一个文件夹,实际上访问了另一个网站,在IIS中能够选择“添加虚拟目录”和“添加应用程序”两种方法实现,我的推荐后者,由于不用由于新建一个虚拟目录而考虑.dll文件的放置位置。具体操做:对着要添加虚拟目录的网站右键->"添加应用程序"->填写“别名”和“路径”->肯定,在浏览器中输入网站便可访问到网站,其中,“别名”请填写但愿被访问的虚拟目录名,如http://www.xiyoumobile.com/admin/中,别名就应该填“admin”,而“路径”则按照新建网站的方法填写便可,如图
(添加虚拟目录)
3.设置权限
Windows NT系统出于安全性的考虑,设置了用户组和权限的划分,尤为在普通桌面版或者说家庭版的系统中体现的更为明显,服务器上常常对Administrator赋予了最高权限,有童鞋说,按照上面的方法,搭建完成服务器了之后,Web页面能打开,可是会报错,500或者401等等,基本上是由于权限,若是401就是压根儿啥权限都没有,500有多是在写本地数据库的时候,文件禁止写入所形成的服务器错误,因而乎,就请各位童鞋仔细查看网站目录的权限是否给够了。
如何检查呢,很简单,打开IIS,在左边的列表中选择一个网站或者虚拟目录,而后在右边的“操做”一栏中,选择“编辑权限”->“安全”,如图所示
(在IIS编辑网站目录权限)
在这里能够看到,个人网站目录权限中有“Everyone”、“Authenticated Users”、“SYSTEM”、“Administrators”等几个用户组或者用户名,并容许“Everyone”用户组进行读取和执行、列出等操做,因此网站的脚本、内容都是容许任何人进行访问或者说获取的,有些童鞋的硬盘中没有设置过权限,有可能就没有Everyone的这个权限,因此有可能访问出现以下状况
(因为权限不够而形成访问失败)
遇到这种状况有就能够在刚才(网站目录文件夹)的“安全”中,添加Everyone或者IIS_IUSRS访问权限,若是须要文件上传,能够将某个文件夹设为可读可写可执行,只要在须要的权限上打上勾便可,如图
(设置IIS_IUSRS的权限)
4.设置杂项
童鞋们该等急了,这下网站应该能够算正式发布了吧,别急,还有点东西要说!!
第一,默认文档
有些童鞋说,安装你说的方法都配置好,怎么打开仍是报错啊,就像下面的错误:
HTTP 错误 403.14 - Forbidden
Web 服务器被配置为不列出此目录的内容。
(网站未找到默认文档报错)
可是你会发现若是打http://localhost:8080/Default.aspx又能够访问了,这是由于:IIS默认的默认文档为如下几个:Default.htm、Default.asp、index.htm、index.html、iisstart.htm、default.aspx(在此说明一下,因为Windows系统在路径上不区分大小写,因此IIS上发布的网站也是不区分大小写的),若是你的主页文件不在上述文件以内,不输文档名,默认是没法访问到的(这里我故意删除了Default.aspx),因此,针对这种状况,请自行设置默认文档,方法以下(这里假设要挂php网站):
(添加默认文档)
添加默认文档之后,直接敲域名或者IP及端口号便可方法默认页面了!
第二,数据库链接字符串
有些童鞋由于在本机测试时,SQL Server使用的是Windows身份验证,因此VS自动生成到Web.config中的链接字符串以下所示
而若是直接将这个链接字符串使用在网站上时,会发现网页提示:
没法打开登陆所请求的数据库 "Example"。登陆失败。
用户 'IIS APPPOOL\DefaultAppPool' 登陆失败。
如图所示:
(数据库异常)
因此,必定要注意,在将网站挂载到真正的IIS服务器上前,请将修改Web.config中的字符串,确保数据库使用SQL Server身份验证,且若是数据库装在本机,那么Data Source最好设为localhost,1433,以下面的代码所示:
第三,.NET Framework版本
尤为是在Windows 7版本中,默认只支持.NET Framework 3.5,若是.NET Framework 4和IIS的安装顺序不一样,还会形成.NET没有在IIS中注册的问题,因此建议无论先装.NET Framework,仍是先装IIS,都在挂网站前,以管理员身份运行cmd,而后进X:Windows\Microsoft.NET\Framework\v4.0.30319(64位:X:Windows\Microsoft.NET\Framework64\v4.0.30319,X表明系统安装盘,如C),而后执行命令aspnet_regiis.exe -i,这样能够保证.NET4被注册到IIS,IIS才能正常运行.NET4版本以上的程序。
再者,若是应用开发时选择了.NET4,而网站应用程序选择的是.NET2,也是不行的。
这二者都属于运行框架异常,必须配置正确,不然就会报错!
(选择正确的应用程序池)
第四,禁用调试信息
调试信息通常在本地开发时有用,正式发布后若是让访问者看到,也会暴露一些网站信息,同时显得开发者很业余,因此请在正式部署后,关闭调试信息,具体操做以下:
修改Web.config,将下面的内容修改
修改后
这样就关闭了远程访问时的调试信息
第五,添加MIME类型
若是须要让网站提供一些新文件访问的服务,必须在IIS中添加一些文件的后缀名和MIME类型,尤为是IIS7,默认没有.mp4格式文件的支持,若是不添加MIME类型,HTML5就不容易实现,还有其余的文件,如apk、ipa等安装包,因为不经常使用,在IIS上也须要手动添加进来,若是不添加,就会报“404 Not Found”的错误,添加方法以下:
(添加MIME类型)
第六,其余设置
其余的设置包括访问控制、IP地址过滤、反向代理、SSL、日志、CGI等等,这个根据我的须要来配置,并且都不是很困难,除非你要在IIS上跑Java。关于IIS的反向代理,童鞋们能够戳个人另外一篇博文:《IIS上的方向代理》,之后我会继续写面向新手的Web服务器搭建教程,涵盖Nginx、Apache和IIS上的PHP等等,感谢你们的关注!
出处:http://blog.csdn.net/yuanguozhengjust/article/details/25747729