Apache 虛擬主機的配置[Ubuntu]

== 基本配置 == 我們都知道,如果我們想在單臺機器上設置多個域名或主機名時,我們就要用到基于名稱的虛擬主機了。那么要如何進行設置呢?這就是本 HowTo 想解決的問題了。在 Ubuntu 的 /etc/apache2/ 目錄下有個 Apache2 的主配置文件 apache2.conf。在該文件中我們可以看到有這么一行內容:
代碼:
Include /etc/apache2/sites-enabled/[^.#]*
這行的意思表明該文件包含了 /etc/apache2/sites-enabled/ 目錄中文件名不含 "." 或 "#" 這兩個字符的所有文件。而當我們列出該目錄的文件時,發現只有一個 000-default 的軟鏈接文件,實際連接的是 /etc/apache2/sites-available 目錄中的 default 文件,不難看出該文件的文件名中并不包含 "." 或 "#"。所以這個文件當然是要被配置文件 apache2.conf 所包含的了。打開該文件,發現它其實是一個虛擬主機的配置文件,不過由于該文件中的虛擬主機為 *,所以它實際上是一個通用配置文件。如果我們要建立虛擬主機的話,那么就要把該文件改成如下所示:
代碼:
NameVirtualHost 10.39.6.59 <VirtualHost 10.39.6.59> ???? ServerName www.firehare.com ???? ServerAdmin ubuntu.firehare@gmail.com ???? DocumentRoot /var/www/ ???? <Directory /> ???????? Options FollowSymLinks ???????? AllowOverride None ???? </Directory> ???? <Directory /var/www/> ???????? Options Indexes FollowSymLinks MultiViews ???????? AllowOverride None ???????? Order allow,deny ???????? allow from all ???????? # This directive allows us to have apache2's default start page ???????? # in /apache2-default/, but still have / go to the right place ???????? # Commented out for Ubuntu ???????? #RedirectMatch ^/$ /apache2-default/ ???? </Directory> ???? ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ ???? <Directory "/usr/lib/cgi-bin"> ???????? AllowOverride None ???????? Options ExecCGI -MultiViews +SymLinksIfOwnerMatch ???????? Order allow,deny ???????? Allow from all ???? </Directory> ???? ErrorLog /var/log/apache2/error.log ???? # Possible values include: debug, info, notice, warn, error, crit, ???? # alert, emerg. ???? LogLevel warn ???? CustomLog /var/log/apache2/access.log combined ???? ServerSignature On ???? Alias /doc/ "/usr/share/doc/" ???? <Directory "/usr/share/doc/"> ???????? Options Indexes MultiViews FollowSymLinks ???????? AllowOverride None ???????? Order deny,allow ???????? Deny from all ???????? Allow from 127.0.0.0/255.0.0.0 ::1/128 ???? </Directory> </VirtualHost>
下面我們來分析一下上面這段設置中與虛擬主機有關的設置語句: * NameVirtualHost 10.39.6.59:表示我們要做的是一個基于名稱的虛擬主機,且其 IP 地址為 10.39.6.59 * <VirtualHost 10.39.6.59> 和 </VirtualHost>:表示在其中的是一個虛擬主機的配置 * ServerName www.firehare.com:設置虛擬主機的域名 * ServerAdmin ubuntu.firehare@gmail.com:設置該虛擬主機網管員的郵件 * DocumentRoot /var/www/:設置該虛擬主機的主目錄路徑 * ErrorLog /var/log/apache2/error.log:設置該虛擬主機的出錯信息 * CustomLog /var/log/apache2/access.log combined:設置該虛擬主機的訪問信息 這樣我們就配置了一個虛擬主機 www.firehare.com。但由于這是缺省配置,所以在 Apache2 重啟之后,無論你輸入 DNS 服務器中指向這個主機的任何域名,都會被導向 www.firehare.com 這個缺省配置所指向的 /var/www 這個目錄的。除非該域名被其他虛擬主機配置所用,比如我們還配置了 edunuke.firehare.com 指向本機,且配置了相應的虛擬主機,這樣的話,輸入域名 edunuke.firehare.com 就會被對應該域名的目錄中。 == 進一步說明 == 為了說明清楚 我們再添加一個虛擬主機站點 edunuke.firehare.com,首先到 /etc/apache2/sites-available/ 目錄中建立一個文件 edunuke。當然這個文件名中是沒有 "." 或 "#" 這兩個字符的了。然后編輯該文件:
代碼:
<VirtualHost 10.39.6.59> ???? ServerName edunuke.firehare.com ???? ServerAdmin ubuntu.firehare@firehare.com ???? DocumentRoot "/var/www/edunuke/" ???? ErrorLog "/var/log/apache2/edunuke_errors.log" ???? CustomLog "/var/log/apache2/edunuke_accesses.log" common???? </VirtualHost>
設置的具體含義同上面的相似,這是我就不再多說了。然后再運行命令: {{{ sudo a2ensite edunuke }}} 這樣的話,虛擬主機站點 edunuke.firehare.com 就已經安裝好了。這時你也可以在 /etc/apache2/sites-enabled/ 目錄中發現多了一個到 /etc/apache2/sites-available/edunuke 的軟鏈接。接下來就是將 Apache2 重啟來使虛擬主機站點運行起來:
代碼:
sudo /etc/init.d/apache2 restart
這樣你在瀏覽器上輸入 edunuke.firehare.com 的話,就會被指向 /var/www/edunuke 目錄了,而輸入其他指向本機的域名則都會指到缺省配置中的 /var/www 目錄中。熟悉 Apache2 的朋友會問為什么這樣麻煩,放在一個文件中不也是可以嗎?為什么要用兩個文件呢?其實很簡單,因為如果我要對 edunuke 站點進行維護時,我只要運行命令:
代碼:
sudo a2dissite edunuke sudo /etc/init.d/apache2 restart
即可,這樣既可以維護 edunuke 這個站點,同時還不影響其他站點的正常運行。 == 高級配置 == 上面談了一下簡單的虛擬主機配置方法。這個基本上能滿足我們大部分的需要。但如果要是安裝 Zope+Plone 的話,上面的這點設置是遠遠不夠的,由于 Zope+Plone 結構所采用的端口并非是80端口,所以我們還得做端口重定向。為了能夠做這個,我們得激活 Rewrite 和 Proxy 兩個模塊。激活模塊很簡單,同站點配置目錄一樣,在 Apache2 中也有兩個模塊配置目錄:mods-available 和 mods-enabled。在 mods-available 目錄中的是所有可用的模塊,而在 mods-enabled 目錄中的則是已被安裝到 Apache2 中的模塊。由于在 mods-available 目錄中已經有了 Rewrite 和 Proxy 模塊的配置引導文件,所以只需要簡單地將其安裝到 Apache2 中即可。使用命令:
代碼:
sudo a2enmod rewrite sudo a2enmod proxy
然后,添加虛擬主機站點 plone.firehare.com,同 edunuke 站點創建相似在/etc/apache2/sites-available/ 目錄中建立一個文件 plone。顯然這個文件名中是沒有 "." 或 "#" 這兩個字符的了。然后編輯該文件:
代碼:
<VirtualHost 10.39.6.59> ???? ServerName plone.firehare.com ???? ServerAdmin ubuntu.firehare@firehare.com ???? ErrorLog "/var/log/apache2/plone_errors.log" ???? CustomLog "/var/log/apache2/plone_accesses.log" common ???? RewriteEngine on ???? RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P] ???? <Proxy *> ???????? Order Deny,Allow ???????? Deny from all ???????? Allow from all ???? </Proxy> </VirtualHost>

