Ubuntu 18.04 LTS + Apache、MySQL、PHP (LAMP)安裝設定

Yu-Cheng Hung
7 min readDec 18, 2019

--

引用: https://www.swhosting.com/blog/en/the-new-ubuntu-18-04-lts-bionic-beaver-available-get-to-know-whats-new/

嗨大家好,筆者這星期的工作項目較著重在Ubuntu系統安裝及設定,因為過程中不斷的掉入各種坑(QQ),多虧前輩們的幫助才讓系統環境能順利架設成功,因此趁印象深刻時趕緊紀錄下來,希望能幫助到有需要的夥伴!

本篇將會做Ubuntu 18.04設定Netplan靜態IP教學及如何在Ubuntu 18.04中安裝Apache、MySQL、PHP (LAMP,L表Linux)。

Ubuntu 18.04設定Netplan靜態IP

首先是Ubuntu 18.04的安裝,筆者使用iso映像檔掛載方式安裝(下載),安裝過程一般參照預設值設定,安裝完成並登入Ubuntu後,需要進行靜態IP設定以利後續相關軟體安裝。

那麼該怎麼樣進行設定呢?我們先以指令查看目前系統中所有連線的網路介面卡:

$ ifconfig -a

lo是loop back的介面卡,因此我們要將ens160乙太網路介面配置一個靜態IP,而網路介面卡的名稱並不一定都是ens160,ens後的數字可能不同。接著執行以下指令到netplan資料夾:

$ cd /etc/netplan

筆者的系統在安裝時就已在這邊自動建立 一個YAML檔案 01-netcfg.yaml,如果沒有,則執行以下指令自動產生一個設定檔:

$ sudo netplan generate

打開設定檔並依圖中方式設定ipv4和gateway IP,這邊注意千萬不能設顛倒:

設定好後記得套用設定:

$ sudo netplan apply

可以ping看看連線是否成功(亦可ping gateway IP):

$ ping 8.8.8.8

最後我們進行Ubuntu Server系統版本更新到最新:

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

安裝Apache

執行:

$ sudo apt install apache2

檢查Apache是否正常運行:

$ sudo systemctl status apache2

接著要調整UFW防火牆設定以允許Apache進行遠端連線,以指令查看ufw application profile:

$ sudo ufw app list

執行下列指令以允許HTTP和HTTPS傳輸:

$ sudo ufw allow in "Apache Full"

好,現在以 http://[ Your IP-Address]/來測試Apache Web Server ,若出現apache預設頁面則代表設定成功!

安裝MySQL

執行:

$ sudo apt install mysql-server

檢查MySQL是否正常運行:

設定MySQL root user的密碼:

$ sudo mysql_secure_installation

接下來會選擇設定密碼的複雜層級,設定完成後會問一些問題,全部回答 "Y" 即可。

因為之後會用phpMyAdmin以外部方式管理MySQL,所以我們要把預設的驗證方式 auth_socket更改為 mysql_native_password,進入MySQL prompt:

$ sudo mysql

查看目前所有用戶的驗證方式:

SELECT user,authentication_string,plugin,host from mysql.user;

以指令更改:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[Your Password]';

Update設定:

FLUSH PRIVILEGES;

再查看一次:

SELECT user,authentication_string,plugin,host FROM mysql.user;

修改成功!現在離開MySQL prompt,準備安裝PHP:

exit

安裝PHP

$ sudo apt install php libapache2-mod-php php-mysql

現在我們要在Apache的根目錄資料夾中建立一個 info.php來測試是否能正常運行。Ubuntu 18.04 LTS的Apache根目錄資料夾路徑為 /var/www/html

$ sudo vi /var/www/html/info.php

填入測試程式碼:

<?php
phpinfo();
?>

別忘了重啟Apache讓設定生效

$ sudo systemctl restart apache2

瀏覽器開啟 http://[Your IP-Address]/info.php測試:

若看到以上畫面則代表測試成功!另外,當使用者向Web發出請求時,Apache預設會優先查找名為index.html的檔案,若想將php檔案列為優先查找,則需去dir.conf中將index.php改至第一順位:

$ sudo vi /etc/apache2/mods-enabled/dir.conf

改成如圖所示:

一樣需重啟Apache讓設定生效:

$ sudo systemctl restart apache2

最後提供幾個與PHP modules相關的指令,

列出所有可獲得的PHP modules:

$ sudo apt-cache search php- | less

查看PHP module:

$ sudo apt-cache show [PHP module name]

安裝PHP module:

$ sudo apt install [PHP module name]

記得安裝完成後一樣需重啟Apache服務哦!

總結

經過了一系列的操作,目前各位的環境中應該已經安裝好了:

● Ubuntu 18.04.3 LTS

● Apache 2.4.29 (Ubuntu)

● MySQL 5.7.28

● PHP 7.2.24

若有任何問題歡迎交流討論,那就下次見啦!掰掰!

2020/08/19補充:

今天再次替另一台VM安裝Ubuntu 20.04.1 LTS,再補充一下幾個小地方:

  1. iso映像檔需使用:64-bit PC (AMD64) server install image ex. ubuntu-20.04.1-live-server-amd64.iso
  2. VMware Remote Console 掛載印象檔時會需要時間讀取,一開始會以為沒有反應,請耐心等候

--

--

No responses yet