- 安裝Apache2 Server
- sudo apt-get install apache2
- 輸入y後按下Enter安裝。
- sudo apt-get install apache2
- 確認Apache2 Server是否開啟
- sudo service apache2 status
- 如果看到Active欄位顯示的是active(running)狀態,表示Apache2 Server已安裝成功。
- 按下Ctrl+C可退出。
- sudo service apache2 status
- 現在我們可以打開瀏覽器,輸入伺服器的IP位址(e.g. 192.168.1.52)測試是否已經成功架設好網站伺服器
- 如果看到這個網頁畫面,表示已經成功架設完成網站伺服器
- Ubuntu的Apache2網站預設路徑在/var/www/html,我們寫好的網頁須把它放入此目錄,方可正常瀏覽網站。
延伸閱讀:
- 隱藏伺服器的版本、IP位址、Port位址…等資訊
- 當你在網站上瀏覽一個Not Found網頁,伺服器會回傳一些錯誤訊息,其中包含了伺服器的版本、IP位址、Port位址…等資訊,如下所示:
- 為了隱藏這些資訊,Apache提供了ServerTokens、ServerSignature這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
- ServerTokens Full (or not specified)
- 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
- ServerTokens:該指令控制Server發送回用戶端(Client)的作業系統類型、網站伺服器版本、編譯模塊…等訊息。它提供了6種不同的設定方式,如下所示:
- 當你在網站上瀏覽一個Not Found網頁,伺服器會回傳一些錯誤訊息,其中包含了伺服器的版本、IP位址、Port位址…等資訊,如下所示:
- 禁止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表示在此目錄中,配置可用的功能;我們最常使用的就是Indexes、FollowSymLinks這2個功能。
- FollowSymLinks:伺服器允許在此目錄中使用符號連接。詳細說明請參考FollowSymLinks。
- Indexes:如果網站上的目錄中沒有DirectoryIndex (e.g. index.html), 則mod_autoindex模塊將會自動生成目錄索引,也就是顯示出此目錄裡面的所有檔案。
- 在此,我們只需將Indexes這個功能移除,即可禁止Apache自動生成目錄索引。
- 指令AllowOverride:該指令只在<Directory>裡面有效,表示當伺服器找到一個.htaccess檔案時,它應該選擇.htaccess檔案裡面的配置,或是使用系統預設的配置方式;該指令有None、ALL這2個選擇。
- .htaccess檔案:Apache網站預設的配置文件。詳細說明可參考.htaccess是什麼?
- None:如果設定為None,伺服器將會忽略.htacess檔案,選擇系統預設的配置方式。
- ALL:如果設定為ALL,伺服器將會使用.htacess檔案裡面的配置方式。
- 在此,我們通常是將它設定為None。
- 修改完成,記得將Apache重啟,指令才會生效。
- sudo service apache2 restart
- <Directory /var/www/>
- 當網站的目錄裡面如果沒有index的網頁,伺服器可能會顯示出此目錄裡面的所有檔案,如下所示:
- 禁止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網頁會顯示你沒有權限存取此網頁的資源,如下所示:
- <files “a.html”>
- 當網站上有想隱藏或想禁止讓他人瀏覽的WebPage網頁,可以利用<files>的指令禁止讓他人瀏覽,其語法如下: