時隔三個多月,終于又再次來到濟南參加RHCE認證的學習教育訓練,還是那所教育訓練機構,還是那位老師,隻是同學們都換成了新面孔,而季節也由盛夏過度到了初冬。照例還是将每天的學習過程記錄下來,為自己留下第一手的資料,同時希望也能為大家提供一些幫助。
<b>第一天(11月26日)</b>
第一天的主要内容是搭建Web伺服器,這也是RHCE考試最重要的内容。
<b>1、Apache概述</b>
在Linux系統中使用Apache實作Web伺服器,網際網路中大約60~70%的Web伺服器基于Apache實作。Apache來源于NCSA(由歐洲量子實驗室開發),現在由Apache軟體基金會(ASF)負責管理和開發,其官網為httpd.apache.org。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/183859792.jpg"></a>
Apache的特點:開源,子產品化設計(可以靈活添加各種功能),跨平台應用(可以用于Windows、UNIX/Linux系統)。缺點:預設隻有256個并發連接配接,運作速度偏慢,效率較低。目前已經出現了一些取代它的軟體,如nginx。
Apache有兩個版本分支:1.x和2.x,目前使用的都是2.x版本,最新版本為2.2.15。
Apache的服務程序為httpd,檢視系統中是否已安裝Apache:
[root@localhost ~]# rpm -qa | grep httpd
httpd-tools-2.2.15-15.el6_2.1.x86_64
如果Apache沒有安裝,可以用yum安裝:
[root@localhost ~]# yum install httpd httpd-manual
httpd-manual是Apache的幫助手冊。
Apache的一些常用指令:
# service httpd start 啟用httpd服務
# service httpd stop 停止httpd服務
# service httpd status 檢視httpd服務的狀态
# service httpd restart 重新開機httpd服務
httpd服務啟動之後會開放80端口,利用netstat指令檢視系統開放的端口:
[root@localhost ~]# netstat -an | grep :80
隻要80端口開放,www伺服器就可以正常通路,如果有問題,多半是防火牆的原因。
另:在/etc/services中注明了所有的端口對應的服務。可以用grep指令在其中查找相應端口的資訊。
<b>2、httpd.conf配置檔案</b>
Apache的配置檔案是/etc/httpd/conf/httpd.conf,伺服器的配置資訊全部存儲在這個檔案中,如果修改了配置檔案,就必須重新開機httpd服務才可以生效。
httpd.conf檔案中的内容非常多,用wc指令統計一共有1004行,其中大部分是以#開頭的注釋行。是以對httpd.conf的配置一般采用搜尋的方式對常用項目進行設定,在vim指令模式下輸入“/”,後面跟上要搜尋的内容。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/184202137.jpg"></a>
下面是配置檔案中的一些比較重要的設定項目。
apache的預設主目錄
DocumentRoot "/var/www/html"
如果更改了主目錄的位置(不是在/var/www目錄下),需要用“setenforce 0”指令将SELinux關閉,是以主目錄一般不建議更改。
apache的預設首頁
DirectoryIndex index.html index.html.var
預設偵聽的端口
Listen 80
用戶端在通路Apache伺服器時預設使用的使用者apache群組apache
User apache
Group apache
從ftp://192.168.0.254/pub/station.html下載下傳檔案,并且将檔案重命名為index.html。
将檔案拷貝到web伺服器的主目錄下,不能對檔案index.html的内容做任何修改。
我的電腦的IP為192.168.0.114,域名server14.example.com與IP的對應關系已經在DNS伺服器中建立好了。
操作步驟:
首先從伺服器下載下傳檔案:
[root@server14 ~]# wget ftp://192.168.0.254/pub/station.html
将檔案改名并移動到主目錄中:
[root@server14 ~]# mv station.html /var/www/html/index.html
打開浏覽器,輸入網址http://server14.example.com,可以正常通路頁面,操作完成。
<b>3、建構虛拟主機</b>
虛拟主機指的是在同一台伺服器中運作多個Web站點。
有三種技術可以實作虛拟主機。
基于域名的虛拟主機:為每個虛拟主機使用不同的域名,但是其對應的IP位址是相同的。例如,www.example.com和www.accp.com站點的IP位址都是192.168.0.1。這是使用最為普遍的虛拟主機類型。
基于IP位址的虛拟主機:為每個虛拟主機使用不同的域名,且各自對應的IP位址也不相同。這種方式需要為伺服器配備多個網絡接口,是以應用并不是非常廣泛
基于端口的虛拟主機:這種方式并不使用域名、IP位址來區分不同的站點内容,而是使用了不同的TCP端口号,是以使用者在浏覽不同的虛拟站點時需要同時指定端口号才能通路。此種方式也很少使用。
在RHCE考試中隻考察基于域名的虛拟主機。
設定主目錄為/var/www/virtual
将檔案index.html放到虛拟主機的主目錄下,不要對檔案的内容做任何更改。
確定harry使用者能夠在/var/www/virtual目錄下建立檔案。
同樣的,www14.example.com與IP的對應關系已在DNS伺服器中設定好了。
首先建立虛拟主機的主目錄:
# mkdir /var/www/virtual
從伺服器下載下傳檔案:
[root@server14 ~]# wget ftp://192.168.0.254/pub/www.html
[root@server14 ~]# mv www.html /var/www/virtual/index.html
修改配置檔案httpd.conf:
[root@server14 ~]# vim /etc/httpd/conf/httpd.conf
按G将光标移動到檔案末尾,增加如下内容:
NameVirtualHost 192.168.0.114
<VirtualHost 192.168.0.114>
DocumentRoot /var/www/virtual/
ServerName www14.example.com
</VirtualHost>
在末行模式下按wq儲存退出。
這些增加的内容的含義:
NameVirtualHost 192.168.0.114
表示在192.168.0.114這台主機上啟用虛拟主機功能。
<VirtualHost 192.168.0.114>……</VirtualHost>
這是虛拟主機的标準格式,每增加一台虛拟主機就要添加這樣一個段落。
DocumentRoot /var/www/virtual/
指定虛拟主機的主目錄。
ServerName www14.example.com
指定虛拟主機的域名。
最後将httpd服務重新開機後生效。
# service httpd restart
打開浏覽器,在位址欄中輸入http://www14.example.com/,就可以通路虛拟主機站點了。
<b>4、通路控制</b>
對Apache網站的通路控制可以采用基于使用者的通路控制,或是基于客戶機位址的通路控制兩種方式。
(1)基于使用者的通路控制
注意,此使用者與系統使用者沒有任何關系。
例題3:設定網站server14.example.com下面的private子目錄需要通過使用者身份驗證才能通路,隻有輸入使用者名harry或natasha以及相應的密碼才能通路。
首先建立子目錄:
# mkdir /var/www/html/private
然後在子目錄中建立網頁:
# vim /var/www/html/private/index.html
下面修改配置檔案httpd.conf,在檔案末尾增加下面的部分:
DocumentRoot /var/www/html/
ServerName server14.example.com
<Directory /var/www/html/private>
AuthName "test"
AuthType Basic
AuthUserFile /etc/httpd/conf/.htpasswd
require valid-user
</Directory>
其中的設定項目的含義:
<Directory /var/www/html/private>……</Directory>,表示對目錄“/var/www/html/private”進行通路控制設定。
AuthName:定義受保護的領域名稱,将在彈出的認證登陸對話框中顯示。
AuthType:設定認證的類型,Basic為基本認證
AuthUserFile:設定用于儲存使用者帳号、密碼的認證檔案路徑。(可以自由定義)
require valid-user:授權給認證檔案中的所有有效使用者
最後這一項也可以寫成“Require User [使用者名]”,指定一個使用者名,這樣無論認證檔案中如何定義,隻有該使用者可以通路。
設定完成後,儲存退出httpd.conf。
接下來建立存儲認證使用者賬号及密碼的檔案:
# htpasswd –cm /etc/httpd/conf/.htpasswd harry
-c,建立檔案 -m,MD5加密
如果要再加入别的使用者,需要去掉-c選項
# htpasswd –m /etc/httpd/conf/.htpasswd natasha
重新開機httpd服務,配置完成:
(2)基于客戶機位址的通路控制
考試時隻考察這種方式,這種方式相對比較簡單。
例題4:設定網站server14.example.com下面的private子目錄隻允許在本機通路(本機IP:192.168.0.114)。
修改配置檔案,增加下面的部分:
# vim /etc/httpd/conf/httpd.conf
Order allow,deny
Allow from 192.168.0.114
Order allow,deny 定義控制順序,先允許後拒絕,預設拒絕所有。
Allow from 192.168.0.114 設定允許通路的位址,位址可以是多個,如Allow from 192.168.0.114 192.168.0.115。再如
Allow from 192.168.0.0/24
Deny from 192.168.0.100
表示隻允許192.168.0.0/24網段中的主機通路網站,192.168.0.100除外。
重新開機httpd服務生效:
此時隻有IP為192.168.0.114的主機(也就是本機)能通路這個網站。
<b>5、實作https安全通路</b>
實作https通路,首先需要為web站點申請證書,由于還沒有搭建CA伺服器,這裡就使用本機自認證的證書。
apache預設并不支援安全通路功能,是以需要為apache安裝ssl子產品:
# yum install mod_ssl
另外,https不支援虛拟主機技術,在一台伺服器上隻允許有一個啟用該功能的網站。是以這裡還要把之前配置的虛拟主機的相關行前面加“#”,将之全部注釋掉。
做完上面的設定後,在客戶機就可以使用https方式通路網站了。
<b>6、建構LAMP平台</b>
LAMP即Linux、Apache、MySQL、PHP,使用它們可以建構出目前最為成熟的一種企業網站應用模式,可提供動态Web站點應用及開發環境。
首先在系統中安裝mysql和php:
# yum install httpd mysql mysql-server php php-mysql
在網站主目錄中生成一個php的測試網頁:
# vim /var/www/html/a.php
<?php
phpinfo();
?>
儲存退出。
然後在浏覽器中輸入server14.example.com/a.php就可以打開PHP的資訊頁面。
例題5:利用LAMP搭建一個bbs論壇。
這裡用到的論壇程式是Discuz!,首先從伺服器裡下載下傳Discuz!的壓縮檔案包Discuz_X2.5_SC_UTF8.zip,将之解壓到網站主目錄中:
# cd /var/www/html
# uzip Discuz_X2.5_SC_UTF8.zip
解壓後會生成一個名為upload的目錄,這是bbs的主目錄,将之改名為bbs:
# mv upload bbs
重新開機資料庫:
# service mysqld start
指定資料庫的管理者及密碼(注意,此root并不是Linux系統的根使用者root)
# mysqladmin –u root password “123”
重新開機httpd服務:
在浏覽器中輸入“server14.example.com/bbs”,打開論壇的設定界面:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/191901526.jpg"></a>
檢查安裝環境,要保證所有項目都是綠勾:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/192252378.jpg"></a>
安裝資料庫,并設定管理者賬戶admin及密碼:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/192314814.jpg"></a>
安裝完成後,關閉浏覽器,再次打開浏覽器,在位址欄中輸入“server14.example.com/bbs”,就可以正常打開論壇的首頁,輸入使用者名admin及密碼登入:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/192410279.jpg"></a>
進入“管理中心”,在“論壇”頁籤中可以對論壇中的版塊進行設定:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/192440713.png"></a>
傳回首頁,就可以看到我們搭建好的論壇了:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/192505178.png"></a>
本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1071201
<b></b>
<b> </b>