IIS部署PHP項目並與mysql完美結合


 

      在上一篇文章中,提到iis與apache共用80端口,但是發現很多問題,例如 IIS網站有支付功能,而微信支付是不支持帶有端口的網址的,雖然通過apche代理,在外面看來沒有端口,可是內部還是避免不了,所以還是要放棄上一篇使 用的方法

      網絡上也有很多其他的共用80端口的方法,比如 設置 iis的ip地址與apche的IP地址,並進行綁定,可是感覺畢竟不是最終解決的辦法,網絡搜羅的辦法在此也貼出來

     

  1. 方法一:
  2. IIS5,多IP下共存,IIS192.168.0.1apache192.168.0.2
  3. c:\Inetpub\Adminscripts
  4. cscript adsutil.vbs set w3svc/disablesocketpooling true
  5. 該命令反饋如下disablesocketpooling : (BOOLEAN) True
  6. 重啟IIS
  7. Inetpub\AdminScripts>cscript adsutil.vbs set w3svc/disablesocketpooling true
  8. 由於 DisableSocketPooling  IIS 6.0 元數據庫架構 (MBSchema.xml) 中被定義為有效屬性,所以,您仍然可以使用 Adsutil.vbs 設置該屬性,但這種設置不起作用。IIS 6.0 中的功能是新增的核心級別驅動程序 HTTP.sys 的一部分。要配置 HTTP.sys,您必須使用 Httpcfg.exe
  9. 方法二:
  10. IIS6,多IP下共存,IIS192.168.0.1apache192.168.0.2
  11. 2003CD下的 support/tools/Support.cab。解壓出httpcfg.exe文件,COPYwindows/system32/目錄下,用法自己看幫助
  12. 命令行
  13. 綁定到某IP httpcfg set iplisten -192.168.0.1
  14. 即命令使用IIS的只監聽指定的IP及端口
  15. 查看綁定: httpcfg query iplisten
  16. 刪除綁定: httpcfg delete iplisten -192.168.0.1
  17. 命令行
  18. net stop Apache2
  19. net stop iisadmin /y
  20. net START Apache2
  21. net START w3svc
  22. 保證iis下的ip設置為全局默認,Apachehttpconf設置listen 192.168.0.2:80,就應該可以兩個服務同時運行,相互不沖突了。
  23. IIS的訪問地址為http://192.168.0.1,Apache訪問地址為http://192.168.0.2
  24. 提醒:IIS要指定為IP地址192.168.0.1 端口80Apache 設置listen 192.168.0.2:80。關鍵是IIShttpcfg命令綁定后,要重啟系統,僅僅重啟服務是不行的。
  25. 方法三:
  26. apache設為使用80端口,IIS使用其它端口,比如81,然后將apache作為IIS的代理。
  27. httpd.conf里面,取消下面四行的注釋:
  28. LoadModule proxy_module modules/mod_proxy.so
  29. LoadModule proxy_connect_module modules/mod_proxy_connect.so
  30. LoadModule proxy_http_module modules/mod_proxy_http.so
  31. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
  32. 然后建立一個虛擬主機,將該域名的所有訪問轉向81端口。
  33. ServerName iloves.vicp.net
  34. ProxyPass / http://localhost:81/
  35. ProxyPassReverse / http://localhost:81/
  36. 這樣,對外就可以只需要一個端口,即可同時使用apacheIIS的功能了 
  37. 方法四:
  38. 網上常用的單IP共用80端口方法,不過不推薦,只是使用Apache的代理,速度有影響將apache設為使用80端口,IIS使用其它端口,比如81,然后將apache作為IIS的代理。
  39. httpd.conf里面,取消下面四行的注釋:
  40. LoadModule proxy_module modules/mod_proxy.so
  41. LoadModule proxy_connect_module modules/mod_proxy_connect.so
  42. LoadModule proxy_http_module modules/mod_proxy_http.so
  43. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  44. 然后建立一個虛擬主機,將該域名的所有訪問轉向81端口。
  45. ServerName iloves.vicp.net
  46. ProxyPass / http://localhost:81/
  47. ProxyPassReverse / http://localhost:81/
  48. 這樣,對外就可以只需要一個端口,即可同時使用apacheIIS的功能了
  49. 類推,使用第二種方法,你可以在IIS上配置PHP4Apache2中配置PHP5,只需要IIS中安裝PHP4,把php.ini復制到\windows目錄即可,這個就不用說了吧,Apache2中,只要把PHP5php.ini放在PHP5安裝目錄里面就行了
  50. 配置Apache以支持PHP5
  51. LoadModule php5_module D:/PHPServer/PHP5/php5apache2.dll
  52. AddType application/x-httpd-php .php
  53. DirectoryIndex index.html index.php
  54. PHPIniDir D:/PHPServer/PHP5
  55. 其中最重要的一條就是 PHPIniDir,用來指明php.ini文件所在位置,即PHP5的安裝目錄,注意所有目錄的應該改為D:/PHPServer/PHP5這種格式,而非D:\PHPServer\PHP5IIS的訪問地址為http://192.168.0.1,Apache訪問地址為http://192.168.0.2

   思來想去,還是決定使用IIS部署PHP,這樣可以一勞永逸,而且如果以后有其他的語言,比如asp等,也都繼續考慮使用IIS發布

   一、安裝PHP環境 
1、打開php官網,下載PHP5.6環境; 
2、點擊DownLoad,找到5.6或其他版本,點windows download; 

3、根據電腦對應系統的版本下載Non Thread Safe(非線性安全),Apach對應下載Thread Safe(線性安全); 
這里寫圖片描述 

