如果說你沒有安裝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/aclearcase/" target="_blank" >ccess.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 改為DocumentRoot /home/jon/html
最后,修改 /etc/httpd/conf/httpd.conf文件。
將ServerName 這一個參數后面的原來的內容替換為你的本機ip地址或主機名,同時去掉前面的注釋符 “#”。這里的配置為:
ServerName jon (jon 為我的主機名)
從新啟動httpd進程:
#/etc/rc.d/init.d/httpd restart
這樣就做好了所有的配置,用你的Xwindows下的netscape瀏覽器在URL中輸入你的主機名、本機的IP地址或localhost,就可以看到自己的主頁了。要注意的是你的文檔目錄中必須有index.html文件,而且你的超文本文件的后綴名必須是.html。只要沒有改錯 httpd.conf 、srm.conf、 access.conf這三個文件,且httpd進程啟動時沒有報措,一般是不會有問題的。