2020-11-01

在 AWS EC2 安裝 nginx

在 AWS EC2 安裝 nginx

安裝 nginx 和 php

前置的步驟:

  • 先登入 AWS console。
  • 選擇 EC2 console。
  • 啟用實體(instance)。
  • 選擇作業系統影像檔,我習慣用 ubuntu。
  • 選虛擬機器規格,一般用途選 t2 系列。
  • 啟動之前會詢問要使用已存在的 key pair 或者建立新的。若選建立新的,要保管好 key,不然無法登入實體。
  • 啟動後可以在 console 看到實體。

注意:記得到 instance console 的 security 分頁,設定 inbound rules,讓一般人都可以透過 http 和 https 拜訪。

登入主機:我自己是使用 Mac zsh,當然也可以使用 linux bash,若使用 Windows 建議用 git bash 來登入。

# 先將 key 檔權限設定為 400 chmod 400 my_ec2_key.pem # 使用 ssh 登入,ubuntu 為預設用戶 ssh -i /my_path/my_ec2_key.pem ubuntu@xxx.xxx.xxx.xxx

將本機的 ~/.ssh/id_rsa.pub 加到遠端 ~/.ssh/authorized_keys 內,之後就可以不需要 pem 檔登入。

# 登入後先更新系統 sudo apt update sudo apt upgrade
# 安裝 nginx sudo apt install nginx # 查看 nginx 狀態,應該會是啟動的狀態 service nginx status
# 利用 curl 測試是否可以正常訪問 curl -I http://xxx.xxx.xxx.xxx
# 安裝 PHP 相關套件 sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath # 安裝套件後會自動啟動 apache2,但由於未安裝 apache2 所以會看到啟動失敗的錯誤訊息 # 查看 php-fpm 的狀態,應該要為啟動的狀態 service php7.4-fpm status
# 查看 nginx 預設網站設定,原則上不需要變更 sudo nano /etc/nginx/sites-available/default

在 /var/www/ 建立「 網域同名資料夾」,例如 php.shinder.cc,用來服務 php.shinder.cc domain 的站台。 在 /etc/nginx/sites-available/ 新增一個設定檔(通常和你的網域同名),例如: php.shinder.cc。並設定內容如下:

server { listen 80; server_name php.shinder.cc; root /var/www/php.shinder.cc; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } }
# 在 sites-enabled 內建立 link sudo ln -s /etc/nginx/sites-available/php.shinder.cc /etc/nginx/sites-enabled/
# 測試一下 nginx 的設定檔,看有沒有寫錯 sudo nginx -t
# 重啟 nginx sudo service nginx restart

在 /var/www/php.shinder.cc 放一個 phpinfo 的測試程式,就可以測試 php 了。

安裝 nodejs

# 目前從官方套件安裝,版本為 10.19 有點舊,不過應該可以應付大部份的需求 sudo apt install nodejs npm

沒有留言:

FB 留言