LAMP是Linux系統上的開源架站組合,從名稱來看,「L」表示「Linux」作業系統,「A」表示「Apache」網頁伺服器,「M」表示「MySQL」資料庫,「P」表示「PHP」程式語言,而phpMyAdmin則是以PHP作為基礎的資料庫管理工具。這篇文章將要介紹如何在Ubuntu Server上架設網站,選用LAMP Server + phpMyAdmin。二十分鐘內,一個屬於您自己的網頁伺服器便能誕生了!

作業系統環境以Ubuntu Server 18.04為例。安裝方式可以參考這篇文章:

https://magiclen.org/ubuntu-server-18-04/

更新 Ubuntu Server

在架設網站伺服器之前,先將系統更新到最新。可以使用以下指令來更新Ubuntu Server:

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

lamp

LAMP Server

安裝LAMP Server

Tasksel有提供「LAMP server」,如果還沒有安裝Tasksel,可以使用以下指令來安裝:

sudo apt install tasksel

lamp

輸入以下指令可以開啟Tasksel的套件選單,選擇「LAMP Server」即可安裝LAMP Server:

sudo tasksel

lamp

lamp

不想用選單慢慢找的話,可以直接輸入以下指令來安裝LAMP Server:

sudo tasksel install lamp-server

lamp

安裝LAMP Server不會需要太久的時間。

lamp

安裝LAMP Server後,會自動啟動伺服器,此時用網頁瀏覽器,在網址列輸入伺服器的IP,應該會看到預設網頁。如果有看到,就表示LAMP Server已經安裝成功了!

lamp

LAMP Server的根目錄路徑

LAMP使用Apache作為網頁伺服器,網站的預設根目錄是在「/var/www/html」下,剛安裝完LAMP後,會在根目錄下自動放置「index.html」檔案,就是用網頁瀏覽器開啟伺服器的IP時看到的網頁。

lamp

查看PHP的詳細資訊

在網站根目錄「/var/www/html」中新增一個「info.php」檔案。可以使用以下指令,透過「vim」文字編輯軟體來建立新的「info.php」檔案:

sudo vim info.php

lamp

接著開始使用PHP程式語言來撰寫程式。可以透過「phpinfo」函數來顯示出PHP的詳細資訊,如下:

lamp

儲存成PHP檔案後,接著在網頁瀏覽器網址列上輸入連結到這個PHP檔案的網址,就可以看到如下圖的表格:

lamp

透過PHP的「phpinfo」函數顯示出來的表格,可以讓我們得知很多有用的資訊,例如PHP的版本、PHP使用的插件(plugin)、PHP設定檔php.ini的路徑。

啟動、中止與重新啟動Apache伺服器

修改任何網站伺服器相關的設定或是安裝了新的網站伺服器相關的插件,通常都需要重新啟動Apache伺服器來套用更變。可以使用以下指令來完成:

啟動Apache

sudo service apache2 start

中止Apache

sudo service apache2 stop

重新啟動Apache

sudo service apache2 restart

phpMyAdmin

安裝phpMyAdmin

在終端機下輸入以下指令,來安裝phpMyAdmin:

sudo apt install phpmyadmin

lamp

安裝過程需要設定phpMyAdmin,一開始會要求選擇網頁伺服器,因為我們裝的LAMP是使用Apache作為網頁伺服器,所以選擇「apache2」。用鍵盤的空白鍵(Space)來選擇項目,用Enter鍵確認選擇。

lamp

最後會詢問是否要設定dbconfig-common,選擇「是」(Yes)吧!

lamp

lamp

dbconfig-common將需要建立一個新的MySQL使用者來操作運行phpMyAdmin資料庫管理工具時需要額外用到的資料表,預設的使用者名稱為「phpmyadmin」,所以接著要設定「phpmyadmin」這個MySQL使用者的密碼。

lamp

再輸入一次剛才輸入的「phpmyadmin」使用者的密碼。

lamp

新的MySQL使用者「phpmyadmin」建立完成後,phpMyAdmin就算是安裝完畢了!

設定MySQL的root密碼

MySQL的root密碼預設是空的,但是在預設情況下也無法使用密碼來登入root帳號。為了要讓phpMyAdmin能用MySQL的root帳號來管理MySQL資料庫,我們必須先設定MySQL的root帳號,使其能夠使用密碼登入的功能。

首先輸入以下指令,用root帳號登入MySQL的「mysql」資料庫。「mysql」資料庫用來存放MySQL資料庫的內部設定,包括MySQL的帳號設定。

sudo mysql -u root mysql

lamp

接著會進入MySQL的Shell。輸入以下指令,讓root帳號啟用「mysql_native_password」插件,使其能夠擁有密碼,並且能使用密碼登入。

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

lamp

再來輸入以下指令來重新載入特權表:

FLUSH PRIVILEGES;

lamp

接著要來設定MySQL的root密碼。輸入以下指令執行更改root密碼的腳本:

sudo mysql_secure_installation

開啟「VALIDATE PASSWORD」插件,可以幫助我們檢查root密碼的安全性,避免被設置得太簡單而有安全上的疑慮。輸入「y」,同意啟用「VALIDATE PASSWORD」插件。

lamp

接著要決定密碼的複雜度,輸入「2」,使用最複雜的密碼。密碼長度必須大於等於8,且必須包含數字、英文大小寫字母和特殊字元。

lamp

連續輸入兩次密碼。

lamp

確認密碼輸入無誤後,輸入「y」繼續。

lamp

輸入「y」,移除匿名使用者的資料。

lamp

輸入「y」,可以禁止從遠端使用MySQL的root帳號來登入MySQL。

lamp

輸入「y」,移除測試用的資料庫。

lamp

輸入「y」,重新載入特權表。

lamp

到這裡就設定完成了!

lamp

使用phpMyAdmin

在網頁瀏覽器的網址列輸入主機IP,並接上「/phpmyadmin」,就可以開啟phpMyAdmin。

lamp

登入的帳號輸入「root」,密碼輸入剛才使用「mysql_secure_installation」腳本所設定的密碼,就可以用MySQL的root帳號登入MySQL資料庫啦!

lamp

若是在意伺服器的效能,還可以再加上nginx來處理靜態網頁或是檔案的連線需求,可以參考這篇文章來架設LNAMP Server:

https://magiclen.org/lnamp/