在專案安裝部署的時候,需要開一個ftp埠用來讓前端裝置上傳視訊檔案,及開一個8081的http埠讓網頁瀏覽器播放視訊,雖然配置沒有幾步,但還是希望能夠簡化安裝過程,準備寫一個bat檔案然後一鍵完成部署。
windows server 2008 r2
開啟iis資訊服務
servermanagercmd -i web-server
查詢服務是否開啟
servermanagercmd -query
上面這個命令還會返回各個服務的服務名,可選擇新增。
加粗文字如我需要支援php的CGI模組,上傳檔案的Ftp模組
servermanagercmd -i Web-CGI
servermanagercmd -i Web-Ftp-Server
windows7的新增語句有些不一樣
開啟iis資訊服務
start /wait dism /online /enable-feature /featurename:IIS-WebServerRole
新增CGI
start /wait dism /online /enable-feature /featurename:IIS-CGI
開啟ftp
start /wait dism /online /enable-feature /featurename:IIS-FTPServer
start /wait dism /online /enable-feature /featurename:IIS-FTPSvc
start /wait dism /online /enable-feature /featurename:IIS-FTPExtensibility
iis新增成功之後,會建立一個預設的80網站,因為80埠被其他佔用,所以先刪掉這個預設的網站,用到appcmd.exe,網上有很多關於這個的介紹。
c:WindowsSystem32inetsrvappcmd delete Site "Default Web Site"
新增8081埠,name可自定義,如已存在則新增失敗,id同理,如不輸入id,則預設從1開始增加,http/* 後面配置埠號,這裡是8081埠,/physicalPath:後面跟著物理路徑
c:WindowsSystem32inetsrvappcmd add site /name:"8081" /id:4 /bindings:http/*:8081: /physicalPath:"E:DateMemory"
開啟8081埠的目錄瀏覽,config後面跟網站名稱,就是上面配置的name,如不填則對全域性配置(哈哈不知道沒有效果,沒有嘗試)
c:WindowsSystem32inetsrvappcmd set config "8081" /section:directoryBrowse /enabled:true
新增php-CGI模組程式
這裡可能會遇到 許可權問題,所以先執行 解鎖操作
c:Windowssystem32inetsrvappcmd unlock config -section:system.webServer/handlers
新增模組,第一行語句只要 fullpath後面改成php-cgi.exe的絕對路徑就行了
第2行有幾個引數
path填*.php 因為要對所有的php字尾的檔案生效,
verb是請求方式,get head post,
modules是FastCgiModule,預設安裝沒有這個模組的,所以在上面執行了servermanagercmd -i Web-CGI,這個模組被安裝上去,
scriptProcessor填php-cgi.exe的絕對路徑
c:WindowsSystem32inetsrvappcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath=`C:wampinphpphp5.5.12php-cgi.exe`]" /commit:apphost
c:WindowsSystem32inetsrvappcmd.exe set config -section:system.webServer/handlers /+"[name=`PHP-FastCGI`,path=`*.php`,verb=`GET,HEAD,POST`,modules=`FastCgiModule`,scriptProcessor=`C:wampinphpphp5.5.12php-cgi.exe`,resourceType=`Either`]"
iis預設不支援MP4的mime型別,如果需要的話執行下面的命令
c:WindowsSystem32inetsrvappcmd.exe set config /section:staticContent /+[fileExtension=`.mp4`,mimeType=`video/quicktime`]
下面是配置ftp埠
配置21埠,引數同上面的http引數,但注意的是http和ftp共同name和id,所以name和id都不能於http相同
c:WindowsSystem32inetsrvappcmd add site /name:"21" /id:5 /bindings:ftp://*:21 /physicalpath:"E:DateMemory"
關閉ssl
c:WindowsSystem32inetsrvappcmd set site "21" -ftpServer.security.ssl.controlChannelPolicy:SslAllow -ftpServer.security.ssl.dataChannelPolicy:SslAllow -ftpServer.security.authentication.basicAuthentication.enabled:true
**設定使用者的讀寫
users 為系統使用者名稱
permissions 為讀取和寫入的許可權**
c:WindowsSystem32inetsrvappcmd set config "21" -section:system.ftpServer/security/authorization /+"[accessType=`Allow`,users=`admin`,permissions=`Read, Write`]" /commit:apphost