1. 程式人生 > >iis和apache共享80埠。phpstudy 搭建PHP注意事項。

iis和apache共享80埠。phpstudy 搭建PHP注意事項。

iis和apache共享80埠

因為只有一臺伺服器(win2003 server) 既需要在上面跑asp程式 又需要在上面跑php應用 又不想用iis跑php應用 還有就是不想把asp程式跑在apache上 就需要一個apache與iis共存的方案。
iis是windows2003 server自帶的iis6.0
apache是apache2.2.8
--------------------------------------------
首先當然是下載並安裝apache
接著開始先把自動啟動的iis伺服器停下來,修改iis的埠為非80(比如8081)
再接著開啟apache的httpd.conf檔案開始配置
要讓apache支援轉發也就是做iis的代理那麼就要先啟用apache的代理模組:
#LoadModule proxy_module modules/mod_proxy.so
-->LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
-->LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
-->LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
-->LoadModule proxy_http_module modules/mod_proxy_http.so
完成了代理模組的啟用 那麼我們開始配置虛擬主機
先包含httpd-vhosts.conf檔案
#Include conf/extra/httpd-vhosts.conf
-->Include conf/extra/httpd-vhosts.conf
儲存httpd.conf,開啟httpd-vhosts.conf檔案
----------------------------------------------
開始配置虛擬機器
NameVirtualHost *:80
<VIRTUALHOST *:80>
    ServerAdmin

[email protected]
    ServerName    www.b.com
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
</VIRTUALHOST >
<VIRTUALHOST *:80>
    ProxyPreserveHost On
    ServerAdmin [email protected]

    ServerName www.a.com
    DefaultLanguage zh-CN
    AddDefaultCharset GB2312
    ProxyPass / http://www.a.com:8081/ 
    ProxyPassReverse / http://www.a.com:8081/
</VIRTUALHOST>
配置完成並儲存httpd-vhosts.conf
開始重啟apache伺服器和iis伺服器
我們通過www.a.com訪問過去就會看到iis的預設頁面
通過www.b.com訪問過去就可以看到it's work。
這樣我們就實現了iis和apache共享80埠
==================================================
各種方法總結
IIS和APACHE如何共用80埠?

在現一臺伺服器上安裝了IIS之後,因工作需要又得安裝APACHE,網上說把IIS設定為81埠,APACHE設定為80埠,然後可以通過APACHE代理功能來實現,可我試一下只有IIS的WEB功能可以正常訪問。無法解析出APACHE的網頁來。請問有哪位具體配置過?如果配置過的話,那麼具體如何做?
問題補充 2008-10-31 15:28
剛才有一位朋友給了網上的實現方法。不過我只有一個網際網路上的IP。無法按照方法一去實現。我想請問一下用方法三的時候其他什麼地方還需要進行修改嗎?目前就是按方法三來處理的,可就是得不到滿意的效果。
---------
- 答案 -
---------
這個問題我也遇到過,下面是網路上提供的方法,我用的方法一實現的,你可以試下:

本機安裝iis與apache,無法同時使用80埠,現給出解決方法:
--------------------------------------------------------------------------
方法一:

IIS5,多IP下共存,IIS為192.168.0.1,apache為192.168.0.2 原文地址
c:\Inetpub\Adminscripts
cscript adsutil.vbs set w3svc/disablesocketpooling true
該命令反饋如下disablesocketpooling : (BOOLEAN) True
重啟IIS
Inetpub\AdminScripts>cscript adsutil.vbs set w3svc/disablesocketpooling true
由於 DisableSocketPooling 在 IIS 6.0 元資料庫架構 (MBSchema.xml) 中被定義為有效屬性,所以,您仍然可以使用 Adsutil.vbs 設定該屬性,但這種設定不起作用。IIS 6.0 中的功能是新增的核心級別驅動程式 HTTP.sys 的一部分。要配置 HTTP.sys,您必須使用 Httpcfg.exe
------------------------------------------------------------------------------
方法二:

IIS6,多IP下共存,IIS為192.168.0.1,apache為192.168.0.2 原文地址
到2003的CD下的 support/tools/Support.cab。解壓出httpcfg.exe檔案,COPY到windows/system32/目錄下,用法自己看幫助

命令列

繫結到某IP: httpcfg set iplisten -i 192.168.0.1
即命令使用IIS的只監聽指定的IP及埠
檢視繫結: httpcfg query iplisten 
刪除繫結: httpcfg delete iplisten -i 192.168.0.1

命令列
net stop Apache2
net stop iisadmin /y
net START Apache2
net START w3svc

保證iis下的ip設定為全域性預設,Apache中httpconf設定listen 192.168.0.2:80,就應該可以兩個服務同時執行,相互不衝突了。
IIS的訪問地址為http://192.168.0.1,Apache訪問地址為http://192.168.0.2
-----------------------------------------------------------------------
方法三:

網上常用的單IP共用80埠方法,不過不推薦,只是使用Apache的代理,速度有影響將apache設為使用80埠,IIS使用其它埠,比如81,然後將apache作為IIS的代理。

在httpd.conf裡面,取消下面四行的註釋:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

然後建立一個虛擬主機,將該域名的所有訪問轉向81埠。

ServerName iloves.vicp.net
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/

這樣,對外就可以只需要一個埠,即可同時使用apache和IIS的功能了

類推,使用第二種方法,你可以在IIS上配置PHP4,Apache2中配置PHP5,只需要IIS中安裝PHP4,把php.ini複製到\windows目錄即可,這個就不用說了吧,Apache2中,只要把PHP5的php.ini放在PHP5安裝目錄裡面就行了

配置Apache以支援PHP5:

LoadModule php5_module "D:/PHPServer/PHP5/php5apache2.dll"
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
PHPIniDir "D:/PHPServer/PHP5"

其中最重要的一條就是 PHPIniDir,用來指明php.ini檔案所在位置,即PHP5的安裝目錄,注意所有目錄的應該改為D:/PHPServer/PHP5這種格式,而非D:\PHPServer\PHP5,IIS的訪問地址為http://192.168.0.1,Apache訪問地址為http://192.168.0.2

====================================================================================

phpstudy 搭建PHP注意事項。

1.關閉 :php擴充套件及置-》php引數開關設定-》display_errors;(2014,2016預設都是開啟的)

否則SESSION會出錯,也就導致驗證嗎無法顯示。

 

2.開啟:php擴充套件及設定-》php引數開關設定-》short_open_tags;(2016預設都是關閉的)

否則php程式有些以 <? ?>短標籤, 並不是<?php ?>標準標籤的語php語句就不執行,把原始碼顯示出來。

 

3.phpstudy2016需要VC9支援。而且在64位作業系統下,也得安裝的是32位的VC9