這樣就安裝好了 plone.firehare.com 虛擬主機站點,可以在瀏覽器中地址欄中輸入 http://plone.firehare.com 就可以重定向到 Zope+Plone 站點去了

http://hi.baidu.com/%C0%EE%B1%F8/blog/item/e825321297f71350f919b824.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535575.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Shell腳本——數字計算

Shell 和其它編程語言不同&#xff0c;Shell 不能直接進行算數運算&#xff0c;必須使用數學計算命令 要想讓數學計算發揮作用&#xff0c;必須使用數學計算命令&#xff0c;Shell 中常用的數學計算命令如下表所示。 運算操作符/運算命令說明(( ))用于整數運算&#xff0c;效率…

windows下最好的C++ IDE

1. 你是不是用慣了VC6.0&#xff1f;假如是&#xff0c;我現在推薦的IDE仍然是VC6.0的IDE。 2. 你是不是覺得VC6.0過時了&#xff0c;很多C語法它都不支持&#xff1f;我現在推薦的編譯器她在一直發展著&#xff0c;支持最新的C語法。 3. VC.net的界面弱智&#xff0c;而且包含…

Shell腳本——內置命令

一、內置命令 所謂 Shell 內置命令&#xff0c;就是由 Bash 自身提供的命令&#xff0c;而不是文件系統中的某個可執行文件。 例如&#xff0c;用于進入或者切換目錄的 cd 命令&#xff0c;雖然我們一直在使用它&#xff0c;但如果不加以注意很難意識到它與普通命令的性質是不…

