在Ubuntu安裝Apache Server

  1. 安裝Apache2 Server
    • sudo apt-get install apache2
      • 輸入y後按下Enter安裝。
  2. 確認Apache2 Server是否開啟
    • sudo service apache2 status
      • 如果看到Active欄位顯示的是active(running)狀態,表示Apache2 Server已安裝成功。
      • 按下Ctrl+C可退出。
  3. 現在我們可以打開瀏覽器,輸入伺服器的IP位址(e.g. 192.168.1.52)測試是否已經成功架設好網站伺服器
    • 如果看到這個網頁畫面,表示已經成功架設完成網站伺服器
    • Ubuntu的Apache2網站預設路徑在/var/www/html,我們寫好的網頁須把它放入此目錄,方可正常瀏覽網站。

延伸閱讀:

  • 隱藏伺服器的版本、IP位址、Port位址…等資訊
    • 當你在網站上瀏覽一個Not Found網頁,伺服器會回傳一些錯誤訊息,其中包含了伺服器的版本、IP位址、Port位址…等資訊,如下所示:
    • 為了隱藏這些資訊,Apache提供了ServerTokensServerSignature這2個指令:
      • ServerTokens:該指令控制Server發送回用戶端(Client)的作業系統類型、網站伺服器版本、編譯模塊…等訊息。它提供了6種不同的設定方式,如下所示:
        • ServerTokens Full (or not specified)
          • Server sends (e.g.): Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
        • ServerTokens Prod[uctOnly]
          • Server sends (e.g.): Server: Apache
        • ServerTokens Major
          • Server sends (e.g.): Server: Apache/2
        • ServerTokens Minor
          • Server sends (e.g.): Server: Apache/2.4
        • ServerTokens Min[imal]
          • Server sends (e.g.): Server: Apache/2.4.2
        • ServerTokens OS
          • Server sends (e.g.): Server: Apache/2.4.2 (Unix)
        • 因此,使用ServerTokens提供最少的訊息為Prod,我們可以將ServerTokens配置為Prod,減少伺服器透漏過多的資訊。
        • 在Ubuntu作業系統中,欲將Apache的ServerTokens配置為Prod,其路徑在/etc/apache2/conf-enabled目錄中,編輯security.conf這個檔案。
        • 修改完成,記得將Apache重啟,指令才會生效。
          • sudo service apache2 restart
      • ServerSignature:該指令允許Server輸出一些訊息文檔(e.g. error messages, IP Address, Port No.)。它提供了3種不同的設定方式,如下所示:
        • ServerSignature OFF:關閉,不輸出任何訊息。預設為OFF,但有些Linux發行版本可能會預設為ON。
        • ServerSignature ON:Server輸出一些訊息文檔(e.g. error messages, IP Address, Port No.)。
        • ServerSignature EMail:建立一個發送給ServerAdmin的”mailto:”信箱。
        • 因此,使用ServerSignature 提供最少的訊息為OFF,我們可以將ServerSignature 配置為OFF,減少伺服器透漏過多的資訊。
        • 在Ubuntu作業系統中,欲將Apache的ServerSignature 配置為OFF,其路徑在/etc/apache2/conf-enabled目錄中,編輯security.conf這個檔案。
        • 修改完成,記得將Apache重啟,指令才會生效。
          • sudo service apache2 restart

 

  • 禁止Apache自動生成目錄索引
    • 當網站的目錄裡面如果沒有index的網頁,伺服器可能會顯示出此目錄裡面的所有檔案,如下所示:
    • 為了禁止Apache自動生成目錄索引,我們可以修改目錄配置,在Ubuntu作業系統中,其路徑在/etc/apache2目錄中,編輯apache2.conf這個檔案。
    • 請利用vim編輯器(或其他的編輯器),新增或修改apache2.conf裡面<Directory /var/www/>的配置,其語法如下:
      • <Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        </Directory>
      • 因為我們Apache的網站預設路徑在/var/www/html裡面,故需將Directory(目錄)指名到/var/www/html中。
      • 指令Options表示在此目錄中,配置可用的功能;我們最常使用的就是IndexesFollowSymLinks這2個功能。
        • FollowSymLinks:伺服器允許在此目錄中使用符號連接。詳細說明請參考FollowSymLinks
        • Indexes:如果網站上的目錄中沒有DirectoryIndex (e.g. index.html), 則mod_autoindex模塊將會自動生成目錄索引,也就是顯示出此目錄裡面的所有檔案。
        • 在此,我們只需將Indexes這個功能移除,即可禁止Apache自動生成目錄索引。
      • 指令AllowOverride:該指令只在<Directory>裡面有效,表示當伺服器找到一個.htaccess檔案時,它應該選擇.htaccess檔案裡面的配置,或是使用系統預設的配置方式;該指令有NoneALL這2個選擇。
        • .htaccess檔案:Apache網站預設的配置文件。詳細說明可參考.htaccess是什麼?
        • None:如果設定為None,伺服器將會忽略.htacess檔案,選擇系統預設的配置方式。
        • ALL:如果設定為ALL,伺服器將會使用.htacess檔案裡面的配置方式。
        • 在此,我們通常是將它設定為None。
      • 修改完成,記得將Apache重啟,指令才會生效。
        • sudo service apache2 restart

 

  • 禁止Apache瀏覽特定的WebPage網頁
    • 當網站上有想隱藏或想禁止讓他人瀏覽的WebPage網頁,可以利用<files>的指令禁止讓他人瀏覽,其語法如下:
      • <files  “a.html”>
        Order deny,allow
        Deny From ALL
        Allow From 192.168.1.52
        </files>
      • 指令<Files>表示我們可以針對網站上的文件進行一些操作,至於是網站上哪個文件,就靠後面的引號(“”)敘述,像此範例的語法就是針對a.html這個網頁進行一些操作。
      • <Files>這個指令相當於<Directory>和<Location>這2個指令,所以網站上只要有範例中a.html的文件都會被限制。
      • Order deny,allow這個語法,表示會先檢查deny(禁止)的條件,如果沒有禁止的條件就全部允許。
      • Deny From ALL這個語法,表示禁止全部的訪問。
      • Allow From 192.168.1.52這個語法,表示允許192.168.1.52這個ip訪問此網頁。
      • 結論:此範例語法表示除了192.168.1.52這個ip可以訪問此網頁外,其他的ip都沒辦法訪問到a.html這個WebPage網頁。
      • 修改完成,記得將Apache重啟,指令才會生效。
        • sudo service apache2 restart
      • 當使用了此範例的語法,禁止了a.html這個WebPage網頁,則瀏覽a.html網頁會顯示你沒有權限存取此網頁的資源,如下所示:

發佈留言