標籤: gcp

2024 WordPress自動架站心得-DockerCompose with AI

2024 WordPress自動架站心得-DockerCompose with AI

最近一個朋友想架官網,我第一個想到的還是wordpress

雖然以技術而言,php感覺已經不是主流(主流是GO, Python….etc),但以能做到CMS網站的解決方案而言,wordpress看起來還是滿強勢,重點是前後台就一站solution包好了,不用去想前後端分離什麼的 ,所以還是試著先搭配AI去安裝看看吧~

第一步,申請Gmail,為你雲端服務商申請有一個信箱 可以註冊

Azure跟 AWS都有免費 12個月,一定大小的size的vm規格可以申請,其實大同小異,這邊我選了熟悉的GCP

第二步 登入gmail後,直接申請 GCP,這邊其實 因為 都是google的服務,所以很順的申請完成!

他一開始會有一個MyFirstProject,一時間無法改名這個Project,所以我就立即創建一個新的Project,免費額度內好像可以建立共12個Project。然後申請服務的時候,會需要信用卡,但他說不會刷額度,在300美元額度內,你不啟用,都可以試用他們的服務,就算額度用完,他也不會跟你直接扣款。

第三步,開啟Compute-Engine,建立一個VM,這時我只有選一個core2, 8g ram的機器,其他都幾乎沒改,連地域都放在us(其實可以挑一下),一直下一步,等待一會兒就可以看到他背景建置好了!

第四步

透過 webssh連進去(這個比起當年還要建立ssh金鑰,上傳 Server才能用 iterm連線 的時代已經方便超級多了!

第五步

問Chatgpt要怎麼wordpress架站,首先先安裝Docker

第一個prompt如下

"Linux instance-20241202-162827 6.1.0-27-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64

我要怎麼安裝docker "

他回應我如下,我就不全列了,反正AI都會教好教滿,若你貼錯了 把錯誤訊息再丟回去問他,他也會試圖幫你解決

第六步: 安裝Docker-Compose

prompt
"docker-compose  怎麼安裝"

盡量要描述具體,所以我連ssh登入hint給的os資訊都一併給 ,這樣好讓他判斷要給我什麼安裝指令

其實先 前我因為相關經驗,有透過個別指令 安裝過Docker,DB,wordpress各自的container,而這次我希望一鍵安裝,所以使用Docker-Componse,同時我希望還是會有一個實體路徑,以確保備份還有未來轉移遷站的議題。

Prompt
"我要建立一個docker file 然後
docker file 希望可以建立一個wordpress跟mariadb,然後他們的實體路徑希望綁到/mnt/db跟/mnt/wordpress"
version: '3.9'
services:
  wordpress:
    build: .
    container_name: wordpress
    ports:
      - "8080:80"  # 將主機的 8080 端口映射到容器的 80 端口
    volumes:
      - /mnt/wordpress:/var/www/html  # 綁定實體目錄
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress_password #記得改一下
      WORDPRESS_DB_NAME: wordpress 
    depends_on:
      - db

  db:
    image: mariadb:latest
    container_name: mariadb-container
    volumes:
      - /mnt/db:/var/lib/mysql  # 綁定實體目錄
    environment:
      MYSQL_ROOT_PASSWORD: root_password #記得改一下
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress  
      MYSQL_PASSWORD: wordpress_password #記得改一下

volumes:
  wordpress_data:
    driver: local
  db_data:
    driver: local

其他

這時若你linux的OS時區跟語系有問題的話(optional),你也可以請他給你指令

最後,其實執行 “sudo docker-Compose up -d”,就可以一次把這些服務弄起來了

再用 “sudo docker ps -a”檢查一下是否有跑不起來的服務

註: 若你想在vm內驗證服務是否有up起來,你也可以再多chatgpt指令,他會教你

第7步: 設定GCP防火牆 (理論上不用管vm的firewall,不然很可能會不小心讓你連ssh都連不進去)

預設GCP是給 https-server所以只有開放443 port,只要點擊 vm清單上的外部ip旁的網路介面,就可以去設定他的防火牆,這時只要加入tcp: port 8080 允許的規則

小插曲: 原面安裝完跑docker-componse up以後,我看沒有錯誤訊息,但我看連外部ip 80 port都連不進去後,一直繞在怎麼允許80 port連線,還想不透去猜 是不是mariadb還是wordpress上配置不對,後來才發現是docker上port mapping是8080: 80,代表是vm的8080 port要connect到container的80 port,所以才發現gcp我怎麼開80port都還是連不到的原因XD,果然開了8080 port就通了!

你的網站理論上就可以運作了,這時只要選擇語系按安裝,就可以一鍵安裝好了(歡呼 ~)

安裝完如下:

後續其實要做到一個比較完整的官網,還有包含domain的註冊,SSL的配置就不細說了

以上架站其實搭配Chatgpt已經可以一站式的完成所有的工程(若不是firewall,弄到好可能不用10分鐘),而不用像當年我必須對每一個安裝的主題(例如mariadb、docker)去做查詢別人的文章或相關的指令 ,真的超級smooth。

有的時候都覺得AI革的命,絕對不只是軟體設計師 ,未來會不會SRE等指令結構化工程相關的人員可能都漸漸被AI取代掉了?或許分工上,不再那麼的壁壘分明了吧,因為這些工具能透過AI自動化就能被介面整合,人力需求肯定會比以前少的

至於wordpress的關鍵字SEO設定,這些屬於工程外的細節就另開一篇章吧~