在工作中,时常会花费宝贵的时间做重复的事情,比如使用IIS图形界面部署一个新网站。今天我们就来聊一下如何使用appcmd这一命令行工具来简化这个工作。
appcmd简介
appcmd,是一个微软操作系统自带的命令行工具,位于系统的C:windowssystem32inetsrv路径下(对于Win7 32位操作系统而言)。我们可以使用“appcmd /?”这一指令查看此工具的基本用法:
![a278e26371d9a6efe39f9fea3232fd57.png](https://i-blog.csdnimg.cn/blog_migrate/5b9f86a05d18a73f31fadd8998f2e443.jpeg)
![09704c7e393c1fdda6cb88bb97d61dc4.png](https://i-blog.csdnimg.cn/blog_migrate/8ae6ae33b94fb0ab0c8efe1a92826ec0.jpeg)
这里首先需要注意的是,使用此工具时,需要提升为管理员权限,否则会出现权限问题。
理解命令行帮助系统
第二个,是了解这个工具的帮助系统。它的帮助系统非常一致和统一,以下以site这一参数做介绍。
执行:appcmd site /?,即打开和site相关的帮助信息,如下图所示:
![354cb9c6d0ab7f0c5402b20f41d7a290.png](https://i-blog.csdnimg.cn/blog_migrate/b6fd42e0e4e1c9ef3993ee22efb82d44.jpeg)
如果想继续了解site下各个命令的使用方法,还可以继续执行:appcmd list site /?。
![947a1ca76701d6ebf450e259f54d9673.png](https://i-blog.csdnimg.cn/blog_migrate/89130270a73acaf45e46e3f9953a367d.jpeg)
这样,在了解appcmd的统一的帮助系统使用方法之后,我们就可以查询其他所有功能指令的使用方法了。
实际演练:WebSite部署
第三个,就是执行具体的功能指令了,以下列举一个具体的新的WebSite的部署实例作为参考:
创建应用程序池
appcmd.exe add apppool /name:
创建WebSite
appcmd.exe add site /name: /id:2 /bindings:http://*:80 /applicationDefaults.applicationPool: /physicalPath:
添加模块映射(因PHP在IIS上解释执行需要添加FastCGI模块映射(注意这里的/后的+代表添加,-代表移除,不带任何符合代表修改):
添加Web Server下的FastCGI模块路径:appcmd set config /section:system.webServer/fastCgi /+[fullPath='(php-cgi.exe全路径)’]
设置最大请求数目:appcmd set config /section:system.webServer/fastCgi /[fullPath='(php-cgi.exe全路径)’].instanceMaxRequests:200
设置最大实例数目:appcmd set config /section:system.webServer/fastCgi /[fullPath='(php-cgi.exe全路径)’].maxInstances:4
在WebSite下添加模块映射:appcmd set config /section:system.webServer/handlers /+[name=’FastCGI’,path=’*.php’,verb=’*’,modules=’FastCgiModule’,scriptProcessor='(php-cgi.exe全路径)’]
添加默认页
设置index.php为默认页): appcmd set config /section:system.webServer/defaultDocument /+files.[value=’index.php’]
启动WebSite
appcmd start site
重启Web服务器已应用配置更改
sc stop w3svc
sc start w3svc
至此,一个全新的WebSite就完成在IIS上的部署了。
OS: Windows 7 x86
IIS: IIS7.5
![f5ff17196ce62601937e7464c07bfafc.png](https://i-blog.csdnimg.cn/blog_migrate/89be05e81232b2cb396f9259e4437ed4.jpeg)