SUSE11-Linux架設apache虛擬主機

 
Linux提供HTTP服務的組件是apache,如今SUSE11自帶的組件版本是 apache2
先說一下架設環境
硬件:虛擬機
IP地址: 192.168.1.102
主機名: robinzs
 首先安裝組件,圖形界面或字符界面亦可。
 zypper install –y apache2
suse的 zypper與redhat的 yum功能相似,前題是都需設置好安裝源,由於是拿虛擬機作的測試,因此個人安裝源是鏡像。
 安裝以後開始部署,爲何要部署虛擬主機。由於虛擬主機可以架設多個站點在同一臺服務器,且均可以從 80端口通迅數據,因此本次實驗部署虛擬主機
 Apache2的配置文件目錄在 /etc/apache2/下,需用到的文件有:
 /etc/apache2/httpd.conf 主配置文件
 /etc/apache2/listen.conf 監聽端口配置文件
 /etc/apache2/vhosts.d/*.conf 虛擬主機配置文件
 說到這裏簡單提一下suse11下的apache2 目錄結構。與紅帽不一樣,紅帽是將 大部份配置文件內容都在 httpd.conf中;而suse11的apache2是將 httpd.conf 文件 打散成若個文件,在httpd.conf中有 Include標籤能夠加載打散這些文件的內容,因此在suse11下配置站點須要修改多個文件。

 
    如今開始配置apache2,首先在 /etc/apache2/vhosts.d/目錄下建立文件 *.conf, 文件名隨便,能夠以站點域名命名,我建立的叫 virtual1.confvirutual2.conf
vim /etc/apache2/vhosts.d/virtual1.conf
添加以下內容:(添加的內容能夠參考同級目錄下的 vhost.template文件)
< VirtualHost *:80 >
ServerAdmin    webmaster@robinzs.com
DocumentRoot    /srv/www/htdocs/virtual1/
ServerName        virtual1.robinzs.com
ErrorLog            /var/log/apache2/virtual1/error_log
CustomLog         /var/log/apache2/virtual1/access_log combined
</ VirtualHost >
上述配置文件內容與虛擬主機建立要求一一對應:
ServerAadmin—虛擬主機管理員郵箱
DocumentRoot—虛擬主機文件目錄
ServerName—服務名稱,就是訪問地址
ErrorLog—錯誤日誌
CustomLog—訪問日誌, combined是日誌格式的一種,兼容全部日誌格式
用一樣方法配置 virtual2.conf文件
修改apache2的主配置文件添加站點信息
vim /etc/apache2/httpd.conf
找到 Include /etc/apache2/vhosts.d/*.conf這一行,這一行是表明加載全部虛擬主機配置信息。
在這一行下邊添加:(其不在這裏寫也行,爲了維護方便)
< Directory "/srv/www/htdocs/virtual1/" >
        Options Indexes FollowSymlinks
        AllowOverried All
        Order allow,deny
        Allow from all
</ Directory >
< Directory "/srv/www/htdocs/virtual2/" >
        Options Indexes FollowSymlinks
        AllowOverried All
        Order allow,deny
        Allow from all
         </ Directory >
<Director>內是對站點內容的權限設置:
Options-站點目錄的權限設置
                    Indexes-若是在此目錄下找不到"首頁文件",就列出整個目錄的文件,相反若是不例出目錄文件則爲 -Indexes
FollowSymLinks-讓在此目錄開放的鏈接文件能夠鏈接出此目錄外。
Allow Overried-表示是否容許額外配文件".htaccess"的權限複寫,用戶本身的我的網頁若要修改權限時會用到。
Order -安全設置,是否可被瀏覽的權限,默認爲allow,deny以allow優先處理,沒有寫入規則的默認爲deny即不可瀏覽,allow見下述。
Allow from-默認爲all,即所有客戶均可瀏覽
其實上述內容不寫在httpd.conf,寫在vhost.conf內也能夠:
< VirtualHost *:80 >
ServerAdmin webmaster@robinzs.com
ServerName virtual1.robinzs.com
DocumentRoot /srv/www/vhosts/
< Directory "/srv/www/vhosts/" >
         Options All
         AllowOverride All
         Order deny,allow
         Allow from all
     </ Directory >
</ VirtualHost >
 但如此作,有可能會出現沒法訪問的問題,也許會花長時間排錯,本身測試無所謂。在生產環境咱們應選擇安全的方法來完工做,因此此配置方法不建議。
 
 
建立相應站點文件與目錄
a 虛擬主機站點目錄
mkdir /srv/www/htdocs/virtual1
mkdir /srv/www/htdocs/virtual2

b 虛擬主機主頁
vim /srv/www/htdocs/virtual1/index.html
vim /srv/www/htdocs/virtual2/index.html
內容隨便,爲了方便我沒用html寫,直接就寫的Test1 for virtual1與Test2 for virtual2
c 日誌目錄
mkdir /var/log/apache2/virtual1
mkdir /var/log/apache2/virtual2
修改 /etc/hosts文件
 
添加內容:
192.168.1.102    virtual1.robinzs.com
192.168.1.102    virtual2.robinzs.com
由於兩個虛擬主機都用的是80端口訪問,上述操做都作完以後並不能正常訪問,只能訪問 virtual1.robinzs.com的頁面,輸入virtual2.robinzs.com也是同樣.這時須要修改參數使全部虛擬主機都可以使用80端口.
修改 /etc/apache/listen.conf文件
NameVirtualHost *:80的註釋去掉便可.
這裏順道提一句apache2的 訪問優先級。當有外部訪問需求進來時,apache2優先會訪問第一個虛擬主機;若是訪問域名是其它虛擬主機則會指向該域名的虛擬主機,若該訪問域名的虛擬主機不存在,則會指向第一個虛擬主機;若是沒有虛擬主機纔會指向默認站點!
重啓服務
rcapache2 restart
設置apaceh2 開機自啓
chkconfig apache2 on
 
 
用瀏覽器訪問測試
輸入域名
virtual1.robinzs.com
virtual2.robinzs.com
 
輸入IP
相關文章
相關標籤/搜索