建立好 EC2 後,當然就是要在上面建立 LAMP 伺服器,參考 官方資料教學 – 在 Amazon Linux 2 上安裝 LAMP Web 伺服器,可以很快速的建立一個 LAMP Web 伺服器,但是…這並不是我要的,因為它的 PHP 版本只有 7.2 版,若我要將 Laravel 8.x 專案放入 EC2 必須使用 PHP 7.3 以上版本。所以只好自己手動,一項一項來吧。

更新系統

根據指南,建立好 EC2 第一步就是要先更新系統,讓它保持在最新狀態。

# 切換到 root 權限
sudo su
# 執行更新
yum -y update

安裝 Apache

這個部分很簡單,只要執行 yum -y httpd,就會自動安裝好 Apache,然後在瀏覽器上輸入,http://公有IPv4 確認是否已經安裝好。 (請參考 CentOS 7 – 用 yum 安裝 Apache 伺服器)

# 安裝 Apache
sudo yum -y install httpd
# 安裝 mod_ssl (若有需要使用 https )
sudo yum -y install mod_ssl
# 啟動 Apache
sudo service httpd start
# 將 httpd 設定為常駐,這樣 EC2 每次啟動就會自動執行 httpd
sudo systemctl enable httpd

安裝完成後,Apache 的預設目錄是在 /var/www/html,這部分基本上就跟 CentOS 是一樣的,基本上 Amazon 的 Linux 2 系統,就是使用 CentOS 去做修改的。所以,Apache 的設定檔也如同 CentOS 一樣放在 /etc/httpd 目錄下。

目錄權限

當 Apache 安裝完成後,EC2 並沒有如同 CentOS 安裝後把 /var/www/html 目錄擁有者改成 Apache,/var/www/html 目錄擁有者是 root,所以需要將其變更成 Apache,且必須把 ec2-user 一起加入到 Apache 群組中,這樣才能透過 ec2-user 這個帳號去修改 /var/www/html 目錄下的東西。

# 將 /var/www 的群組所有權及其內容變更為 apache 群組
sudo chown -R ec2-user:apache /var/www
# 將使用者 ec2-user 新增至 apache 群組
sudo usermod -a -G apache ec2-user

安裝 PHP 7.3 以上版本

本已為 EC2 安裝好後應該就可以直接裝最新版的 PHP ,沒想到檢查 yum list 裡面的 PHP 版本竟然只有 5.4。連 CentOS 8 最基本應該也要有 7.2,它竟然只有5.4…

本來想說參考之前在 CentOS 上安裝 PHP7.3 方法來安裝,這篇之前寫的 CentOS 7 – 用 yum 安裝 PHP 7.3,後來在孤狗大神指引下找到 amazon-linux-extras 指令,可以看到目前 Amazon 提供一些額外的軟體。

(其實從官方教學裡面就可以看到這個指令,只是一開始沒想到,因為習慣用 yum 安裝東西,看到 yum list 裡面沒有,想說用別種方式去裝。)

確認一下 amazon-linux-extras 提供哪些 PHP 版本

sudo  amazon-linux-extras | grep php

看到 17 編號了吧,這個就是 Amazon 已經包好的 mariadb + php7.2 給快速建立包裝。不過這次我需要安裝 PHP7.3 所以就不照官方做法了。

啟用 PHP 7.3

# 啟用 PHP 7.3
sudo amazon-linux-extras enable php7.3
# 若需要改成 PHP 其它版本 之前必須先禁用 PHP 7.3
sudo amazon-linux-extras disable php7.3

用 yum list | grep php 檢查,PHP 已經被改成 7.3 版,不在是 5.4 嚕。後面就可以開始用 yum 來安裝 PHP 7.3 嚕。

安裝 PHP 7.3

sudo yum clean metadata
sudo yum install php php-{pear,cgi,common,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}

測試

安裝完成後,寫一個簡單的 phpinfo() 放在 /var/www/html 目錄下。然後重新啟動 Apache。看到 PHP 已經確實被安裝到 EC2 中了。

安裝資料庫

這邊資料庫可以選擇使用 Amazon 教學提供的 MariaDB10 快速安裝,或者自行安裝 MySQL,亦或者改用 Amazon 的 RDS,以小型的或者測試用網站來說,基本上直接使用教學裡面的 MariaDB10 可以很快的上手,若要商用建議還是使用 RDS 交由 Amazon 來服務,以防EC2掛掉或終止掉時,導致裡面的資料全部消失。官方教學已經有 MariaDB 了,這邊我就嘗試著安裝 MySQL 5.7 來做試驗。 (註:安裝MySQL 8 時有碰到一些錯誤訊息,懶得去追,所以改用5.7,以後再來試 MySQL 8)

檢查 EC2 是否有提供 MySQL

結果會發現,沒有。這時候就得自己手動去抓 MySQL 5.7 來安裝。

# 從官方下載 5.7 rpm 檔案
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安裝到 yum 中
yum localinstall mysql57-community-release-el7-11.noarch.rpm
# 執行安裝 MySQL 5.7
yum install mysql-community-server

安裝完成後,後續就可以參考之前的文章 CentOS 7 – 用 yum 安裝 MySQL 伺服器 做相關的設定,這邊就不再贅述。

安裝 phpMyAdmin

這部分就直接參考官方教學來安裝即可。

最後修改日期: 2020 年 11 月 24 日