Shell腳本——基礎語法

一、條件判斷 1.1、基本語法 [ condition ]&#xff08;注意condition前后要有空格&#xff09; 注意&#xff1a;條件非空即為true&#xff0c;[ abcdef ]返回true&#xff0c;[] 返回false。 1.2、常用判斷條件 兩個整數之間比較 字符串比較 -lt 小于&#xff08;less …

#2002 - 服務器沒有響應 (or the local MySQL server's socket is not ...

經常見有兄弟遇到這樣的問題&#xff1a; mysql -u root -p一切正常&#xff0c;但是用phpmyadmin卻死活不對&#xff0c;提示如下錯誤&#xff1a; #2002 - 服務器沒有響應 (or the local MySQL servers socket is not correctly configured) 我 google 了一下&#xff0c;發現…

第一個Scala程序——Hello World!

一、交互式編程 交互式編程不需要創建腳本文件&#xff0c;可以通過以下命令調用&#xff1a; $ scala Welcome to Scala 2.13.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_231). Type in expressions for evaluation. Or try :help.scala> println("Hello Wo…

CENTOS5下VSFTPD的設置

需求:&#xff08;虛擬用戶分下載用戶&#xff0f;下載、上傳但不能刪除用戶&#xff0f;管理用戶&#xff09; 一、安裝 yum -y install vsftpd* yum -y install pam* yum -y install db4* 二、系統帳戶 1、vsftpd服務的宿主用戶 useradd vsftpd -s /sbin/nologin 2、…

Scala基礎語法

如果你之前是一名 Java 程序員&#xff0c;并了解 Java 語言的基礎知識&#xff0c;那么你能很快學會 Scala 的基礎語法。 一、基本語法 Scala 基本語法需要注意以下幾點&#xff1a; 區分大小寫 - Scala是大小寫敏感的&#xff0c;這意味著標識Hello 和 hello在Scala中會有不…

DNS詳解

