in Ubuntu/Debian

使用Lubuntu架設LAMP server二三事(一)

Ubuntu是一套在個人上蠻受歡迎的Linux作業系統,也是我比較常拿來練習架站與做事情的一套作業系統。LAMP 其實是Linux,Apache,MySQL,PHP的縮寫,也是一個四個再一起搭配的一套server套件。本篇文章要教導該如何再作業系統上安裝LAMP server以及個別之間的設定。使用的作業系統版本號為: Lubuntu 14.10(使用圖形化介面LXDE)

  1. 首先,假設已經安裝好Lubuntu 14.10作業系統,先開啟終端機,我們藉由一個tasksel套件來完成我們這一次的LAMP server安裝。
  2. 若沒有tasksel套件,先把這個套件安裝起來,輸入指令:
    sudo apt-get install tasksel
  3. 安裝好之後,接著輸入
    sudo tasksel

    ,接著會進入一個套件畫面,我們找到我們要的LAMP server
    擷取

  4. 我們可以將紅色長方移到LAMP server位置並按下空白鍵,就會打一個*在上面。
  5. 接著按下enter鍵,LAMP server的套件就會開始安裝了。
  6. 安裝的過程中,會要求輸入作為登入MySQL的密碼。輸入兩次後(第二次為確認),接著套件就安裝完成了。
  7. 在此並沒有加裝常用的MySQL圖形化介面–phpMyAdmin,如果要安裝需要自己另外安裝。
  8. 我自己是推薦一個比較輕量型的MySQL資料庫管理,叫做Adminer,只有一個PHP檔案,方便管理與攜帶。
  9. 接著打開瀏覽器輸入http://localhost這個網址,我們會看到一個Ubuntu的預設頁面(如下截圖)。
  10. Apache預設的document root (放置網頁相關的跟目錄檔)是在 /var/www/html的目錄底下。
    擷取
  11. 這個index.html預設頁面,我們其實可以把它改掉,因為我們不需要把這個頁面留下來,因此可以把這個index.html刪掉。
  12. 把預設頁面index.html刪掉之後,會出現下列Index of/的截圖。
    擷取
  13. 會有上述的原因是因為沒有使用.htaccess檔規範檔案目錄的設定,導致整個目錄就輸出來了。
  14. 我們要避免這個情況,可以在/var/www/html目錄下建立一個.htaccess檔,在裡面我們可以加入語法將檔案遮掉,我是直接將localhost重新導向到某一個網址上。
  15. 設定檔位於/etc/apache2/sites-available/000-default.conf,需要設定此項目才可以使用.htaccess,在最後</VirtualHost>之前加入:
    <Directory "/var/www/html">
    AllowOverride All
    </Directory>
    
  16. 如果我們要將檔案遮掉,可以加入: Options -Indexes 意思是所有目錄禁止存取。若在此時訪問http://localhost,會傳回403 forbidden
    擷取
  17. 這樣還是會傳回Apache/2.4.10 (Ubuntu) Server at localhost Port 80,還是會洩漏一些server的訊息,如果不要顯示預設的status 頁面的話,我們也可以在.htaccess中自訂。
    可以編輯/var/www/html/.htaccess檔,加入ErrorDocument 403 “Forbidden.”,500是當遇到這個http status code 403時,輸出Forbidden字串。我們也可以將Forbidden字串修改成要指定的html檔案,下面的截圖是403改成自己自訂的字串之後所顯示的樣子。這樣就不會有status code顯示了。有關於status code,可以自行參考狀態碼
    擷取

以下是較為進階的使用Apache設定方式,包含了自訂標頭(header),還有網址(URL)重寫以及改變預設的埠號(port 80)等重要概念。
自訂標頭,自訂標頭的目的是希望不要顯示出server預設相關資訊,下列截圖是,預設會輸出的資訊,包含PHP版本,Apache版本以及其安裝在上面的作業系統名稱。

  1. 要自訂標頭之前,需要先確定mod_header模組有啟動,檢查方式是輸入指令,sudo a2enmod headers 如果出現Module headers already enabled,則表示已經啟動了,如果沒有的話會顯示已經Activated,需要restart Apache ,這個時候就按照指示,接著輸入sudo service apache2 restart。就可以自訂標頭了。
  2. 下圖是為未使用自訂標頭,回應的預設標頭。
    擷取
  3. Server以及X-Powered-By都有顯示出server訊息。
  4. 再使用mod_headers之後,就可以在.htaccess中加入
    Header set X-Powered-By "PHP/5.5"

    ,意思是將原本的X-Powered-By 設定成出現PHP/5.5字串。

  5. 若在.htaccess加入
    Header add test "This test header."

    ,則會多出這個標頭值。

  6. 設定第4與第5步驟後,下圖就會看到回應的Header就會改變了。
    擷取
  7. 有關Apache 相關自訂header與調校相關設定文章: Setting http headers with Apache and mod_headersApache Module mod_headers實用 .htaccess 腳本合集 – 優化你的網站Add a header to each request using .htaccess

在第二部分中,將會介紹Apache有關於該如何改變監聽的埠號(port number)以及如何運用mod_rewrite進行網址重寫。

[後記]

如果一開始要安裝tasksel出現錯誤,像是出現下面這樣的錯誤


Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package tasksel

要先去更新套件庫,要先輸入指令


sudo apt-get update