手把手教你用 Google Cloud Platform 安裝免費且快速的 WordPress 網站並使用 Ubuntu 18.04, LAMP, Nginx, Varnish 和 Redis 加速你的網站(一年 300 美金的免費額度可以使用) | WordPress

在 GCP 上建立 SSL WordPress 和 Ubuntu 18.04, LAMP, Nginx, Varnish and Redis

本企劃的目標

如果用 Google 搜尋的話,可以發現很多如「Cloud Launcher」、「Bitnami」、「一鍵架站」等關鍵字,確實這個對於想要快速建立一個個人的網站如交報告、建立小小的形象網站等等都是非常方便的工具沒有錯。但是如果你像我依樣想要長期經營一個網站和品牌,你的網站需要經過一些加速和處理,不只是快取上直接做加速,更重要的是如何設定 VPS 系統的一些設定,這個是靠「Cloud Launcher」無法做到的事情,必須動手自己來。

因此本企劃不會使用「Cloud Launcher」、「Bitnami」、「一鍵架站」等東西,這裡會仔細的每一個步驟教你如何使用 Google 給我們的 300 美金建立一個免費且真的很迅速的 WordPress 網站。

用 Google Cloud Platform 來架站

前一篇文章提到關於購買 Linode VPS 來作為架站的平台,但除了 Linode 之外,Google 也很努力的在發展他的 VPS,不過 Google 出品的東西,比起一般的 VPS 還是稍微高級一點,因為 Google 的 Cloud 服務是做全方位的功能,不只是 VPS,還包含了資料庫、網路和人工學習等多樣化的服務,VPS只是其中的一個服務而已,但也因此 Google 的 VPS 可以用該平台上的其他功能搭配,價額會稍微貴一點。目前 Amazon 跟 Google 一樣在發展這樣的服務,不過應該沒有人可以跟 Google 比了吧。但是因為好處多,價格可能稍微貴一點,預算吃緊的話,用 Google Cloud 架站也是需要考量一下。

在 Google Cloud 上面架上網站的方式不止我這一種,還可以架設靜態網頁(使用 Google Storage 服務)、快速架站包(Cloud Launcher)等,不過因為我們要做出一個有 apache 2.4、nginx 1.14、varnish 6、redis 4、php 7.2、mariaDB 10.2 的系統架構,我強烈建議一定需要從零開始自己動手來,不只是可以省下一些錢(快速架站包的月費還是比較高一點),二來在未來要做調整時也不會有技術上的限制和困擾。

如果你是搜尋「哪些不錯的加速 WordPress 外掛」之後都會介紹,但要在很後面的章節才會出現,不過光靠外掛是無法加速多少的,重點還是機器的效能和是否能把機器的效能運用得淋漓盡致(榨乾機器的意思)。

整個實作的過程會比直接用 Google 提供的 Cloud Launcher 還要複雜一點,但是相信經過這般磨練後,你也可以成為架站高手。我建議大家可以從操作 VPS 來學起,不只是練習到使用 linux指令的技術,對於自己的網站前端和後端也可以做到全面掌控。

使用 Google Cloud 的好處

Google Cloud 當中,不只是有我們今天要用到的 Computer Engine 的服務,還有如人工學習、網路、儲存空間等等服務。不過最吸引我們的,就是 Google 最近所提供的一個一年 300 美金的免費使用額度,可以讓你用這 300 美金去嘗試 Google Cloud 裡面所有的服務,過期之後也不會扣你的信用卡的錢,一定會先跟你確認後再扣款。

請參考:
https://cloud.google.com/products/?hl=zh-tw

這裡有所有的 Google Cloud 所包含的服務。

這裡要小小澄清一下,GCP 是 Google Cloud Platform 的縮寫,GCE 是 Google Computer Engine 的縮寫。

另外,Google 有在網路上公布,在某些明確的條件下,Google Cloud 的服務在一定的使用狀況下是可以終身免費的,聽了怎麼可能不心動呢。

請參考:
https://cloud.google.com/free/?hl=zh-tw

