在 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
沒有留言:
張貼留言