隨著 Linux的不斷普及,很多的朋友把REDHAT安裝到了自己的計算機上,從此也就開始了對REDHAT的摸索。我在這裡也把我的一點心得體會告訴大家,希望對大家有所幫助。
Apache 的安裝 通常來說,大家在安裝時可以選擇安裝WEB SERVER ,並在INTERNET SERVICES中開啟httpd這一相服務,這樣系統就會自動的安裝好apache,並且在系統第一次啟動時啟動httpd進程。在作好一些相應的配置後,在你的Xwindows環境下打開NETSCAPE,並在URL中填入localhost 或本機的IP地址,就會訪問到apache的默認的頁面。 如果說你沒有安裝WEB SERVER ,你可以重新安裝並選擇UPDATE,挑選apache的軟件包安裝到本機。當然,如果你想要安裝最新的版本,可以http://www.apache.org/ 網站上去下載最新的版本。如果是原文件,需要做一些相應的配置,然後編譯原文件。如果是下載的二進制文件,就可以直接配置你的WEB 服務器。至於編譯原文件後和配置工作,我們暫時不提,先講一講在安裝系統時就安裝了apache 的情況下的配置過程。 系統啟動時會去啟動httpd的服務,通常沒有改過配置,httpd是起不來的。報的錯誤是ServerName not idnetify. 這是由於默認的配置沒有指定服務的名稱,這時你可以手動修改配置文件就可以了。具體的方法是: 1. 編輯 /etc/httpd/conf/ 目錄下的httpd.conf文件,找到ServerName 這一項參數,這一行是被注釋掉的(前面有#的符號)。去掉前面的在\"#\"符號,並在後面填入你的hostname或IP地址。 2. 從新啟動httpd進程。 # /etc/rc.d/init.d/httpd stop # /etc/rc.d/init.d/httpd start 然後在Xwindows的界面下啟動netscape,在URL中輸入localhost或本機的IP地址,就可以看到apache 的一個頁面了,從這個頁面上你可以看一看關於apache的文檔,學習一下他的有關內容。 這樣一個主頁的進程就配置好了,你將自己的主頁拷貝到/home/httpd 目錄中,再用netsacpe訪問自己的機子,就會發現現在顯示的是你自己的主頁。你的主頁就這樣配置好了,別的機子只要在浏覽器中填入你的IP地址就可以訪問到你的主頁了。如果你想要有域名的話,就得另外申請了。 注意有時會有下面的情況:當你用NETSACPE訪問了你的頁面,這時,你重新更換默認目錄中的內容,可是不管你如何在NETSCAPE中RELOAD都無法調入你新的內容。 產生這種情況的原因是NETSCAPE直接調用CACHE中的內容,沒有真正的讀取你文檔的內容。解決的方法是在NETSCAPE中清空CACHE。具體的步驟如下: 1. 選擇菜單中的Edit 2. 在最下面選擇 Preference 3. 在左邊的菜單中選擇Advanced 4. 在他的下拉菜單中選擇Cache 5. 點擊 Clear Disk Cache 和 Clear Memory Cache 按鈕。 這樣清空了NETSCAPE 的CACHE後,就可以看到你更新後的頁面了。 http 的命令行參數 httpd 是一個可執行的文件,他的位置是在/usr/bin目錄裡。用這個命令我們可以手動的啟動一個WWW的服務,這樣使得別人可以訪問你的主頁。他的具體參數是: -d serverroot 這個參數告訴httpd在何處去取啟動時所需的配置參數,serverroot是存放配置文件的命令名。 -f config 配置文件的名稱,默認的值是httpd.conf。如果沒有給定目錄,就會到serverroot的目錄中取找這個文件。 -X 啟動單進程模式。意思是不會產生任何子進程,也就是你只能看到index.Html這一頁,點擊上面的鏈接都不會有反應。 -v 顯示httpd的版本號。 -l 顯示編譯進httpd的模塊名稱。 -? 顯示httpd 的參數 了解了上面的參數後,我們就可以手動的啟動一個服務: #httpd 杁 /etc/httpd/mywebconf 在 /etc/httpd.mywebconf目錄中存放了你的WEB SERVER 的配置文件,下面就具體的介紹一下該目錄中的配置文件的名稱和內容。
配置文件的內容和參數意思 在配置目錄中有三個文件,分別是: 1. conf/httpd.conf : ServerType :有兩個值可供選擇standalone 和inetd Standalone : 表示你的httpd進程,是以一個單獨的守護進程(daemon)的方式在後台偵聽是否有客戶端的請求。 Inetd : 表示你的httpd進程不是以守護進程(daemon)的方式運行,而是由Inetd 這個 internet services的進程偵聽,一旦有客戶的請求,他會自動的啟動httpd這個進程來提供相應的服務。 默認的是Standalone方式,如果你不是對 ARPA Berkeley Services 不是很了解的話,不要更改。 Port : 你分配給你的WEB SERVER 的端口號。 Httpd 的默認端口是80,也可以分配給自己的WEB SERVER 一個大於1024 的端口號。如果你這樣作,你必須在你的URL後面跟上你的端口號才能訪問到你的頁面。比如你分配給你的服務的端口號是8888,那麼你訪問時需要輸入http://domainname:8888 ServerAdmin :服務管理員的email 地址,默認的是本機的root用戶,所以是root@localhost ServerRoot :用來存放服務的配置、出錯和記錄文件的目錄。 BindAddress :虛擬主機的IP地址。用一台機子虛擬多台機子。 ErrorLog :用來存放你WEB SERVER的出錯信息的文件。 TransferLog :用來存放記傳輸過的文件名的記錄文件。 PidFile :該指定的文件存放了httpd進程的進程號,用來停止WEB SERVER。 ScoreBoardFile :用來存放進程的信息。 ServerName :你機子的名稱,如果你有域名,填入你本機的域名。如果沒有,就填入你的主機名或IP地址。 Timeout :傳輸或接收的延時。大於這個時間SERVER 會斷開這個鏈接。 KeepAlive :(on or off)是否允許一個鏈接同時發出多的請求。 KeepAliveTimeout :(default is 15)等待下一個請求的時間。 MaxClients :(default is 150)允許的最大客戶個數。 通常上面的參數的默認值是不用改的,但是如果你同時在一台機子上開幾個WEB SERVER 時要注意。第一,你要給每一個WEB SERVER 分配不同的port 號。第二,要分別指定他們的errorlog文件和pidfile文件。第三,不懂的參數不要隨意改動,即使改動也要一次改一個,並留有記錄以便恢復。 2. /conf/Access.conf : 主要是對目錄的功能和訪問的控制的設定。下面我針對默認的頁面的配置文件進行說明。該文件的位置是:/etc/httpd/conf/access.conf. 該文件的第一段非注釋部分如下: <Directory /home> Options Indexes IncludesNOEXEC AllowOverride None </Directory> 大家注意到這一部分是以<Directory /home>開頭,以</Directory>結束的。其中開頭的部分<Directory /home>表示下面的設定是針對 /home 目錄的。Options 這一命令有很多的參數,各參數的功能如下: All 所有的選項除了MultiViews功能。 ExecCGI 開啟執行CGI程序的功能。 FollowSymLinks 開啟一個動態的鏈接,當有客戶訪問到該目錄時會自動的鏈接到另一個相關的目錄中去。 Includes 開啟服務端的引用功能。 IncludesNOEXEC 開啟服務端的引用功能,但是#exec和CGI程序的引用將被禁止。 Indexes 如果沒有index.html文件在目錄中,就會顯示文件列表。 SymLinksIfOwnerMatch 只有在鏈接的目標文件或目錄與當前的目錄屬於同一用戶時,才開啟鏈接。 接著是AllowOverride參數,該參數是設定訪問控制的。這裡把他設置成None,表示沒有開啟該功能。 第二部分是: <Directory /home/httpd/html> Options Indexes Includes ExecCGI FollowSymLink AllowOverride None order allow,deny allow from all </Directory> 第三部分是: <Directory /home/httpd/cgi-bin> AllowOverride None Options ExecCGI </Directory> 表示對/home/httpd/cgi-bin 不進行訪問控制,允許執行CGI程序。這就表明這是一個用來存放CGI程序的目錄 3. /conf/srm.conf 主要是用來指定你的文檔的位置。 第一個參數是:DocumentRoot 。用來指定主文檔的地址。 第二個參數是:UserDir 。用來指定個人主頁的位置。如果你有一個用戶的home目錄為 /home/jon 當在URL中輸入http://yourdomain/~jon 系統就會到 /home/jon/X/中去取這個用戶的個人主頁。其中X為UserDir 所指定的目錄。 第三個參數是:DirectoryIndex。用來聲明查找的索引文件的名稱。 其他的不改也無防。通常用到的就是上面的幾個選項。 具體示例 需要建立一個開機啟動的web server。假定你的文檔目錄為/home/jon/html。 首先,更改/etc/httpd/conf/access.conf文件的內容。將原文檔的目錄更改為新的文檔目錄。 例如如下的更改: <Directory /home/httpd/html> ? <Directory /home/jon/html> Options Indexes Includes ExecCGI FollowSymLink AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/cgi-bin> ? <Directory /home/jon/cgi-bin> AllowOverride None Options ExecCGI </Directory> 如上做相應的更改,注意 /home/jon/cgi-bin為你的cgi程序的目錄。 接著,修改 /etc/httpd/conf/srm.conf文件。 將DocumentRoot /home/httpd/html 改為Docum