這裡列出所有可以免費使用的條件。

以我們今天要用到的 Computer Engine 來說,當主機架設在美國(北維吉尼亞州除外),只使用一個 f1-micro 執行個體(每月平均 30 GB 硬碟空間、每月平均 5 GB 快照),且除了中國和澳洲以外的國家之每個月網路輸出量在 1GB 以下,我想這樣的資源對於一個架設小網站的人來說是非常充足的了。

如果要架設免費主機在美國,要架設在:
「us-central1、us-east1、us-west1」,不要架設在「us-east4(北維吉尼亞州)」

另外一個好消息,假設不想把主機放在美國的話,還可以把主機放在台灣!最近 Google 在台灣彰化設立的一個機房,代號為「asia-east」。雖然費用比美國貴一點點,但是對台灣的網站拜訪速度來講還是很有幫助的。如果你對價格有興趣,可以參考這個計算機得知每個地區每個月的價格。

請參考:
https://cloud.google.com/products/calculator/?hl=zh-tw

如果你是長期用戶,不管是企業或是個人用戶,Google 都會提供長期使用的優惠方案,隨著你一個月使用多久,就給你增加多少費用折扣。

請參考:
https://cloud.google.com/pricing/innovation?hl=zh-tw

最後,雖然 Google Cloud 的服務多元,但是操作起來沒有 Amazon 來的繁瑣,可以容易理解裡面的功能是在做什麼,而價格上也算是比 Amazon 便宜的,最近我身邊有很多朋友也因此從 Amazon 轉戰 Google Cloud。

接著,我們就開始來申請 Google Cloud 並使用 Computer Engine 吧!

申請 Google Cloud

STEP 1

請到這個網址,進入 Google Cloud 的服務頁面。

請參考:
https://console.cloud.google.com/

進入之後隨意點選任一個「免費試用」按鈕。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 2

選擇你的國家之後,並閱讀下方的注意事項並選擇同意之後,按「繼續」到下一頁。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 3

接著請輸入你的個人資訊以及你的信用卡資訊,注意,這裡的信用卡資訊是為了辨認你的身份,會測試一塊錢來確認這張卡是否可以用,但是這一塊錢是不會真的被Google收走,只是單純提出1塊錢的要求而已。另外Google在付款方面,會明確告訴你什麼時候要付款,所以這一點不用擔心。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 4

接著就到歡迎頁面,請點選「我知道了」按鈕。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
這是管理台的主要長相,接著下一步要先從「建立專案」來開始我們的主機設置以及安裝作業。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 5

點選清單,會出現一個「IAM與管理員」。
或是直接到這個網址,直接進入「IAM與管理員」

請參考:
https://console.cloud.google.com/cloud-resource-manager

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
進去之後請點選「建立」。輸入專案的名稱之後就完成了。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

注意:專案名稱要記得,後面再輸入指令時會使用到。

Google 在建立每個 VPS 或是使用其他的服務前,都會使用「專案管理」的概念,新建立一個專案之後,才在專案之下建立所需要用到的服務。
萬一不想要這個專案,可以在這裡刪除。

請參考:
https://cloud.google.com/go/getting-started/delete-tutorial-resources

但是會發現一些專案沒有出現,這時可以到IAM管理員,要先授權使用權之後,再來到IAM管理員的「設定」標籤,點上方出現的一個垃圾桶圖樣的「關閉」按鈕,輸入該專案的project id後,30天後就會消失。
如果以前有建立過其他的專案,但找不到在什麼地方刪除的話這裡也可以刪除。

STEP 6

接著點選清單列表,找到「Computer Engine」之後點選下去。進去之後,請點選「啟用計費功能」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
啟用完成之後,就直接點選「建立」,開始建立我們的執行個體。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 7

接著請輸入你需要的執行個體的需求資訊。

執行個體的名稱:建議英文和數字混雜即可。
區域:如果想要使用亞洲的站點,請尋找「台灣:asia-east」、「日本:asia-northeast」、「新加坡:asia-southeast」。
機器類型:如果是要建立個人的部落格,「微型執行個體」就可以滿足你的需求。

