apache虛擬主機配置: 二級目錄訪問跳轉(zhuǎn)到其他根文件夾
訪問 http://www.abc.com/course/ ,實際訪問的是:d:/www/moodle/index.PHP
<VirtualHost *:80> ServerAdmin webmaster@abc.com DocumentRoot "d:/www/abc" ServerName www.abc.com ##ServerAlias Alias /course "d:/www/moodle" <Directory "d:/www/moodle"> Options FollowSymLinks AllowOverride None Order deny,allow allow from all </Directory> </VirtualHost>
了解一下根目錄和虛擬目錄的關(guān)系:
安裝過apache之后打開httpd.conf文件會發(fā)現(xiàn)DocumentRoot默認設(shè)置的應(yīng)該是apache安裝目錄中的htdocs文件夾。然后你的網(wǎng)頁就可以放大這個htdocs文件夾中測試,例你在里面放了一個1.PHP,可以輸入http://127.0.0.1/1.php進行測試。這個DocumentRoot后面的路徑就是apache的根目錄。有時候我們不想將自己的網(wǎng)站放到這里,例如我想要放到F:/MyPHP中來運行,那么就可以修改DocumentRoot為F:/MyPHP,然后將那個1.php放入F:/MyPHP文件夾,同樣使用http://127.0.0.1/1.php可以正常訪問。
虛擬目錄是什么?顧名思義只是一個虛擬的目錄,和真實目錄是有差別的。先來看看使用真實目錄訪問,我們在剛才的F:/MyPHP中建立一個文件夾Test,然后在里面放入2.php,這個時候就可以通過http://127.0.0.1/Test/2.php訪問。但是有些時候你可能建立的文件夾和想要輸入的訪問地址有一個映射關(guān)系,而不是直接輸入Test文件夾名,這樣做的原因有很多其中就有一個是安全問題,因為那樣別人就會知道你的根目錄的文件夾。具體點,你在Test文件夾中放置了2.php,但是想要通過http://127.0.0.1/cmj/2.php訪問2.php而不是通過http://127.0.0.1/Test/2.php來訪問怎么辦呢?這個時候我們就需要虛擬目錄了,很明顯沒有cmj這個文件夾,但是又能夠像訪問一個正式的目錄一樣來訪問,就需要一種映射關(guān)系。怎么做呢?在httpd.conf中添加:
Alias /cmj "F:/MyPHP/Test/"
<Directory "F:/MyPHP/Test">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
解釋一下什么意思,最主要是前面一個句Alias /cmj "F:/MyPHP/Test/",它的意思就是我通過在更目錄訪問所用ip后添加/cmj可以訪問F:/MyPHP/Test/中的東西。后面的主要是設(shè)置權(quán)限問題,這里不再贅余。
簡單的說,打開httpd.conf 在最后加入如下內(nèi)容:
<VirtualHost 127.0.0.2:80> DocumentRoot d:/AppServ/www2 ServerName 127.0.0.2:80 < /VirtualHost> <Directory "d:/AppServ/www2"> Options Indexes FollowSymLinks Multiviews AllowOverride All Order Allow,Deny Allow from all </Directory>
"d:/AppServ/www2" 為你的站點存放目錄:重啟apache2以后,你的虛擬主機就配置好了,以后就可以通過127.0.0.2,和127.0.0.3進入不同的站點了。
下面為詳細說明分析:
在我們安裝APACHE的時候一般默認的apache的配置是只有一個網(wǎng)站,這樣切換起來很不方便。其實這個問題很好解決,就是把本機的apache配置成為虛擬服務(wù)器。但是,網(wǎng)上大多數(shù)教程的是教用 apache如何配置基于域名的虛擬主機的,而在本機調(diào)試網(wǎng)站的時候,一般都是用本地ip(127.0.0.1 或 localhost)直接訪問,沒有用到域名。所以得把apache配置成為基于ip地址的虛擬主機。
首先,我們都知道,所有以127打頭的ip地址都應(yīng)該指向本機,并不只有127.0.0.1,這點大家可以試試。
這樣一來,也就是說本機有足夠多的ip地址供你來開設(shè)虛擬主機了。
廢話少說,進入正式的配置工作,下面是apache的httpd.conf里相關(guān)配置部分( httpd.conf 位于 Apache2.2\conf ):
1、Listen部分,必須直接指定端口,不指定ip地址,配置應(yīng)寫為:
Listen 80
2、不用像基于域名的虛擬主機那樣寫“NameVirtualHost”。
3、虛擬主機配置段:在httpd.conf 最后加上
<VirtualHost 127.0.0.2:80> DocumentRoot d:/AppServ/www2 ServerName 127.0.0.2:80 < /VirtualHost> <VirtualHost 127.0.0.3:80> DocumentRoot d:/AppServ/www3 ServerName 127.0.0.3:80 </V irtualHost>...
4、然后相應(yīng)的配置好各個目錄屬性,下面是一個目錄屬性的典型配置:
<Directory "d:/AppServ/www2"> Options Indexes FollowSymLinks Multiviews AllowOverride All Order Allow,Deny Allow from all </Directory> <Directory "d:/AppServ/www3"> Options Indexes FollowSymLinks Multiviews AllowOverride All Order Allow,Deny Allow from all </Directory>
重啟apache2以后,你的虛擬主機就配置好了,以后就可以通過127.0.0.1和127.0.0.2,127.0.0.3進入不同的站點了
相關(guān)文章
對linux下syslogd以及syslog.conf文件的解讀說明
今天小編就為大家分享一篇對linux下syslogd以及syslog.conf文件的解讀說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Linux系統(tǒng)下安裝rz/sz命令及使用方法說明
這篇文章主要介紹了Linux系統(tǒng)下安裝rz/sz命令及使用方法說明,需要的朋友可以參考下2016-10-10