埠監聽(自擬定埠號)
埠:乙個數字,目的是讓一台電腦(對外只有乙個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 ...