注意:微型執行個體的話只有 0.6GB 的記憶體和 1 GB 的 CPU,這點和 Linode 以及 Amazon 比起來算是比較少一點,但還使可以透過調整設定和增加 Swap 來補足缺憾。

話說曾經有人認為如果針對台灣的使用者架設網站的話,網站就應該放在台灣。但其實不然,在亞洲地區的話,不管是台灣、東京、日本、香港等地,其實連線速度是沒什麼差別的,除非考量到付費方式的問題,那才有可能回到台灣這邊設點。

容器:不用勾選。
開機磁碟:本教學使用 Ubuntu 18.04 作為示範。硬碟大小設10GB就夠了,不過加大的話價格也不會增加很多,可以自行斟酌。
身份及API存取權:都不用動就好。
防火牆:請把「允許 HTTP 流量」、「允許 HTTPS 流量」兩個都打勾起來。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
最後按下「建立」,完成新建一個執行個體。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 8

接著要設定個人的固定 IP 位置,點選清單後,找到「VPC 網路」這個選項,然後點選「外部 IP 位置」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
進去之後會發現,你剛剛建立的執行個體已經有一個暫時的 IP 位置,這時,我們要把它從「臨時」調整成「靜態」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
其實有兩種新增方式,一個是在新建執行個體時,在下方的「管理、磁碟、網路、SSH 金鑰」裡面可以先行設定,但如果忘記設定的話可以到「VPC網路」標籤裡面調整即可。

STEP 9

這時候你已經可以嘗試連線到你的 Google 的執行個體裡了,回到「Computer Engine」的「VM 執行個體」標籤頁,在該執行個體的「連線」欄位點選小三角形,點選「在瀏覽器視窗中開啟」,就可以使用終端機來輸入指令進行操控。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
只是如果每次都用打開瀏覽器輸入指令的話,其實有點多此一舉,而且東西是無法複製到瀏覽器版本的終端機上的,這樣會造成我們後面操作上的困難,所以這裡要提供一個方式,讓你電腦內建的終端機也可以連線上執行個體後再進行所有的操作。

在電腦上安裝 gCloud SDK 藉此連線到執行個體

首先必須要安裝 gCloud SDK 才能進行所有初步的設定。
安裝方式有好幾種,但其實步驟都不難,邏輯都主要為:安裝 gCloud,設定 gCloud 並登入 google 的帳戶,登入到執行個體當中的系統裡面。

這裡我用下指令的方式安裝 gCloud SDK,其餘的安裝方法可以參考官方的說明文件。

請參考:
1. https://cloud.google.com/sdk/downloads?hl=zh-tw

以下輸入指令的時候,我會把需要自己更動的東西用 […] 包住,因此在輸入指令時請不要輸入 […] 括號進去。

STEP 1

首先打開電腦的終端機,輸入以下的指令。

curl https://sdk.cloud.google.com | bash

就會開始下載並安裝,應該會顯示這個畫面。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   443    0   443    0     0   4016      0 --:--:-- --:--:-- --:--:--  4179
Downloading Google Cloud SDK install script: https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash
######################################################################## 100.0%
Running install script from: /var/folders/zq/xtzx367x5bz0zpp58q4s0h0r0000gn/T/tmp.XXXXXXXXXX.kf3Lsgqa/install_google_cloud_sdk.bash
which curl
curl -# -f https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz
######################################################################## 100.0%

