起
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.conf與
virutual2.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