• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用Apache架設Web服務器

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    建立 Linux 下的Web服務器可以選用Netscape的Enterprise Server,或者使用免費軟件Apache。 Netscape可以完全支持基于IP的虛擬主機,但對基于域名的虛擬主機卻不支持,因此只能顯示最外面的一層網頁?;贗P的虛擬主機需要一個獨立的IP;基于域名的虛擬主機,

      建立Linux下的Web服務器可以選用Netscape的Enterprise Server,或者使用免費軟件Apache。 Netscape可以完全支持基于IP的虛擬主機,但對基于域名的虛擬主機卻不支持,因此只能顯示最外面的一層網頁?;贗P的虛擬主機需要一個獨立的IP;基于域名的虛擬主機,可以多個虛擬主機共用一個IP。利用HTTP 1.1協議,靠不同的域名來區分可以大大節省IP地址資源。Apache完全支持以上兩種虛擬主機方式,并且克服了Netscape經常出現服務塞死的現象。Apache是目前互聯網上使用廣泛的Web服務器。下面詳細講解如何利用Apache來架設自己的Web服務器。

      安裝

      首先我們要介紹Apache的安裝過程。

      第一,先到http://www.apache.org下載最新版本的Apache。如果是在Windows下,把該文件下載在C盤,C盤在Linux中對應于/dev/hda1。

      第二,進入Linux,并以 root 的身份登錄并進行掛接文件系統。

      # mkdir c
      # mount -t vfat /dev/hda1 /c

      因為我們將Apache的源碼放置于c盤,所以現在要先把它掛載至新建的目錄/c里面。

      第三,把此程序拷貝到/tmp下,以便操作。

      #cp /c/apache_1.3.9.tar.gz /tmp

      注意:Linux下所有的文件名都是區分大小寫的。接下來,我們就要把源碼從壓縮包中解壓縮出來。相應的命令為:

      #cd /tmp
      #tar zxvf apache_ 1.3.9.tar.gz

      解壓縮后進入存放源碼的目錄,使用編譯配置腳本進行環境的設置。

      #cd /tmp/apache_1.3.9
      #./configure--sysconfdir=/etc/httpd
      --datadir=/home/httpd
      --logfiledir=/var/log/httpd
      --enable-module=most
      --enable-shared=max
      --disable-rule= WANTHSREGEX

      這里告訴Apache把配置文件保存在/etc/httpd目錄中,其它文件(例如HTML手冊文檔、CGI-BIN目錄)都保存在 /home/httpd目錄下。也告訴Apache將最常用的模塊作為DSO模塊編譯。DSO就是Dynamic Shared Object的縮寫。通過DSO支持的模式編譯Apache,能夠隨時從Apache里面增加和移除模塊,而不需要重新編譯它,具體的模塊見下文?! ?

      第四,在執行./configure 之后,配置腳本會自動生成 Makefile。這時,我們就可以開始編譯源碼了。

      #make

      源碼編譯完成后,就要使用make install安裝Apache至缺省的目錄下。當然也可以通過以下命令:

      #rpm -ivh apache*.rpm

      安裝Apache的RPM包。這種方法較為簡單,因此不再詳細介紹。

      配置

      安裝完Apache后,開始它的配置工作。在其主目錄下有httpd.conf、aclearcase/" target="_blank" >ccess.conf、srm.conf 及Magic等四個文件,其中httpd.conf是主要的配置文件,access.conf是訪問控制配置文件,srm.conf 則是對于Web主機的文件資源的配置文件。Magic是針對mime模塊的設置,我們一般不改動這個文件。

      在Apache運行的時候,它先調用httpd.conf,接著是srm.conf,最后是access.conf。在較新的Apache發行版本中,它建議srm.conf和access.conf 兩個文件的內容為空,把設置選項完全存放在httpd.conf之中,這樣會更加有利于服務器的安全性。

      下面就以httpd.conf來開始我們神奇的Web網絡世界。

      1.全局環境變量的設置

      httpd.conf是以全局環境變量的設置開始的。我們將要一步步介紹其具體的參數。

      ServerType standalone
      ServerRoot "/etc/httpd"

      第一行“ServerType”指令,說明Apache是以一個獨立的(Standalone)守護進程的身份運行于后臺,還是由另外的后臺守護進程(Xinetd)在接到HTTP請求的時候喚醒。對于正式的互聯網站點來說,standalone可以提供比xinetd方式更快的客戶端響應速度。因此我們選用standalone模式。第二行代碼介紹了該服務器配置文件的相對根目錄,一般是/etc/httpd,我們在安裝時已經設置好。請注意,不要在此目錄最后加“/”。

      LockFile /var/lock/httpd.lock
      PidFile /var/run/httpd.pid
      ScoreBoardFile /var/run/httpd.scoreboard

      LockFile在安裝Apache時指定選用了USE_FCNTL _SERIALIZED_ACCEPT,USE_FLOCK_SERIALIZED_ACCEPT等參數。作為Apache連接出現錯誤的記錄文件,它會把進程的PID值自動加在該文件中。請注意,該文件應保存在本地的硬盤中。PidFile記錄著每次服務器運行時的進程號。ScoreBoardFile是某些特定系統上服務程序中父子進程通訊記錄的文件。

      #ResourceConfig conf/srm.conf
      #AccessConfig conf/access.conf

      以上兩項是指定服務器資源及控制權限的文件,在默認情況下并不使用它們。

      Timeout 300
      KeepAlive On
      MaxKeepAliveRequests 100
      KeepAliveTimeout 15
      這四項設定了服務器的連接屬性。第一行說明了TCP中ack的響應時間為300秒;第二項表示是否保持服務響應的連接;緊接著的兩項定義了這種連接的最大響應數目及響應時間。如果MaxKeepAliveRequests設為0,那它便是unlimited,當然這就要考慮系統的承載能力了。

      MinSpareServers 5
      MaxSpareServers 20
      StartServers 8

      這三項定義了服務程序的最小、最大空的子進程數目及服務程序開始時的進程數。5、20、8分別是它們的默認數值。

      MaxClients 150
      MaxRequestsPerChild 100

      以上兩行定義了同一時刻最多的客戶連接數目和每個連接的子進程數。

      Listen 3000
      Listen 12.34.56.78:80
      BindAddress *

      這里定義了服務程序監聽來自以上IP、端口號的Request。由于BindAddress只支持*(代表所有的IP),所以產生了Listen這個參數以便更靈活地處理客戶機的響應。

      ExtendedStatus On/Off

      這條指令說明了是否跟蹤服務程序所產生的擴展狀態。

      以下是對于DSO的支持,分別利用了LoadModule、AddModule參數。我們可以閱讀表1,加載自己所需要的模塊。

      2.主服務器設置

      下面設置主服務器(非虛擬服務主機)。

      Port 80

      這個參數給出了服務程序開啟監聽的端口號為80。

      User nobody
      Group nobody
      ServerAdmin root@localhost
      ServerName localhost

      上面的第一、二行代表了打開服務進程的用戶名和用戶組名。第三、四行則是管理員的郵件地址和此服務器的主機名。

      DocumentRoot "/home/httpd/html"
      DirectoryIndex index.html index.htm index.shtml index.cgi
      UserDir public_html

      面前兩行定義了網頁的主目錄和首頁名稱。UserDir給出了用戶的絕對路徑,也就是說明個人主頁存放路徑。

      AccessFileName .htaccess

      此指令指定了每個目錄下的文件權限是由.htaccess決定。當Apache試圖讀取某一目錄下的文件時,它將先查閱“.htaccess”文件中所列的訪問控制指令,并執行相應的操作。

      Mime 的文件定義類型是由下面的兩句所決定:

      TypesConfig /etc/mime.types
      MIMEMagicFile share/magic
      AddLanguage en .en

      此參數可以增加對多種語言的支持。

      ErrorLog /var/log/httpd/error_log
      LogLevel warn
      CustomLog /var/log/httpd/access_log common


      上面這些代碼代表了客戶機訪問服務器的一些日志文件。

      完成全局設置后,我們還要針對每個目錄的權限進行特定的配置。

      3.目錄權限的配置

      我們只以一個目錄為例,其它的路徑可以類推。

     ?。糄irectory /home/*/public_html>
      AllowOverride FileInfo AuthConfig Limit
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
     ?。糒imit GET POST OPTIONS PROPFIND>
      Order allow,deny
      Allow from all
     ?。?Limit>
     ?。糒imit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
      Order deny,allow
      Deny from all
     ?。?Limit>
     ?。?Directory>


      這一段定義了/home/*/public_html目錄下可以或禁止進行的文件操作,以及客戶機的受限范圍。

      4.虛擬主機配置

      虛擬主機配置是Apache最精彩的地方之一,很多的ASP也是利用Apache這個特性來提供優質服務的。

     ?。糣irtualHost www.virt.com>
      SSLDisable
      ServerAdmin webmaster@virt.com
      DocumentRoot /var/httpd/virt
      ScriptAlias /cgi-bin/ /var/httpd/virt/cgi-bin/
      ServerName www.virt.com
      ErrorLog logs/virt-error.log
      TransferLog logs/virt-access.log
     ?。?VirtualHost>


      我們可以看到它的語法和真正主機設置相差甚小,因此不再介紹。

      實例

      最后以我自己的Apache(httpd.conf)為例來結束我們的講解。

      ServerType standalone
      Port 80
      Listen 80
      Listen 1024
      User wwwrun
      Group wwwrun
      ServerAdmin webmaster@wudi.com
      ServerRoot /etc/httpd
      ErrorLog logs/error_log
      TransferLog logs/access_log
      PidFile logs/httpd.pid
      ServerName www.wudi.com
      MinSpareServers 3
      MaxSpareServers 20
      StartServers 3


      如圖1所示。

     

    圖1 虛擬主機1



     ?。糣irtualHost www.wudi1.com :80>
      SSLDisable
      ServerAdmin webmaster@wudi1.com
      DocumentRoot /var/httpd/wudi1
      ScriptAlias /cgi-bin/ /var/httpd/wudi1/cgi-bin/
      ServerName www.wudi1.com
      ErrorLog logs/virt1-error.log
      TransferLog logs/virt1-access.log
      User virt1admin
      Group users
     ?。?VirtualHost>


      如圖2所示。


    圖2 虛擬主機2


     ?。糣irtualHost www.wudi2.com:1024>
      ServerAdmin webmaster@wudi2.com
      DocumentRoot /var/httpd/wudi2
      ScriptAlias /cgi-bin/ /var/httpd/wudi2/cgi-bin/
      ServerName www.wudi2.com
      ErrorLog logs/virt1-ssl-error.log
      TransferLog logs/virt1-ssl-access.log
      User virt1admin
      Group users
     ?。?VirtualHost>


      結束配置工作,用戶就可以選擇系統啟動時是否啟動Apache Web服務器(在缺省安裝的情況下,Apache Web服務器進程httpd是自動啟動的)。

      chkconfig 235 apache on

      或者用戶也可以選擇每次手工啟動Apache Web服務器。手工啟動/停止/重起Apache Web服務器后臺守護進程httpd,可通過在命令“/etc/rc.d/init.d/httpd”后面加上參數“start/stop/restart”來進行的。

      /etc/rc.d/init.d/httpd start

      經過上述的操作,就可以建立起自己的網站了。

      Apache是一款優秀的免費軟件,它不僅是一個知名的Web服務器,還是較為方便的代理軟件。如果我們加入必要的模塊,它能十分容易地支持PHP、ASP、Perl、FrontPage等一系列的Web編成工具。


      附:Apache組件列表

    Apache組件 中文注解信息
    Core Apache的核心特點
    mod_access 基于主機名或IP地址的存儲控制
    mod_actions 基于文件類型/方式的腳本的執行
    mod_alias 別名和重定向
    mod_asis 處理文件.asis
    mod_auth 使用文本文件的用戶認證
    mod_auth_anon FTP風格的匿名認證
    mod_auth_db 使用berkeley的DB文件進行用戶認證
    mod_auth_dbm 使用DBM的文件進行用戶認證
    mod_autoindex 自動列出目錄
    mod_browser 基于用戶端字符串的環境設定。在Apache1.3或更高版本中用mod_setenvif代替
    mod_cern_meta 支持http開頭的圖元文件
    mod_cgi 支持cgi腳本的執行
    mod_cookies 支持網景的cookies功能。在Apache1.2中被mod_usertrack代替
    mod_digest MD5認證
    mod_dir 基本目錄索引得控制
    mod_did 啟動時載入可執行文件到服務器的功能。在Apache1.3中被mod_so代替
    mod_dll 在1.3b6中被mod_so代替
    mod_env 傳遞環境信息到cgi腳本中
    mod_example 演示Apache API
    mod_expires 對有文件應用過期選項
    mod_headers 加入任意的http頭文件
    mod_imap 影像地圖檔的控制
    mod_include 服務器端剖析文檔
    mod_info 服務器端配置信息
    mod_isapi 對Windows isapi擴展支持
    mod_log_agent 客戶端使用者程序紀錄
    mod_log_common 標準的一般記錄檔案格式的日志。在Apache1.2或更高的版本中被mod_log_config模塊代替
    mod_log_config 對服務器端請求,使用用戶端指定的格式,代替mod_log_common的用戶可配置日志
    mod_log_referer 紀錄文檔指南
    mod_mime 通過文件名決定文件類型
    mod_mime_magic 通過“神奇的數字”來決定文件類型
    mod_mime_magic 通過“神奇的數字”來決定文件類型
    mod_mmap_static 為了提高服務速度映射文件到內存
    mod_negotiation 內容協商
    mod_poxy 支持代理緩存的功能
    mod_rewrite 通過使用規則的表達式來實現強大的url到文件名的映射
    mod_setenvif 基于客戶端信息的環境變量的設置
    mod_so 試驗性的在執行時支持轉載模塊(Windows中的dlls)
    mod_speling 自動監視upl中的正確性
    mod_status 服務器狀態顯示
    mod_userdir 用戶的home目錄
    mod_unique_id 對每個請求產生獨立的請求標識符

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>