最簡單的
NameVirtualHost *
ServerName rashost.com/blog
DocumentRoot "c:/wamp/www/vpsblog/"上面配置的網站是 vpsblog.rashost.com/ ,該網站對應的目錄是”c:/wamp/www/vpsblog/”,網站名稱和目錄名稱你當然要根據自己的需要自己定。
例
1、樣本綁定:
■IP地址192.168.1.100
■對應兩個網域名稱http://你的網域名稱.com和http://bbs.你的網域名稱.com(次層網域)
2、綁定過程
a、開啟http.conf,該檔案位置在apache/conf下面,直接用文字編輯器即可開啟。
b、添加以下欄位,位置靠近ServerName 127.0.0.1或ServerName localhost:80下面附近,方便修改和理解。
| 代碼如下 |
複製代碼 |
<VirtualHost 192.168.1.100> DocumentRoot D:/xampp/htdocs/你的網域名稱.com ServerName 你的網域名稱.com </VirtualHost> <VirtualHost 192.168.1.100> DocumentRoot D:/xampp/htdocs/你的網域名稱.com/bbs ServerName bbs.你的網域名稱.com </VirtualHost> |
這個方法是對指定IP地址的主機比較適合,但是如果是動態擷取IP地址的主機就有問題了,則可以把<VirtualHost 192.168.1.100>統一修改為<VirtualHost *:80>,這樣設定後APACHE不再對IP區分,只根據ServerName和處理優先順序識別。比如很多虛擬機器主機要求使用CNAME解析網域名稱,那麼該虛擬機器主機的IP可能會變化的,就無法使用上面的配置方法,還是<VirtualHost *:80>要更好用一些
Linux VPS下的Apache的網站綁定
Ubuntu下Apache的設定檔知識
Debian/Ubuntu的apache的設定檔的管理方式是一樣的,Ubuntu本身就是基於Debian的,所以很多配置和Debian幾乎一模一樣。Debian/Ubuntu的apache設定檔都在/etc/apache2目錄下。/etc/apache2下面有幾個設定檔,還有幾個子目錄。/etc/apache2下面的設定檔逐個解釋如下:
/etc/apache2/apache2.conf
主設定檔,不精通apache不要修改此檔案
/etc/apache2/httpd.conf
這個檔案的存在是為了保持相容性,即使你精通apache,我也建議不要修改此檔案
/etc/apache2/ports.conf
這個檔案用來配置apache的監聽的連接埠,不精通者請不要修改
/etc/apache2下面的幾個目錄解釋如下:
/etc/apache2/conf.d
apache會讀取這個目錄下的任何檔案,這些檔案的內容都是設定檔的一部分,不建議修改此目錄下的任何內容
/etc/apache2/mods-available
這個目錄下是一些零碎的設定檔,不建議修改,apache不會讀取此目錄下的檔案。該目錄下的檔案一般都是某個apache模組的設定檔
/etc/apache2/mods-enabled
apache會讀取這個目錄下的任何檔案,這些檔案的內容都是設定檔的一部分,不建議修改此目錄下的任何內容。該目錄下的檔案一般都是某個apache模組的設定檔
/etc/apache2/sites-available
這個目錄下是一些零碎的設定檔,不建議修改,apache不會讀取此目錄下的檔案,該目錄下的檔案一般都是某個網站的設定檔
/etc/apache2/sites-enabled
apache會讀取這個目錄下的任何檔案,這些檔案的內容都是設定檔的一部分,不建議修改此目錄下的任何內容,該目錄下的檔案一般都是某個網站的設定檔
從上面的列表可以看出,mods-available和mods-enabled這兩個目錄的區別是apache是否去讀取這個目錄。有個疑問:如果apache從來不讀取mods-available目錄,那要它何用?答案是mods-available下存放所有apache模組的設定檔,但這些模組不一定是啟用的,啟用的模組的設定檔連結到mods-enabled下面,如果沒有連結到mods-enabled下面,那肯定是一些沒有啟用的模組。a2enmod命令可以列出mods-available下面的所有模組,管理員可以選擇啟用哪個模組,啟用之後的模組就會在mods-enabled下面添加一個連結。
同理,sites-available和sites-enabled這兩個目錄也是這樣的原理,a2ensite命令可以列出sites-available下存在的網站檔案,可以建立網站檔案的連結到sites-enabled目錄下。
a2enmod == Apache2 ENable MODule
a2ensite == Apache2 ENable SITE
預設情況下,sites-available下只有一個檔案default,sites-available/default連結到sites-enabled目錄下的連結名為000-default。apache的習慣是一個網站一個設定檔,但我們為了方便管理,把所有的網站的配置都儲存到default這個檔案裡面。
怎樣建立新網站
1.確定新網站的網域名稱和別名,網域名稱是必須的,別名可以沒有,別名也是網域名稱,只不過不是主網域名稱而已。比如我的網站網域名稱是rashost.com,別名有兩個,分別是rashost.com和home.rashost.com。
2.更改網域名稱和別名的DNS,解析到VPS的IP地址。比如到rashost.com的網域名稱註冊商的控制台裡面修改上面三個DNS記錄,都指向我的VPS的IP地址。
3.等待網域名稱更改生效,這個過程通常是0到48小時。運行ping命令可以查看網域名稱指向是否更改過來,比如:ping rashost.com,如果顯示的IP是VPS的IP,則表明生效了
4.用root使用者SSH登入到VPS,運行命令建立新使用者: adduser rashost.com ,更改密碼: passwd rashost.com。修改/etc/apache2/sites-available/default檔案,在檔案的末尾加入下面這段配置後運行/etc/init.d/apache2 force-reload重新啟動apache
5.用新使用者rashost.com登入到VPS,運行命令 mkdir public_html 建立public_html目錄
6.通過FTP,把網頁檔案傳送到public_html目錄下
7.然後就可以通過瀏覽器訪問新網站了
| 代碼如下 |
複製代碼 |
ServerName 111cn.net ServerAlias rashost.com home.rashost.com DocumentRoot /home/rashost.com/public_html/ |
那麼linux中如何綁定多網站呢
例如:VPS的IP是94.249.188.58,需要將111cn.net綁定到/var/www/html/dir1,將wuleilei.net綁定到/var/www/html/dir2。
開啟http.conf:
1、將#ServerName www.example.com:80修改成ServerName 94.249.188.58:80,注意別忘記了將句首的#去掉;
2、將#NameVirtualHost *:80修改成NameVirtualHost 94.249.188.58:80,注意別忘記了將句首的#去掉;
3、在檔案最後面有虛擬機器主機格式:
代碼
| 代碼如下 |
複製代碼 |
1.#<VirtualHost 94.249.188.58:80> 2.# ServerAdmin webmaster@dummy-host.example.com 3.# DocumentRoot /www/docs/dummy-host.example.com 4.# ServerName dummy-host.example.com 5.# ErrorLog logs/dummy-host.example.com-error_log 6.# CustomLog logs/dummy-host.example.com-access_log common 7.#</VirtualHost>
|
在後面添加:
| 代碼如下 |
複製代碼 |
1.*IP訪問/var/www/html/dir目錄 <VirtualHost 94.249.188.58:80> 2. ServerAdmin webmaster@dummy-host.example.com 3. DocumentRoot /var/www/html/dir 4. ServerName 94.249.188.58 5. ErrorLog logs/dummy-host.example.com-error_log 6. CustomLog logs/dummy-host.example.com-access_log common 7.</VirtualHost>
|
8.*111cn.net與www.111cn.net訪問/var/www/html/dir1目錄
| 代碼如下 |
複製代碼 |
9.<VirtualHost 94.249.188.58:80> 10. ServerAdmin webmaster@dummy-host.example.com 11. DocumentRoot /var/www/html/dir1 12. ServerName 111cn.net 13. ServerAlias www.111cn.net 14. ErrorLog logs/dummy-host.example.com-error_log 15. CustomLog logs/dummy-host.example.com-access_log common 16.</VirtualHost> 17.*wuleilei.net與www |
.wuleilei.net訪問/var/www/html/dir2目錄
| 代碼如下 |
複製代碼 |
18.<VirtualHost 94.249.188.58:8081> 19. ServerAdmin webmaster@dummy-host.example.com 20. DocumentRoot /var/www/html/dir2 21. ServerName wuleilei.net 22. ServerAlias www.wuleilei.net 23. ErrorLog logs/dummy-host.example.com-error_log 24. CustomLog logs/dummy-host.example.com-access_log common 25.</VirtualHost> |
附:如果想開其他連接埠,請按照如下操作(以8080連接埠為例):
1、開啟http.conf,尋找Listen 80,在下面一行添加Listen 8080;
2、在檔案末尾添加如下代碼:
代碼
| 代碼如下 |
複製代碼 |
1.<VirtualHost 94.249.188.58:8080> 2. ServerAdmin webmaster@dummy-host.example.com 3. DocumentRoot /var/www/html/dir3 4. ServerName 111cn.net 5. ServerAlias www.111cn.net 6. ErrorLog logs/dummy-host.example.com-error_log 7. CustomLog logs/dummy-host.example.com-access_log common 8.</VirtualHost> |
這樣就將www.111cn.net:8080綁定到/var/www/html/dir3目錄了