Installation directory (this will create a google-cloud-sdk subdirectory) (/Users/XXX): 
mkdir -p /Users/XXX
tar -C /Users/XXX -zxvf /var/folders/zq/xtzx367x5bz0zpp58q4s0h0r0000gn/T/tmp.XXXXXXXXXX.AOCffJrg/google-cloud-sdk.tar.gz
x google-cloud-sdk/
x google-cloud-sdk/lib/
x google-cloud-sdk/lib/third_party/
x google-cloud-sdk/lib/third_party/appdirs/
x google-cloud-sdk/lib/third_party/appdirs/LICENSE
x google-cloud-sdk/lib/third_party/appdirs/__init__.py
x google-cloud-sdk/lib/third_party/argparse/
x google-cloud-sdk/lib/third_party/argparse/LICENSE.txt
...
x google-cloud-sdk/lib/third_party/packaging/requirements.py
x google-cloud-sdk/lib/third_party/packaging/specifiers.py
x google-cloud-sdk/lib/third_party/packaging/utils.py
x google-cloud-sdk/lib/third_party/packaging/version.py
...
...
x google-cloud-sdk/.install/core.snapshot.json
x google-cloud-sdk/.install/core.manifest
x google-cloud-sdk/.install/.download/

/Users/XXX/google-cloud-sdk/install.sh
Welcome to the Google Cloud SDK!

To help improve the quality of this product, we collect anonymized usage data
and anonymized stacktraces when crashes are encountered; additional information
is available at <https://cloud.google.com/sdk/usage-statistics>. You may choose
to opt out of this collection now (by choosing 'N' at the below prompt), or at
any time in the future by running the following command:

    gcloud config set disable_usage_reporting true

STEP 2

他會問你「Do you want to help improve the Google Cloud SDK(Y/n)?」,這個就看你要回答「Y」或是「n」
接著等它安裝一陣子。

Do you want to help improve the Google Cloud SDK (Y/n)?  Y

This will install all the core command line tools necessary for working with
the Google Cloud Platform.

Your current Cloud SDK version is: 194.0.0
Installing components from version: 194.0.0

┌───────────────────────────────────────────────...
...
│ BigQuery Command Line Tool                          │     2.0.30 │ < 1 MiB │
│ BigQuery Command Line Tool (Platform Specific)      │     2.0.26 │ < 1 MiB │
│ Cloud SDK Core Libraries (Platform Specific)        │ 2018.03.16 │ < 1 MiB │
│ Cloud Storage Command Line Tool                     │       4.29 │ 3.4 MiB │
│ Cloud Storage Command Line Tool (Platform Specific) │       4.27 │ < 1 MiB │
│ Default set of gcloud commands                      │            │         │
...
...
╔════════════════════════════════════════════════════════════╗
╠═ Creating update staging area                             ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Installing: BigQuery Command Line Tool                   ═╣
...
...
╠════════════════════════════════════════════════════════════╣
╠═ Installing: gcloud cli dependencies                      ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Creating backup and activating new installation          ═╣
╚════════════════════════════════════════════════════════════╝
...
...

Performing post processing steps...done.                                  

STEP 3

然後他會問你「Modify profile to update your $PATH and enable bash completion. Do you want to continue. Do you want to continue(Y/n)?」,這時請回答「Y」
為了要啟動 gcloud sdk,需要決定啟動的根據目錄,看一下他會安裝在哪裡。

Do you want to continue (Y/n)?  Y

The Google Cloud SDK installer will now prompt you to update an rc 
file to bring the Google Cloud CLIs into your environment.

Enter a path to an rc file to update, or leave blank to use 
[/Users/XXX/.bash_profile]:  
[/Users/XXX/.bash_profile] has been updated.

==> Start a new shell for the changes to take effect.


For more information on how to get started, please visit:
  https://cloud.google.com/sdk/docs/quickstarts

STEP 4

安裝好之後,輸入以下指令,以重新啟動殼層。

exec -l $SHELL

STEP 5

啟動 Google SDK 並且進行初始化。這時請進行一些設定。

gcloud init

注意:如果你以前曾經用過 gcloud sdk 登入帳戶,要用其他帳號登入的話,請一樣先用上面的這個指令登入別的帳號即可。

STEP 6

首先要登入,因此他問你「You must log in to continue. Would you like to log in(Y/n)?」,這時請回答「Y」。

Welcome! This command will take you through the configuration of gcloud.
...
...
You must log in to continue. Would you like to log in (Y/n)?  Y
Your browser has been opened to visit:
...

然後會自動開啟網路瀏覽器,請找到你的帳戶之後登入。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
接著授權權限給他。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 6

最後會出現完成畫面。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 7

接著會要求您選擇或是新建 Google 專案。我們在前面步驟已經建立過,直接用數字選擇你建立好的專案。

You are logged in as: [xxx@gmail.com].

Pick cloud project to use: 
 [1] xxx
 [2] Create a new project
Please enter numeric choice or text value (must exactly match list 
item):  1

STEP 8

接著他會問你「Do you want to configure Google Computer Engine?」,這時請回答「n」。
我們只要先讓 gcloud sdk 登入我們的帳戶即可,這樣才可以繼續我們登入執行個體的步驟。

Do you want to configure a default Compute Region and Zone? (Y/n)?  n

Your Google Cloud SDK is configured and ready to use!
...
Run `gcloud help config` to learn how to change individual settings
This gcloud configuration is called [default]. You can create additional configurations if you work with multiple accounts and/or projects.
...
...
* Run `gcloud --help` to see the Cloud Platform services you can interact with. ...

到這裡基本上都設定完成了。

STEP 9

之後輸入下面的指令,就可以用 gCloud SDK 連線到你的 Google 的執行個體上了。
這裡需要你的專案名稱、執行個體所在位置、執行個體的名稱。
忘記的話都可以回到 Google Console 裡面查看即可。

gcloud compute --project "[專案名稱]" ssh --zone "[執行個體所在位置]" "[執行個體的名稱]"

下完指令後,稍微等他一下建立安全連線和驗證等事情,就可以登入到你的執行個體裡面了,這時就可以開始安裝或修改執行個體內ubuntu的任何設定。

Updating project ssh metadata.../Updated [https://www.googleapis.com/compute/v1/projects/xxx].                                                                                              
Updating project ssh metadata...done.                                                                                                                                                                
Waiting for SSH key to propagate.
Warning: Permanently added 'compute.xxx' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.13.0-1011-gcp x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


xxx@test:~$

若 ssh 的 port 要改為其他數字,需要新增另一個ssh的規則。此指令只會用 port 22 進行安全連線。

如果要從電腦裡面徹底移除 gCloud SDK

只要在終端機裡面輸入

gcloud info

得知你的 google cloud 安裝的資料夾之後,把那資料夾刪除即可。
基本要刪除的東西只有你的帳戶下資料夾的「google-cloud-sdk」資料夾、「.config/gloud」資料夾以及「.bash_profile」檔案。

不過我不建議刪除,之後仍會有機會用到 gCloud SDK。

不依靠 gCloud SDK 用 Mac 內建的終端機登入自己的 Google 執行個體

如果你不想要 google 給的系統帳戶名稱呢?或是你並不想要透過 Google 網頁版的終端機來操控呢?想要用電腦的終端機和 Filezilla 等伺服器檔案管理等工具嗎?這時你需要在執行個體的系統裡建立一個新使用者,並在自己的本端電腦新建金鑰,然後在 Google console 新建個新金鑰資料就搞定了。

STEP 1

登入之後,請輸入這一行指令新增一個使用者。

sudo adduser [你要的使用者名稱]

應該會顯示這個訊息,並且請按照他的指示設定密碼。

Adding user `test' ...
Adding new group `test' (1003) ...
Adding new user `test' (1002) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y

STEP 2

建立完成後,為了方便後續的操作,我們必須把這個帳戶加入到 sudo 群組當中讓他有 root 的權限。
輸入以下指令登入我們剛剛建立的帳戶裡面。

sudo usermod -a -G sudo [剛剛新建的使用者名稱]

STEP 3

這時我們登入到剛剛你新建的使用者。

sudo su [剛剛新建的使用者名稱]

應該會給初次有 sudo 群組的帳戶登入時這個訊息。

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

STEP 4

我們需要改密碼,並且授與它有root的權限。但如果你剛剛設定過密碼了,可以跳到下個步驟。

sudo passwd

應該會顯示這個訊息。請輸入新密碼並驗證新密碼。

[sudo] password for xxx: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

這樣就夠一個段落了。

STEP 5

最後從 google 的 instance斷線,回到自己的電腦。輸入以下指令。

exit

STEP 6

接著,回到本端電腦的終端機,輸入以下的指令來建立金鑰。

ssh-keygen -t rsa -f ~/.ssh/mainsite.pem -C [剛剛新建的使用者名稱]

應該會顯示。

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/xxx/.ssh/mainsite.pem.
Your public key has been saved in /Users/xxx/.ssh/mainsite.pem.pub.
The key fingerprint is:
SHA256:mL180tcMvmZ/ebqxNwORCQkChyDBXILdVFA6283mwCs test
The key's randomart image is:
+---[RSA 2048]----+
|+=o=+==o .. .    |
|.o+ .o. .  o     |
|    o       . o  |
|     = *     +   |
|    . * S   . .  |
|       * o . =   |
|    E . = o o = .|
|     .   o .o. *+|
|           o..==+|
+----[SHA256]-----+

這樣會在個人的目錄下的「.ssh」資料夾內產生出「mainsite.pem」和「mainsite.pem.pub」這兩個檔案。

STEP 7

調整金鑰檔案的權限以防有心人士利用。

chmod 400 ~/.ssh/mainsite.pem

STEP 8

我們要讀取產生出來的「pub」檔案內的資料,請輸入以下指令讀取。

cat ~/.ssh/mainsite.pem.pub

這樣就會印出該檔案的內容。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWcDAzBdPzrRDTXyRc7xLUgW7LATkKboYNLlh7lOIM2/JwneTf4k1cBMdeqg/FdLmf7iylIboiNZYItOU2MPiNx65aIhjClICCMlg8jR87EJTtwdfs8j79Iev1hPoEy70B+64PNEYGObzS1rZCGxACy4ouRV/e0c2Vp5pSKgzWejIeKYSMvGeNanL4HRLgFPo5sotBawwap8/zgmU4S7OcVizfawiqGMdjFcthdlMmFJoYvvaSd5LmvA4F2E0mMhsnQWFmWvRkj4Ebno7t+EspQvnz49FZneKlequsa4LuONV4vrZbMyr11fgIrXZNaUTnzMsgHTb/hW9In03EBoZr test

把印出的文字串全部複製後,回到 Google cloud platform ,到 Computer Engine 之下,點選「中繼資料」標籤,之後在頁面右邊點選「SSH金鑰」標籤。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
然後點選「編輯」,並點選「新增項目」,貼上文字串。並點選「儲存」就完成了。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
另外你可以找到金鑰檔案複製,方便進行管理。

STEP 9

接著輸入以下的指令登入你的執行個體當中。

sudo ssh -i [金鑰所在位置]/mainsite.pem ubuntu@[ip 位置]

接著第一次登入的關係,為了安全起見,會把連線訊息儲存在你的電腦當中,以防萬一。
請輸入「yes」即可。

The authenticity of host '35.230.65.132 (35.230.65.132)' can't be established.
ECDSA key fingerprint is SHA256:1I91N5heQOiNPRVQyGP6TNENuTTOEW3wHPTe7ScHMy0.
Are you sure you want to continue connecting (yes/no)? yes

然後如果出現這個畫面,代表登入成功了。這時你可以不用 gcloud sdk 也可以登入到你的執行個體當中。

Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.13.0-1011-gcp x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

xxx@test:~$ 

如果想移除原本 Google 幫你建立的系統帳戶

而我們也把 google 為我們新增的帳戶移除掉,以防萬一。
重新登入到你的執行個體裡面,輸入:

sudo deluser --remove-home [google 為我們新增的帳戶]

之後回到 Google cloud platform ,到 Computer Engine 之下,點選「中繼資料」標籤,之後在頁面右邊點選「SSH金鑰」標籤。
把原本google為我們新增的帳戶的ssh值給移除,就完成了。

如果要改變登入的 port

系統預設都是 port 22,這無關乎哪一家主機商。但是是可以自定為自己想要的數字。

STEP 1

先從終端機登入你的執行個體。

sudo ssh -i [金鑰所在位置]/mainsite.pem ubuntu@[ip 位置]

STEP 2

之後編輯一個系統檔案。輸入以下指令。

sudo nano /etc/ssh/sshd_config

把 Port 22 改成你想要的數字,但請牢記。
另外把 PermitRootLogin prohibit-password 或是 PermitRootLogin yes 改成 PermitRootLogin no,以避免 root 帳戶被其他登入,不然就糟了。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 3

編輯完成之後,按下「Control」+「X」離開,會詢問你要不要儲存「Save modified buffer (ANSWERING “No” WILL DESTROY CHANGES) ? 」,所以按下「Y」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 3 / 24

接著會問你服寫在哪個檔案上面「File Name to Write: /etc/ssh/sshd_config」,直接按下「Enter」結束這回合。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 3 / 24

STEP 4

之後重新啟動 sshd 服務。

sudo systemctl restart sshd.service

STEP 5

接著到gcloud標籤頁,找到「防火牆規則」的標籤,點選「default-allow-ssh」,進去之後先點選「編輯」,把 tcp:22 的 22 改成你剛剛更改過的 port。
修改完成後記得按「儲存」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

STEP 6

重新連線到你的執行個體,但這時請多新增 -p 的選項。

sudo ssh -i [金鑰所在位置]/mainsite.pem ubuntu@[ip 位置] -p [你剛剛自己改成的數字]

用 Filezilla 連線到 Google 的執行個體以方便管理檔案

安裝完成後,開啟「設定」的視窗,找到 SFTP 標籤,新增剛剛的 mainsite.pem,並按下「儲存」。

之後新建站台,輸入你的執行個體的靜態ip位置、該執行個體上你剛剛新建的帳戶的帳號(該名稱)和密碼,記得選擇 SFTP 連線,port 預設都是22,或是輸入你之前改好的 port ,然後按下「連線」。

wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24
wp-ssl-ubuntu-lamp-nginx-varnish-redis-2
作者ヤンヤン編輯於 2018 / 2 / 24

下一篇會介紹 Amazon Ec2 建立執行個體的介紹,若沒有興趣的話可以直接跳到更下一章節,直接開始進行執行個體的系統環境的配置。

引用資料區
1. [教學] 如何在 Google Cloud Platform 架設免費伺服器,傑瑞窩在這,2016/2/1
2. 無料で簡単!「Google Cloud Platform」でWordPressを構築①,2017/6/4
3. Google Compute Engine 價格,Google,n.d.
4. [GCP]Google Cloud Platform架站(6) - 外部IP查詢與靜態IP設定,痞客邦 PIXNET,2017/1/31
5. 安裝 Cloud SDK,Google,n.d.
6. Quickstart for macOS,Googl,n.d.
7. gcloud command not found - while installing Google Cloud SDK,Stack flow,n.d.
8. Completely Uninstall Google Cloud SDK Mac,Stack flow,n.d.
9. How to Add and Delete Users on Ubuntu 16.04,Digital Ocean,2016/6/21
10. 連線至 Linux 執行個體,Google,n.d.
11. SSH Into Google Cloud Compute Engine Instance Using Secure Shell Client,nixCraft,2016/3/8
12. How to setup FileZilla for Google Compute Engine,Sandeep Dinesh,2015/4/16
13. 【GCP入門編・第3回】難しくない! Google Compute Engine (GCE) でのインスタンス起動方法!,株式会社トップゲート,2017/5/15
14. GCEのf1-microインスタンスを真にタダで使う方法,hnw,2017/4/6
15. GCEでWordPressがほぼ無料運用できるようになったので改めてまとめる,Yukari Nakanishi,2017/5/4
16. いつでも無料!Google Compute Engine 常時無料枠の使い方,あぱーブログ,2017/3/24