การติดตั้ง Ghost บน OCI

Share
Laptop with Text Editor Screen
Photo by James Harrison / Unsplash

เนื้อหาดัดแปลงจากการถาม AI (Gemini) จดไว้เผื่อลืมครับ

สำหรับ Always Free Tier แนะนำ

  • OCI Compute Instance (Arm - Ampere A1): รัน Ghost CMS, Node.js, Nginx (เป็น Reverse Proxy) และ Self-hosted MySQL Server (ติดตั้งบน Instance เดียวกัน)

ขั้นตอนการติดตั้ง (เน้น Always Free Tier บน Arm Instance):

ขั้นตอนที่ 1: เตรียมสภาพแวดล้อมบน OCI

  1. สร้าง Virtual Cloud Network (VCN): กำหนดค่า VCN และ Subnet
  2. สร้าง Security Lists: กำหนด Ingress Rules เพื่ออนุญาตทราฟฟิกที่จำเป็น:
    • อนุญาต SSH (Port 22) จาก IP ของคุณหรือเครือข่ายที่กำหนด
    • อนุญาต HTTP (Port 80) และ HTTPS (Port 443) จากอินเทอร์เน็ตทั้งหมด (0.0.0.0/0)
    • (สำหรับฐานข้อมูลที่ติดตั้งบน Instance เดียวกัน ไม่ต้องเปิดพอร์ต DB ภายนอก)
  3. สร้าง Compute Instance (Arm - Ampere A1):
    • เลือก Image ที่รองรับสถาปัตยกรรม Arm และเป็น Ubuntu LTS (เช่น Ubuntu 20.04 หรือ 22.04 Minimal หรือ Cloud Image)
    • เลือก Shape เป็น VM.Standard.A1.Flex และปรับจำนวน OCPU และ RAM ตามโควต้าฟรีที่คุณได้รับ (สูงสุด 4 OCPUs, 24 GB RAM)
    • กำหนดค่าใน VCN และ Subnet ที่สร้างไว้
    • สร้างหรือเลือก SSH Key Pair
    • กำหนดค่า Public IP Address

ขั้นตอนที่ 2: ติดตั้งโปรแกรมและฐานข้อมูลบน Arm Instance

sudo apt update
sudo apt upgrade -y
sudo apt install -y nginx # ติดตั้ง Nginx
# ติดตั้ง Node.js (LTS) - ตรวจสอบคำแนะนำล่าสุดสำหรับ NodeSource หรือใช้วิธีอื่นที่รองรับ Arm
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

อัปเดตระบบและติดตั้งโปรแกรมที่จำเป็น

sudo apt install -y cron socat
curl https://get.acme.sh | sh -s [email protected]

ติดตั้ง acme.sh ก่อน Ghost จะได้ไม่มีปัญหา SSL

sudo apt install -y mysql-server
sudo mysql_secure_installation # ดำเนินการตั้งค่าความปลอดภัยพื้นฐาน

ติดตั้ง MySQL Server บน Instance เดียวกัน

sudo mysql -u root -p
# ใส่รหัสผ่าน root ที่ตั้งค่าไว้ในขั้นตอนก่อนหน้า

CREATE DATABASE ghost_db; # ตั้งชื่อฐานข้อมูลตามต้องการ
CREATE USER 'ghost_user'@'localhost' IDENTIFIED BY 'your_password'; # ตั้งชื่อผู้ใช้และรหัสผ่านที่รัดกุม
GRANT ALL PRIVILEGES ON ghost_db.* TO 'ghost_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

ตั้งค่าฐานข้อมูลและผู้ใช้สำหรับ Ghost ใน MySQL

sudo adduser ghost-user
sudo usermod -aG sudo ghost-user
su - ghost-user # สลับไปใช้ผู้ใช้ ghost-user

สร้างผู้ใช้ใหม่สำหรับ Ghost (แนะนำ) และกำหนดสิทธิ์

sudo npm install ghost-cli@latest -g

ติดตั้ง Ghost-CLI

sudo mkdir -p /var/www/ghost
sudo chown ghost-user:ghost-user /var/www/ghost
sudo chmod 775 /var/www/ghost
cd /var/www/ghost

สร้างไดเรกทอรีสำหรับ Ghost และกำหนดสิทธิ์

ghost install

ติดตั้ง Ghost

หากใช้ ghost install (ซึ่งแนะนำกว่า local เพื่อให้ Ghost-CLI จัดการ Nginx/SSL):

  • Your blog URL: ใส่โดเมนเนมของคุณ (เช่น https://yourdomain.com)
  • Database type: เลือก mysql
  • Database host: ใส่ localhost
  • Database user: ใส่ชื่อผู้ใช้ฐานข้อมูลที่คุณสร้างไว้ (ghost_user)
  • Database password: ใส่รหัสผ่านฐานข้อมูลของคุณ (your_password)
  • Ghost database name: ใส่ชื่อฐานข้อมูลของคุณ (ghost_db)
  • Set up Nginx?: เลือก Yes
  • Set up SSL?: เลือก Yes (ต้องแน่ใจว่าโดเมนชี้มาที่ IP นี้แล้ว)
  • Set up Systemd?: เลือก Yes
  • Start Ghost?: เลือก Yes

ปัญหาที่อาจเจอ

  • ถ้าเจอปัญหา SSL หลังติดตั้ง ให้เช็ค DNS (ใส่ IP ที่ถูกต้องสำหรับ A & AAAA) รัน ghost setup ssl เพื่อซ่อม
  • Website Error Too Many Redirects

Read more

Daily Log 20250624

Daily Log 20250624

ความคืบหน้า * ทดสอบติดตั้ง Windows 11 ผ่าน RustDesk แล้ว ในช่วงแรกคงยังไม่จำเป็นต้องทำ RustDesk server แต่ต้องการอินเตอร์เน็ตที่มีความเสถียร * ใช้วิธีบูตจากไฟล์ VHDX จะรวดเร็วกว่าการติดตั้งแบบแมนนวล แต่ต้องหาวิธีตั้งค่าแบบพร้อมใช้ เช่

By Sungsit Sawaiwan
Daily Log 20250620

Daily Log 20250620

ความ(ไม่)คืบหน้า คิด Offers ใหม่ สำหรับร้าน Hii.One ไว้ประมาณนี้ 1. เพิ่ม HiiDroid USB Drive เป็นโบนัสสำหรับ Windows แล็ปท็อป เพื่อเพิ่มมูลค่าโดยไม่ต้องลดราคา 2. เพิ่ม **บริการติดตั้ง Windows ออนไลน์** เพื่อขยายกลุ่มเป้าหมาย

By Sungsit Sawaiwan