一、DNS 概念 人和人要互相識別和記憶,需要名字作為輔助,而對于網絡世界,在因特網內也需要一種命名系統來做類似的事情,該系統使用了域來劃分,任何一個網絡里的主機(或者路由器)都有獨一無二的域名(類似國家代碼),域又能繼續劃分為子域(類似每個國家有不同的省份代…

Shell腳本——函數

Shell 函數的本質是一段可以重復使用的腳本代碼&#xff0c;這段代碼被提前編寫好了&#xff0c;放在了指定的位置&#xff0c;使用時直接調取即可。 一、語法 Shell 函數定義的語法格式如下&#xff1a; function name() {statements[return value] }對各個部分的說明&#…

scala通過JDBC進行數據庫操作

scala通過JDBC方式操作mysql (需要加載 mysql-connector-java 驅動) maven依賴&#xff1a; <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.45</version></dependency>一…

Linux下Java的安裝與配置

0、下載好JDK安裝包后上傳到Linux服務器的/usr/local/java/下 1、解壓tar -zxvf jdk-8u251-linux-x64.tar.gz 2、改名mv jdk1.8.0_251 jdk1.8 3、配置環境變量vi /etc/profile 添加以下內容 #JAVA export JAVA_HOME/usr/local/java/jdk1.8 export JRE_HOME$JAVA_HOME/jre e…

運維同步rsync

Rsync(remote rynchronization)是一款開源的、快速的、多功能的、可實現全量以及增量的本地或者遠程數據同步的備份的優秀工具&#xff0c;可使本地主機不同分區或目錄之間及本地和遠程兩臺主機之間的數據快速同步鏡像&#xff0c;遠程備份等功能同時它在同步文件的同時可以保…

Spark初識-什么是Spark

Spark是一個基于內存的開源計算框架&#xff0c;于2009年誕生于加州大學伯克利分校AMPLab&#xff08;AMP&#xff1a;Algorithms&#xff0c;Machines&#xff0c;People&#xff09;&#xff0c;它最初屬于伯克利大學的研究性項目&#xff0c;后來在2010年正式開源&#xff0…

系統優化

1、關閉selinux sed -i ‘s/SELINUXenforcing/SELINUXdisabled’ setenforce 0 2.精簡開機服務 ntsysv setup system service

Spark初識-Spark與Hadoop的比較

Spark&#xff0c;是分布式計算平臺&#xff0c;是一個用scala語言編寫的計算框架&#xff0c;基于內存的快速、通用、可擴展的大數據分析引擎 Hadoop&#xff0c;是分布式管理、存儲、計算的生態系統&#xff1b;包括HDFS&#xff08;存儲&#xff09;、MapReduce&#xff08;…

Spark初識-Spark基本架構概覽使用

當需要處理的數據量超過了單機尺度(比如我們的計算機有4GB的內存&#xff0c;而我們需要處理100GB以上的數據)這時我們可以選擇spark集群進行計算&#xff0c;有時我們可能需要處理的數據量并不大&#xff0c;但是計算很復雜&#xff0c;需要大量的時間&#xff0c;這時我們也可…

Spark初識-彈性分布式數據集RDD

Spark 的核心是建立在統一的抽象彈性分布式數據集&#xff08;Resiliennt Distributed Datasets&#xff0c;RDD&#xff09;之上的&#xff0c;這使得 Spark 的各個組件可以無縫地進行集成&#xff0c;能夠在同一個應用程序中完成大數據處理。 一、RDD概念 RDD 是 Spark 提供…

nmon

1).采集數據&#xff1a; #nmon -s10 -c60 -f -m /home/ 參數解釋&#xff1a; -s10 每 10 秒采集一次數據。 -c60 采集 60 次&#xff0c;即為采集十分鐘的數據。 -f 生成的數據文件名中包含文件創建的時間。 -m 生成的數據文件的存放目錄。 這樣就會生成一個 nmon 文件&…

Spark入門- Spark運行Local本地模式

一、Spark單機模式部署 Spark版本 &#xff1a; spark-2.4.7-bin-hadoop2.7 1、安裝配置JDK環境 2、下載Spark 官網下載http://spark.apache.org/ 然后上傳到LInux服務器上 3、解壓 tar -zxvf spark-2.4.7-bin-hadoop2.7.tgz解壓目錄說明 bin 可執行腳本 conf …