虛擬主機配置

2021-07-25 09:41:26 字數 3492 閱讀 8945

埠監聽(自擬定埠號)

埠:乙個數字,目的是讓一台電腦(對外只有乙個ip)能夠對外提供多項服務(多種功能)。

常見的服務和埠對應(預設):

web伺服器: 80      ftp伺服器 :21      mysql資料庫服務:3306   

一台電腦有6萬多個埠,但通常一台伺服器一般只提供幾個或十幾個服務

apache的埠監聽設定,指設定apache這個軟體針對當前伺服器的哪些埠提供web服務。

在httpd.conf檔案中進行配置

原始配置listen 80

可增加對另乙個埠的服務:listen 808

主機配置關鍵項(自定義**根目錄)

主機,虛擬主機,web站點,是指乙個可以通過瀏覽器並使用某個網域名稱進行訪問的「web應用」。

乙個主機(站點)核心包括

主機(站點)名稱:servername 「主機名」

主機(站點)的實際檔案位置:documentroot 「站點的實際完整路徑」

apache的作用實際就是乙個"轉換"角色:將當前電腦中的某個資料夾,對外以某個網域名稱(站點)的方式展現。換句話說:站點的本質就是乙個資料夾。

servernamewww.php.com(預設情況下主機名前有#,即被注釋,不起作用)

documentroot」e:/amp/apache/htdocs「(**根目錄可修改)

apache工作原理:

當乙個請求通常為網域名稱解析進入到當前apache並埠匹配成功後,apache就會開始提供服務。

1.在站點設定中找到servername項,看是否匹配請求中的主機名

2.如果找到,則在對應的目錄(documentroot配置項)中找相應的檔案(可能是index.php或其他)

3.如果找到,則返回該檔案(或呼叫php語言模組執行後返回)

4.如果第2步沒有找到相應請求的主機名,那麼就將第乙個主機當作準備提供服務的主機

可見:只要ip解析和埠能夠進入到當前伺服器並匹配apache埠設定,則apache一定會提供服務---即使主機名不匹配。(在開發環境中網域名稱解析在作業系統的hosts檔案(也是系統檔案)中設定,位置在:window操作目錄/system32/drivers/etc/hosts)

目錄的訪問設定------修改設定的**根目錄及資料夾的許可權,使其可以被訪問

乙個**的訪問是有許可權的。初始站點所對應的資料夾,安裝的時候已經設定好許可權,當修改**根目錄後,要對該資料夾的許可權進行設定。

在httpd.conf中新增該檔案的訪問許可權:

<directory"e:/amp/apache/htdocs">

options indexes(用於設定「可顯示檔案列表」,當無可顯示網頁時)

order deny,allow(用於設定判斷順序:先拒絕,後允許)

allow from all(允許所有,這裡沒有設定拒絕)

2.我們也可以使用乙個單獨的檔案來控制資料夾的訪問許可權

該檔案的檔名必須是:.htaccess

注意:(1)只有字尾和點號(無檔名部分)

(2)該檔案必須放在要被控制訪問許可權的資料夾中(不同的資料夾可以放不同的該檔案)

(3)其「上級資料夾」(通常是設定的資料夾)必須使用如下**允許.htaccess發揮作用

allowoverride all

(4).htaccess檔案中出現的**,幾乎可以與設定中出現的**一樣

(5)如果.htaccess檔案有效,則其設定會覆蓋其上級設定

(6).htaccess檔案修改後可以立即發揮作用,無需重啟apache

示例:.htaccess      directoryindex index.php

在上級資料夾允許的情況下可發揮作用

其他相關設定

我們訪問**時,可以指定要訪問的**,如:也可以不指定,比如

對於後一種情況,是因為apache可以設定「預設網頁」,形式為:

directoryindexindex.html index.php(可以寫多個,依次作為要用的預設網頁)

(這句**也可以寫在設定下,只對該資料夾及其下屬檔案有效)

此時,對於沒有明確指定要訪問的網頁請求時,會按順序從前往後尋找,找到後返回給使用者,如果沒有找到,則檔案訪問許可權設定中的options indexes發揮作用:顯示該資料夾中的所有檔案。

目錄別名也叫虛擬目錄

乙個站點是乙個資料夾(目錄),該資料夾中可以有其下級資料夾(目錄)

實際存在的下級目錄,可以按正常的資料夾訪問層級關係進行訪問,比如:

根資料夾(站點目錄)

/day1   根資料夾中day1目錄

然而,在乙個站點中,如果不存在某個資料夾(目錄),可以通過配置項,來做到「對外」看起來卻存在一樣,比如:/soft (站點中不存在soft目錄),但我們可以讓該位址可訪問,這就是目錄別名(虛擬目錄)

在httpd.conf檔案中設定:(全域性位置)(相對於多站點配置而言)

alias  /soft "e:\amp\php\apache22"(真實路徑)

可見,通過技術可以將乙個站點之外的「網頁、資料、內容」也呈現在當前站點。

多站點配置

1.首先,在httpd.conf中開啟多站點配置檔案:

include conf/extra/httpd-vhosts.conf(去掉#號)

2.開啟該檔案,在httpd-vhosts.conf中設定要進行多站點配置的ip和埠,預設已設定好

namevirtualhost *:80(*代表當前伺服器的所有ip位址,通常只有乙個)

3.往後依次乙個乙個站點配置就可以了,可設定主機名,主機目錄,目錄訪問等。

注意:一旦進行多站點配置,原來httpd.conf中的預設站點設定就失效了。

示例:(*:80與前邊namevirtualhost的設定一致)

servername  www.php.com

serveralias  php.com(主機別名設定,在網域名稱解釋正確的情況下可用該別名訪問)

documentroot " e:/amp/apache/docs/dummy-host.bupt.edu.cn"

(資料夾路徑設定與documentroot後一致)

options   indexes

allowoverride all(允許該資料夾中的.htaccess檔案生效,根據需要設定)

order allow,deny

allow from all

deny from 192.168.3.33

directoryindex index.html index.php(設定預設網頁)

alias  /soft  「e:\amp\php\apache22」(此別目錄只在該站點下有效)(對多站點配置而言)

配置虛擬主機

在一台web伺服器中配置多個 的過程稱之為配置虛似主機,配置虛似主機可以實現在一台web伺服器上放多個 即不論是使用者訪問www.sina.com或www.sohu.com,訪問的都是同一臺機器。這樣我們訪問http www.google.com news就能訪問到c google news 訪問h...

配置虛擬主機

配置虛擬主機的步驟 1.首先到wamp bin apache apache2.2.22 conf extra下找到httpd vhosts.conf檔案,開啟後新增如下 documentroot d phproot store servername web.store.com options ind...

配置虛擬主機

配置虛擬主機三部曲 新增兩個主要是可以訪問localhost同時可以訪問localhost下面的專案shop 專案名可自己取 最後儲存退出 documentroot e xamp htdocs servername localhost documentroot e xamp htdocs shop ...