下載出來的文件 php-5.6.28-nts-Win32-VC11-x64.zip

注意的是,在選擇php版本的時候,注意最好與你原項目的版本一致,否則可能會一直報錯,導致不知道什么原因,我就是因為直接選擇了最高的php版本,導致程序一直報錯,切記

在上面的都設置完成之后,注意要等待一會兒,網站才能正常訪問


4、壓縮包解壓后,找到php.ini-development或php.ini-production文件,選擇其中一個復制一份改名為php.ini,用記事本打開,找到 ;extension_dir,,改為 extension_dir = “D:\php\php-5.6.30-nts-Win32-VC11-x64\ext”,找到;extension=php_bz2.dll等以;extension=開頭處,去掉對應開頭的”;”,這里的”;”相當於c#中的注釋,去掉”;”即相當於去掉注釋,使對應的項目變為可用; 
這里寫圖片描述 
這里寫圖片描述 
二、配置IIS6 
1、IIS選中部署的網站,雙擊右側的處理程序映射,點擊右側操作中的添加模塊映射,請求限制中勾選文件或文件夾選擇項; 
這里寫圖片描述 
這里寫圖片描述 
這里寫圖片描述 
2、下載VC++2012運行庫,這步必不可少: 
php5.5系列x86地址:http://www.upupw.net/website/n33.html 
php5.5系列x64地址:http://www.upupw.net/website/n43.html 

vcredist_x64.exe

親測地址可能要多打開幾次才有效,打開后點擊“雲端下載”; 
三、檢測效果: 
1、在本地打開部署在IIS上的網站; 
2、可能會出現這樣的問題:未能從程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加載類型“; 
3、 根據MSDN的解釋:如果安裝了 .NET Framework 4,隨后啟用了 .NET Framework 3.5WCF HTTP 激活,則會發生此錯誤。 
4、解決辦法:若要解決該問題,請在 Visual Studio 2010 命令提示符下運行下面的命令行:aspnet_regiis.exe -i -enable或在cmd中運行:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i -enable; 

注意的是,在選擇php版本的時候,注意最好與你原項目的版本一致,否則可能會一直報錯,導致不知道什么原因,我就是因為直接選擇了最高的php版本,導致程序一直報錯,切記

在上面的都設置完成之后,注意要等待一會兒,網站才能正常訪問

 

接下來就是安裝mysql了

第一步:下載安裝包

下載 地址:http://www.mysql.com/

這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述

截止到目前(2016/7/24) ,官網的最新版本是5.7.13,不過自己沒有使用該版本,下載的是之前的版本5.6.31。

這里寫圖片描述 

平台默認為Windows。

這里寫圖片描述

mysql-5.6.37-winx64.zip

確認自己的機器字長,點擊download即可。

第二步:解壓

解壓之后可以將該文件夾改名,放到合適的位置。我是將文件夾改名為MySQL Server 5.6,放到D:\Program Files\MySQL路徑中。當然你也可以放到自己想放的任意位置。

這里寫圖片描述

第三步:配置(不要急着使用,最好先配置)

配置環境變量PATH后,以后打開mysql就可以不用切換目錄。原理:簡單來說,環境變量里面的PATH,就是cmd系統的查找目錄路徑。你輸入一個指令,系統怎么知道這個指令有沒有呢?系統是怎么做的?其實系統是在當前目錄和系統環境變量PATH里面的路徑里進行查找,以找到的第一個為准,找不到就報錯。所以設置PATH之后,可以省去每次用命令切換目錄的麻煩。 打個比方:系統就像一輛公交車,按着既定的路線走。環境變量里面的路徑就是行駛路線。到了一個站(找到第一個目錄)就下車(運行)。

過程:計算機—>系統屬性—>高級系統配置—>環境變量

這里寫圖片描述

選擇PATH,在其后面添加: 你的mysql bin文件夾的路徑 (如:我的是:D:\Program Files\MySQL\MySQL Server 5.6\bin ) 修改后的PATH為:

PATH=…….;D:\Program Files\MySQL\MySQL Server 5.6\bin (需注意:1.必須在原有PATH后加英文輸入下的分號;2.是追加,不是覆蓋。)

這里寫圖片描述

第四步:修改配置文件

配置完環境變量之后先不要啟動mysql,還需要修改一下配置文件,mysql-5.6.1X默認的配置文件是在D:\Program Files\MySQL\MySQL Server 5.6\my-default.ini,可以自己再建立一個my.ini文件,在其中修改配置:

[mysqld] basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目錄) datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目錄\data)

mydefault.ini內容如下:

這里寫圖片描述

my.ini內容如下:

這里寫圖片描述

第五步:安裝mysql

首先,以管理員身份運行cmd(必須以管理員身份運行,否則權限不夠,會出錯)

接着,進入D:\Program Files\MySQL Server 5.6\bin目錄,

然后,執行命令mysqld –install,若無錯,則會提示安裝成功。

這里寫圖片描述

注:若之前安裝過mysql,但由於某種原因未卸載干凈,當再次安裝mysql時,會提示此服務已存在。可用sc delete mysql命令,刪除之前的版本,再執行mysqld –install命令。

這里寫圖片描述

第六步:啟動mysql服務器

在cmd中 輸入net start mysql 命令。

這里寫圖片描述

第七步:登錄mysql

在cmd中,輸入 mysql -u root -p,第一次登錄沒有密碼,直接回車,登陸成功。

這里寫圖片描述

退出mysql的命令是exit 。直接關閉cmd窗口是沒有退出的,要輸入exit才會退出。

 

   

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM