在GCP(Google Cloud Platform)上透過FTP上傳檔案

在前一篇說明了如何在GCP上架設wordpress,這篇要說明如何透過FTP的方式進行檔案上傳。參考了許多網路上的文章,其實把檔案傳到GCP上不是那麼簡單。

由於GOOGLE需要透過金鑰的方式才可以連線,且目前無法直接以root的帳號進行連線,所以在其他網站看到的取得root金鑰再連線的方式已經GG惹。

參考GCP的說明文件

那只能透過其他方式,我目前想到的是利用安裝「Google Cloud SDK」的方式,透過電腦的帳號上傳檔案到GCP之後,再sudo成root把檔案copy到指定的目錄下。雖然搞工,但這是我目前測試成功的方式。

安裝Google Cloud SDK

網址:https://cloud.google.com/sdk/

1. 到下載元件網址下載Google Cloud SDK套件。

2. 執行下載的程式進行安裝,基本上就是下一步、我同意 等方式進行點選,安裝過程需要一點時間。

3. 安裝完成後,點選finish。

4. 出現初始化視窗,請輸入「Y」之後enter。

註:若無出現此視窗,直接執行桌面上的「Google Cloud SDK Shell」,再輸入「gcloud init」指令即可。

5. 此時會開始進行進行Gmail帳號驗證程序,請輸入使用GCP的Google帳號進行認證。

6. 出現授權視窗,請點選「允許」進行授權。

7. 出現以下畫面代表初始化完成。

以上只是把 Google Cloud SDK這個tool安裝完成。

8. 接下來要回到SDK的視窗,選擇你已經建立的GCP專案名稱(非執行個體)後按enter。

9. 出現是否要設定GCE,請輸入「Y」之後按enter。

10. 選擇執行個體當初設定的區域(zone)。

註:可以參考GCE內的設定。

11. 回到Cloud SDK的目錄下代表已設定完成,接下來要設定連線。

12. 輸入「gcloud compute ssh example-instance」指令,此時會以電腦的username進行GCP的連線。註:example-instance指的是執行個體名稱。

13. 此時系統會問是否繼續,輸入「Y」之後enter即可。

14. 設定完成後,即會開啟putty連線視窗,最上方即會顯示目前的使用者名稱。

15. 輸入「sudo su」指令即可切換成root帳號。

如何透過FTP軟體進行連線?以FileZilla的方式為例。

File Zilla下載

https://filezilla-project.org

16. 下載並安裝 FileZilla Client軟體後,開啟「站台管理員」。留意以下幾個地方的資料:
❶:輸入連線主機IP。
❷:協定選擇「SFTP」。
❸:登入型式選擇「金鑰檔案」。
❹:使用者輸入本機使用者名稱。
❺:選擇金鑰檔案位置(如下說明)。
❻:輸入完成後點選「連線」即可。

註:金鑰位置在第14.步驟設定完成後,在C:\USER\使用者帳號\.ssh 資料夾內即產生了金鑰。選擇「google_compute_engine.ppk」這個檔案即是。

17. 連線成功後,在遠端的資料夾預設會在 \home\使用者名稱 目錄內,而裡面有個捷徑「htdocs」即是這個執行個體的web預設路徑。

因為我這個wordpress是透過bitnami安裝的,所以預設路徑會在 /opt/bitnami/apache2/htdocs 之下。(實際上bitnami的wordpress設定檔是在/opt/bitnami/apps/wordpress/conf 目錄之中。)

只是很怪的是,目前透過這個方式只能把檔案上傳到自己的 /home/使用者名稱 的目錄下,若直接在htdocs的目錄下進行上傳,則會出現沒有權限的狀況。

這也是之前提到為什麼要sudo su的原因,先把檔案上傳到 /home/使用者名稱 之後,再透過root帳號執行cp或是mv指令把檔案搬到指定目錄下。

有什麼情況需要把檔案上傳到GCP呢?有,例如要上傳憑證檔的時候就需要用到了。(待續)

12 thoughts on “在GCP(Google Cloud Platform)上透過FTP上傳檔案

  • 2018-03-11 at 3:37 下午
    Permalink

    請問一下大大,
    這個config檔是指檔名還是副檔名爲config呢?
    我本來想說指的是不是由外部ip預設的/var/www/html下的index.html裡的提示

  • 2018-03-11 at 3:37 下午
    Permalink

    大大請問一下,
    這個config檔是指檔名還是副檔名爲config呢?
    我本來想說指的是不是由外部ip預設的/var/www/html下的index.html裡的提示
    /etc/apache2/
    |– apache2.conf
    | `– ports.conf
    |– mods-enabled
    | |– *.load
    | `– *.conf
    |– conf-enabled
    | `– *.conf
    |– sites-enabled
    | `– *.conf
    可是只有/etc/apache2下的apche2.conf跟ports.conf可以被開啓
    請問大大是指這二個檔案嗎?
    但是小弟不知道要改哪裡說,拍謝,小弟新手>”<

    • 2018-03-18 at 9:06 上午
      Permalink

      試著輸入「sudo su」取得最高權限試試,裡面的config檔應該就可以被開啟了。

  • 2018-03-10 at 11:39 下午
    Permalink

    然後我有爬文看到說,新版的php最好連線方式不要用mysql_connect,要用mysqli_connect,code改掉之後,會先看到網頁一直在跑,然後就出現了我在php裡設定的die()訊息,請問這樣是不是我語法有問題?

  • 2018-03-10 at 11:38 下午
    Permalink

    對了,我說明一下我的環境@@
    我是用Cloud launcher安裝LAMP Stack,現在可以透過deployment manager進入到外部IP所連結的預設網頁和它預設的phpmyadmin介面,然後訪問/var/www/html/test/index.php的檔案也OK,現在也可以用FileZilla透過SFTP連線到主機。

    現在問題卡在要用我從SFTP上傳到主機再用root權限mv到/var/www/html/test的PHP檔案中,連線到它預設的資料庫中有問題,感恩>”<。

  • 2018-03-09 at 3:02 上午
    Permalink

    500錯代表某些設定有問題
    連資料庫使用外部IP是OK的
    看看某個Config檔有無設定錯誤

  • 2018-03-08 at 7:04 上午
    Permalink

    大大,不好意思,請問我再連接資料庫時,會出現HTTP 錯誤 500
    請問是什麼意思呢?我連資料庫的IP是輸入外部IP,這樣對嗎?

  • 2018-03-07 at 10:10 下午
    Permalink

    好了好了,感謝^_^

  • 2018-03-07 at 7:09 上午
    Permalink

    請問上傳到/home/使用者名稱後,再透過mv指令把檔案搬到指定目錄下。
    這裡的指定目錄是指/var/www/html下嗎?(因爲預設的外部ip是執行這個目錄下的index.html)

    • 2018-03-07 at 10:58 上午
      Permalink

      以bitnami安裝的情況下,憑證檔的目錄是在「/opt/bitnami/apache2/conf/」這個目錄中
      所以,就「上傳憑證」這件事而言,指定目錄就是「/opt/bitnami/apache2/conf/」。

      可以參考這篇文章 https://sammy197.tw/4076

  • 2017-11-16 at 11:09 下午
    Permalink

    請問用filezilla 完成連線後,資料夾沒有htdocs該怎麼解決呢,只有一個.ssh資料夾。

    • 2017-11-18 at 9:47 上午
      Permalink

      點選資料夾內的「…」回到上一層試試。
      因為我有先透過Bitnami安裝wordpress,所以它才會在裡面有htdocs的捷徑,如果沒有的話,透過回到上一層(…)去找「opt」下的目錄,如文章內所述的路徑。

Comments are closed.