如何配置apache虛擬主機的實例小結(jié)
1、基于ip地址的虛擬主機
Listen 80
<VirtualHost 172.20.30.40>
DocumentRoot /home/httpd/html1
ServerName www.ok1.com
ErrorLog /usr/local/apache/logs/error1_log
CustomLog /usr/local/apache/logs/access1_log combined
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /home/httpd/html2
ServerName www.ok2.com
ErrorLog /usr/local/apache/logs/error2_log
CustomLog /usr/local/apache/logs/access2_log combined
</VirtualHost>
2、基于IP 和多端口的虛擬主機配置
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080
<VirtualHost 172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
</VirtualHost>
<VirtualHost 172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example2.org
</VirtualHost>
3、單個IP 地址的服務(wù)器上基于域名的虛擬主機配置
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>
如果您感覺上面的文章還不夠詳細可以看下下面的文章:
實驗?zāi)繕耍涸赼pache實現(xiàn)基于域名的虛擬主機
實驗用的XAMPP版本為1.7.7,內(nèi)含apache版本為2.2.21
實驗前準備:
1. 為了測試不同的域名,在Windows/System32/drivers/etc/下覓得hosts文件,在其中添加實驗用的域名若干,如 -
127.0.0.1 test1.net
127.0.0.1 test2.net
如此,則在瀏覽器中輸入該倆域名時,Windows將其解析為127.0.0.1本地地址。即,在瀏覽器中訪問localhost, test1.net, test2.net均可訪問XAMPP的歡迎頁。
2. 在apache目錄下建立目錄,以放置您不同的網(wǎng)站。為保護XAMPP原有的htdocs中的歡迎頁內(nèi)容,實驗另外建立了與htdocs平級的htdocs1目錄,在其下建立了test1.net, test2.net兩個子目錄用以放置實驗用的網(wǎng)站。如下 -
apache/htdocs1/test1.net - 放置test1.net網(wǎng)站內(nèi)容
apache/htdocs1/test2.net - 放置test2.net網(wǎng)站內(nèi)容
在這兩個目錄中各新建hello world一網(wǎng)頁 index.html,內(nèi)容 -
<HTML>
<HEAD></HEAD>
<BODY>
<H1>hello~, 這是[對應(yīng)的網(wǎng)站名,用以區(qū)別].net</H1></BODY>
</HTML>
實驗步驟:
1. 找到apache/conf/httpd.conf, 將其中的
ServerAdmin
ServerName
DocumentRoot
注釋掉。
2. 在httpd.conf中,找到行
Include "conf/extra/httpd-vhosts.conf"
如被注釋則解注。該文件記載了虛擬主機的參數(shù)。[以前虛擬主機參數(shù)是直接填寫在httpd.conf中的,為了更好地組織文件,將其分離出去,類似于某些編程語言一樣。因此httpd.conf中include它,即相當于把它的內(nèi)容填在了httpd.conf中。]
3. 這個httpd-vhosts.conf文件格式基本如下 -
#blah-blah
NameVirtualHost *:80
#blah-blah
#blah-blah
<VirtualHost *:80>
ServerAdmin XXXXXXXX
DocumentRoot "XXXXXXXX"
ServerName XXXXXXX
ServerAlias XXXXXX
ErrorLog "logs/XXXXXX-error.log"
CustomLog "logs/XXXXXXX-error.log" combined
</VirtualHost>
需要修改的,就是<VirtualHost>中的參數(shù)了。這個可以參見apache官方文檔。根據(jù)實驗域名,可以增加兩個<VirtualHost>:
<VirtualHost *:80>
ServerAdmin adm@test1.net
DocumentRoot "C:/xampp/htdocs1/test1.net"
ServerName test1.net
ServerAlias www.test1.net
ErrorLog "logs/test1-error.log"
CustomLog "logs/test1-access.log" combined
<Directory "C:/xampp/htdocs1/test1.net">
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin adm@test2.net
DocumentRoot "C:/xampp/htdocs1/test2.net"
ServerName test2.net
ServerAlias www.test2.net
ErrorLog "logs/test1-error.log"
CustomLog "logs/test1-access.log" combined
<Directory "C:/xampp/htdocs1/test2.net">
order allow,deny
allow from all
</Directory>
</VirtualHost>
注意,如果不在各VirtualHost中定義Directory的可訪問性,你將遇到的是Access Forbidden!就連原來的localhost也是。
4. 由于之前注釋掉了httpd.conf中的ServerName, DocumentRoot等,為了仍然能以localhost訪問原XAMPP歡迎頁,就在增加一個VirtualHost,如下 -
<VirtualHost *:80>
ServerAdmin adm@localhost
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" combined
<Directory "C:/xampp/htdocs">
order allow,deny
allow from all
</Directory>
</VirtualHost>
為了避免出錯,把它放置在第一個Virtualhost位置。
至此,apache基于域名的虛擬主機配置完成??梢酝ㄟ^http://localhost訪問XAMPP歡迎頁,通過http://test1.net和http://test2.net訪問各自的主頁。
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs"
ServerName localhost
ServerAlias www.skydao.com
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" combined
<Directory "E:/skydao/apache2/htdocs">
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/project1"
ServerName project1.com
ServerAlias www.project1.com
ErrorLog "logs/project1-error.log"
CustomLog "logs/project1-access.log" combined
<Directory "E:/skydao/apache2/htdocs/project1">
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"
ServerName zendTest.com
ServerAlias www.zendTest.com
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/testRewrite"
ServerName testRewrite.com
ServerAlias www.testRewrite.com
# DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot "E:/skydao/apache2/htdocs/test"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/zendTest-error.log"
CustomLog "logs/zendTest-access.log" combined
<Directory "E:/skydao/apache2/htdocs/test">
order allow,deny
allow from all
</Directory>
</VirtualHost>
相關(guān)文章
在CentOS 6 中安裝WordPress(一) 安裝Apache,Mysql, PHP環(huán)境
最近做個項目,拿到一臺CentOS 6服務(wù)器,需要在上面配置php環(huán)境,并安裝WordPress,我們先來看看第一步,配置AMP(Apache,Mysql, PHP)環(huán)境2014-06-06Ubuntu部署python3.5的開發(fā)和運行環(huán)境
這篇文章主要介紹了Ubuntu部署python3.5的開發(fā)和運行環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01CentOS7 修改網(wǎng)卡名稱為eth0&在VMWare中添加多網(wǎng)卡配置
這篇文章主要介紹了CentOS7 修改網(wǎng)卡名稱為eth0&在VMWare中添加多網(wǎng)卡配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03Ubuntu 16.04源碼編譯安裝Apache 2.4.25教程
這篇文章主要為大家詳細介紹了Ubuntu 16.04源碼編譯安裝Apache 2.4.25,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01Ubuntu18.04服務(wù)器密碼忘記或被篡改如何重置密碼
這篇文章主要介紹了Ubuntu18.04服務(wù)器密碼忘記或被篡改如何重置密碼,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09