📋 คู่มือ Deploy เว็บไซต์จาก AI
🚀

คู่มือ Deploy เว็บไซต์จาก AI
ขึ้นเว็บจริงได้ง่าย ๆ

ฉบับมือใหม่ — เข้าใจง่าย ไม่ซับซ้อน

📚 4 ส่วน 🎯 5 กรณี Deploy 🔧 Troubleshooting ⭐ Hostatom แนะนำ

📚 ส่วนที่ 1: พื้นฐานและการเตรียมตัว

เรียนรู้ Plesk, สมัคร Hosting, เข้าระบบ, จัดการ Domain

1.1 รู้จัก Plesk และการเตรียมตัว

🤔 Plesk คืออะไร?

Plesk คือ "ห้องควบคุมของเว็บไซต์" ที่ทำให้คุณจัดการเว็บได้ง่าย ๆ โดยไม่ต้องเป็นโปรแกรมเมอร์

🏠 เปรียบเทียบง่าย ๆ
  • บ้าน = เว็บไซต์
  • Plesk = รีโมทควบคุมบ้านอัจฉริยะ
  • กดปุ่มเปิด-ปิดไฟ (เหมือนกดปุ่มจัดการเว็บ)
  • ไม่ต้องเดินไปเปิดสวิตช์เอง (ไม่ต้องพิมพ์คำสั่งซับซ้อน)

✨ ทำอะไรได้บ้างใน Plesk?

สิ่งที่ทำได้ เหมือนกับ
📁 อัพโหลดไฟล์เว็บUpload รูปใน Facebook
🔒 ติดตั้ง SSL (แม่กุญแจ)ติดตั้งกุญแจบ้าน
💾 จัดการฐานข้อมูลจัดระเบียบตู้เสื้อผ้า
📧 สร้างอีเมลสร้าง Email บริษัท
📊 ดูสถิติเว็บดูยอด View YouTube

📦 สิ่งที่ต้องเตรียมก่อนเริ่ม

เหมือนจะเปิดร้านค้า ต้องมี:
  • ที่ตั้งร้าน (Hosting) = พื้นที่เก็บเว็บบนอินเทอร์เน็ต
  • ชื่อร้าน (Domain) = mywebsite.com
  • กุญแจร้าน (Login Plesk) = Username + Password
  • สินค้า (ไฟล์เว็บ) = ที่ AI สร้างให้

💰 ค่าใช้จ่ายโดยประมาณ

  • Hosting + Plesk = 100–500 บาท/เดือน
  • Domain = 300–800 บาท/ปี

1.2 สมัครใช้งาน Hosting จาก Hostatom.com NEW

🌟 ทำไมต้องเลือก Hostatom?

เหมาะกับมือใหม่เพราะ
  • ✅ ใช้งานง่าย มี Plesk ให้พร้อม
  • ✅ ราคาไม่แพง เริ่มต้น 99 บาท/เดือน
  • ✅ Support ภาษาไทย ตอบเร็ว
  • ✅ Server อยู่ในไทย โหลดเร็ว
  • ✅ ติดตั้ง WordPress อัตโนมัติ

📦 แพ็คเกจที่แนะนำสำหรับมือใหม่

แพ็คเกจเหมาะกับราคา/เดือน
Starterเว็บเล็ก, Landing Page~99–199 บาท
Businessเว็บธุรกิจ, Sale Page~299–499 บาท
Proเว็บใหญ่, Node.js App~599–999 บาท
💡 คำแนะนำ
เริ่มต้น → เลือก Starter หรือ Business
ถ้าใช้ Node.js → เลือก Pro ขึ้นไป

🛒 ขั้นตอนการสมัครใช้งาน (ง่ายมาก!)

1
เข้าเว็บ Hostatom — เปิด https://hostatom.com → คลิก "Web Hosting" หรือ "สั่งซื้อ"
2
เลือกแพ็คเกจ — ดูแพ็คเกจที่มี เลือกที่เหมาะ → คลิก "สั่งซื้อ"
3
เลือก Domain
ทางที่ 1: ใช้ Domain ที่มีอยู่แล้ว → เลือก "I will use my existing domain" → พิมพ์ Domain
ทางที่ 2: ซื้อ Domain ใหม่ → เลือก "Register a new domain" → ค้นหาชื่อที่ต้องการ
4
เลือกระยะเวลา — 1 เดือน (ลองก่อน) / 6 เดือน (ลดราคา 5–10%) / 12 เดือน (ลดสูงสุด 15–20%)
5
ชำระเงิน — เลือกวิธี: โอนเงิน / บัตรเครดิต / QR Code
6
รับข้อมูล Login — จะได้รับอีเมลมี: URL Plesk, Username, Password, Nameserver
📧 เก็บอีเมลนี้ไว้ดี ๆ!
อย่าลบ มีข้อมูลสำคัญที่จะใช้ต่อ

🌐 การตั้งค่า Domain (ถ้าใช้ Domain ที่มีอยู่แล้ว)

กรณีซื้อ Domain จากที่อื่น (เช่น GoDaddy, Niagahoster) ต้องตั้งค่า Nameserver ให้ชี้มาที่ Hostatom

1
หาข้อมูล Nameserver ของ Hostatom อ่านจากอีเมลที่ได้รับ โดยปกติเป็น:
ns1.hostatom.com
ns2.hostatom.com
2
เปลี่ยน Nameserver ที่ Domain — เข้าเว็บที่ซื้อ Domain → "จัดการ Domain" → หา "Nameservers" → เปลี่ยนเป็น Custom Nameserver → ใส่ ns1 / ns2 → Save
⏰ รอ 4–24 ชั่วโมง (DNS Propagation)
Domain จะเริ่มชี้มาที่ Hosting ใหม่ ใจเย็น ๆ รอก่อน 😊
เช็คได้ที่ https://whatsmydns.net

1.3 เข้าสู่ระบบ Plesk ครั้งแรก

🔑 ขั้นตอนการ Login (3 ขั้นตอน)

1
เปิด URL Plesk
https://your-domain.com:8443
หรือ
https://123.456.78.90:8443
⚠️ เห็น "Not Secure"?
ปกติ! คลิก "Advanced""Proceed" ได้เลย
2
ใส่ Username & Password จากอีเมล → คลิก "Log In"
3
🎉 ยินดีต้อนรับสู่ Plesk! อาจมีให้เลือกภาษา → เลือก ไทย (ถ้ามี) หรือ English

🗺️ ทำความเข้าใจหน้า Dashboard

Dashboard = ห้องนั่งเล่นของบ้าน เห็นภาพรวมทั้งหมด

เมนูชื่อทำอะไร
🌐Websites & Domainsจัดการเว็บไซต์ — ห้องหลัก
📁Filesจัดการไฟล์ — ตู้เก็บของ
💾Databasesจัดการฐานข้อมูล — ตู้เซฟ
📧Mailจัดการอีเมล
📊Statisticsดูสถิติเว็บ
💡 เมนูที่จะใช้บ่อยที่สุด
  1. Websites & Domains = 80% ใช้ที่นี่
  2. Files = อัพโหลดไฟล์
  3. Databases = สำหรับเว็บที่มี DB

1.4 การจัดการ Domain

➕ เพิ่ม Domain ใหม่

1
คลิก "Websites & Domains"
2
คลิก "Add Domain"
3
กรอก Domain name + เลือก "Website hosting"
4
คลิก "OK" — เสร็จ! Domain พร้อมใช้งาน

⚙️ เครื่องมือสำคัญของแต่ละ Domain

เครื่องมือทำอะไรใช้บ่อย
File Managerอัพโหลด/แก้ไขไฟล์⭐⭐⭐⭐⭐
WordPressติดตั้ง WordPress⭐⭐⭐⭐⭐
SSL/TLS Certificatesติดตั้ง HTTPS⭐⭐⭐⭐
Node.jsรัน Node.js App⭐⭐⭐
Databasesสร้าง Database⭐⭐⭐

🎯 สรุปส่วนที่ 1

  • Plesk = ห้องควบคุมเว็บไซต์ (ใช้ง่าย ไม่ต้องเขียนโค้ด)
  • Hostatom = Hosting ที่แนะนำ (ราคาดี, ใช้ง่าย)
  • วิธีสมัคร Hosting (6 ขั้นตอน)
  • วิธี Login Plesk (3 ขั้นตอน)
  • รู้จักเมนูหลัก (Websites & Domains, Files, Databases)

🚀 ส่วนที่ 2: กรณีการ Deploy แต่ละประเภท

5 กรณีหลัก — เลือกตามเว็บที่ AI สร้างให้

กรณีที่ 1: Deploy เว็บแอพ HTML Static

คืออะไร? เว็บที่ไม่ต้อง "ทำงาน" บนเซิร์ฟเวอร์ เหมือนเอาโบรชัวร์ไปแปะบนอินเทอร์เน็ต แค่เปิดดูได้เลย

🎯 เหมาะกับ: Landing Page, Portfolio, โบรชัวร์ออนไลน์, เว็บแนะนำธุรกิจ

🗂️ ไฟล์ที่มักได้จาก AI

my-project/ ├── index.html ← หน้าหลัก (บังคับต้องมี!) ├── style.css ← ตกแต่งสีสัน ├── script.js ← ทำให้เคลื่อนไหว └── images/ ← รูปภาพ ├── logo.png └── banner.jpg

📤 ขั้นตอนการ Deploy (5 ขั้นตอน)

1
เข้า File Manager — Login Plesk → "Websites & Domains" → เลือก Domain → คลิก "File Manager"
2
หาโฟลเดอร์ "บ้าน"httpdocs (บ่อยสุด) หรือ public_html. อย่าแตะ cgi-bin, logs, conf
3
อัพโหลดไฟล์เว็บ
วิธีที่ 1: Upload ทีละไฟล์ (เหมาะกับไฟล์น้อย)
วิธีที่ 2 (แนะนำ!): บีบอัดเป็น .zip → Upload → Extract Files → ลบ .zip
4
เช็คโครงสร้างไฟล์ (สำคัญมาก!)
✅ ถูกต้อง
httpdocs/
├── index.html  ← ตรงนี้เลย!
├── style.css
└── script.js
❌ ผิด (แก้ด่วน!)
httpdocs/
└── myproject/  ← ซ้อนอีกชั้น!
    └── index.html
ถ้าพบแบบผิด — เข้า myproject → เลือกทั้งหมด → Cut → กลับ httpdocs → Paste → ลบโฟลเดอร์เปล่า
5
ทดสอบเว็บ 🎉 เปิด https://your-domain.com ถ้าเห็นเว็บ = สำเร็จ!

🔧 แก้ไขปัญหาที่พบบ่อย

❌ ปัญหา: เห็น "Index of /" หรือ 404

สาเหตุ: ไม่มีไฟล์ index.html ใน httpdocs หรือชื่อผิด

✅ วิธีแก้
  1. เช็คว่ามี index.html หรือไม่
  2. ถ้าชื่ออื่น → Rename เป็น index.html
  3. ถ้าอยู่ในโฟลเดอร์ซ้อน → ย้ายออกมา
❌ ปัญหา: เว็บแสดง แต่ CSS/JS ไม่ทำงาน

สาเหตุ: Path (ที่อยู่ไฟล์) ในโค้ด HTML ผิด

❌ ผิด
<link href="/assets/style.css">
✅ ถูก
<link href="./style.css">
❌ ปัญหา: รูปภาพไม่แสดง

สาเหตุ: Path รูปผิด หรือไฟล์รูปไม่มีจริง

❌ ผิด
<img src="/assets/images/logo.png">
✅ ถูก
<img src="./images/logo.png">
❌ ปัญหา: Permission Denied / 403

คลิกขวา httpdocs → Change Permissions → ตั้ง 755 → ติ๊ก "Apply to subdirectories"

🎯 สรุปกรณีที่ 1 — HTML Static

  • เข้า File Manager → เปิด httpdocs
  • Upload ไฟล์ (แนะนำใช้ .zip)
  • index.html ต้องอยู่ตำแหน่งถูก
  • เปิดเว็บทดสอบ

กรณีที่ 2: Deploy เว็บแอพ Node.js

คืออะไร? เว็บที่ "ต้องทำงาน" บนเซิร์ฟเวอร์ตลอดเวลา มี "สมอง" ทำงานอยู่ข้างหลัง เหมือนมีพนักงานคอยรับ-ส่งข้อมูล 24 ชั่วโมง

🎯 เหมาะกับ: Web Application (Login, CRUD), API, Dashboard, Chat App, ระบบจอง

🗂️ ไฟล์ที่มักได้จาก AI

my-node-app/ ├── package.json ← รายการ "วัตถุดิบ" ├── server.js ← ไฟล์หลัก "สมอง" ├── public/ ← ไฟล์หน้าบ้าน │ ├── index.html │ └── style.css ├── routes/ ← เส้นทางต่าง ๆ └── node_modules/ ← อย่า Upload!
⚠️ ความแตกต่างสำคัญ
HTML = อัพโหลดแล้วใช้เลย
Node.js = อัพโหลด → ต้องสั่ง "เปิดร้าน" ด้วย!

📤 ขั้นตอนการ Deploy (7 ขั้นตอน)

1
อัพโหลดโปรเจค
ลบโฟลเดอร์ node_modules ก่อน (ลดขนาด 100–500 MB!) → บีบอัดเป็น .zip → Upload เข้า httpdocs → Extract → ลบ .zip
2
เปิดใช้งาน Node.js
Websites & Domains → Domain → หา "Node.js" (ใน Additional Services) → คลิก "Enable Node.js"
⚠️ ไม่เห็นเมนู Node.js?
แพ็คเกจอาจไม่รองรับ → ต้องอัพเกรดเป็น Business/Pro
3
ตั้งค่า Node.js Application
ช่องกรอกอะไรตัวอย่าง
Application modeโหมดใช้งานจริงProduction
Application rootที่อยู่โปรเจคhttpdocs
Application URLDomainhttps://mywebsite.com
Application startup fileไฟล์เริ่มต้นserver.js
Node.js versionเวอร์ชัน18.x หรือ 20.x
💡 หา Startup File จากไหน?
ดูใน package.json หาบรรทัด "main" หรือ "scripts": { "start": "node server.js" }
4
ติดตั้ง Dependencies (วัตถุดิบ)
ในหน้า Node.js Settings → หาปุ่ม "NPM Install" → คลิก → รอ 30–120 วินาที → เสร็จ ✅
5
ตั้งค่า Environment Variables (ถ้ามี)
เหมือนรหัสลับของร้าน เช่น PORT, DATABASE_URL, API_KEY
Node.js Settings → "Environment Variables" → คลิก "+" → กรอก Name & Value
💡 หา Variables จากไหน?
ดูในไฟล์ .env หรือในโค้ด process.env.API_KEY
6
แก้ไขโค้ด server.js (สำคัญ!)
❌ Port ตายตัว
app.listen(3000, () => {
  console.log('port 3000');
});
✅ Port แบบยืดหยุ่น
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`port ${PORT}`);
});
7
Start Application & ทดสอบ 🚀
คลิก "Enable Node.js" หรือ "Restart App" → รอ 30–60 วินาที
Running = เว็บทำงานแล้ว! | Stopped = มีปัญหา (ดู Logs)
เปิด https://your-domain.com — ถ้าเห็นเว็บ = สำเร็จ! 🎉

📄 ตัวอย่าง server.js ที่ทำงานบน Plesk

const express = require('express');
const app = express();

// ⭐ สำคัญ! ใช้ PORT จาก Plesk
const PORT = process.env.PORT || 3000;

app.use(express.json());
app.use(express.static('public'));

app.get('/', (req, res) => {
  res.send('Hello from Node.js on Plesk! 🚀');
});

app.get('/api/test', (req, res) => {
  res.json({ message: 'API Working!', timestamp: new Date() });
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

🔧 แก้ไขปัญหาที่พบบ่อย

❌ Application Error / Cannot Start

ดู Logs ในหน้า Node.js Settings → อ่าน Error ล่าสุด

Errorวิธีแก้
Cannot find module 'express'รัน NPM Install ใหม่
EADDRINUSE (Port ใช้ไม่ได้)Restart App หรือใช้ process.env.PORT
SyntaxErrorเช็คโค้ดมี Error (ลืม , หรือ })
Startup file not foundเช็คชื่อไฟล์ถูกหรือเปล่า

🎯 สรุปกรณีที่ 2 — Node.js

  • อัพโหลดโปรเจค (ไม่รวม node_modules)
  • Enable Node.js & ตั้งค่า Application
  • NPM Install ทุกครั้ง!
  • ใস่ process.env.PORT ใน Code!
  • ดู Logs เมื่อมีปัญหา

กรณีที่ 3: Deploy WordPress Sale Page (Elementor)

คืออะไร? WordPress = ระบบสร้างเว็บที่ง่ายที่สุด (40% ของเว็บทั่วโลก). Elementor = เครื่องมือออกแบบแบบ "ลาก-วาง". Sale Page = หน้าเดียวสำหรับขายสินค้า/บริการ

🎯 เหมาะกับ: Sale Page, Landing Page, Promotion Page, Event Page, Product Launch

📦 ไฟล์ที่ได้จาก AI
sale-page-template.json — ไฟล์ JSON เก็บ "สูตร" การออกแบบ เอาไปใส่ Elementor จะได้หน้าเว็บสำเร็จรูป!

📋 3 ส่วนหลัก

ส่วนที่ 1: เตรียม WP + Elementor ส่วนที่ 2: Import Template JSON ส่วนที่ 3: ปรับแต่งและ Publish
🏗️ ส่วนที่ 1: เตรียม WordPress + Elementor
1
ติดตั้ง WordPress — Plesk → Websites & Domains → Domain → "WordPress" → Install
กรอก: Site name, Admin username (อย่าใช้ admin), Password แข็งแรง, Email
รอ 2–5 นาที → เห็น "Installation Complete" ✅
2
เข้า WordPress Dashboardhttps://your-domain.com/wp-admin
3
ติดตั้ง Elementor Plugin — Plugins → Add New → ค้นหา "Elementor" → Install Now → Activate
💡 เกร็ดความรู้
ใช้ Free ก็พอ สามารถ Import Template ได้แล้ว
4
เปิดใช้งานการอัพโหลด Template (สำคัญมาก!)
Elementor → Settings → แท็บ "Advanced" → หา "Enable Elementor Template Upload" → เปลี่ยนเป็น Yes → Save Changes
⚠️ ถ้าข้ามขั้นนี้ = Import ไม่ได้!
📥 ส่วนที่ 2: Import Template

วิธีที่ 1: Import ผ่าน Dashboard (แนะนำมือใหม่!)

1
Templates → Saved Templates
2
คลิก "Import Templates"
3
Choose File → เลือกไฟล์ .json
4
คลิก "Import Now" → รอ 5–30 วินาที → Template ปรากฏใน Saved Templates ✅

วิธีที่ 2: Import ผ่าน Editor

1
Pages → Add New → "Edit with Elementor"
2
คลิกไอคอน 📁 Folder (Template Library)
3
ไอคอน ↑ Upload → Select File → เลือก .json
4
Template ปรากฏใน "My Templates"
5
คลิก "Insert" → Template แสดงในหน้าทันที! 🎉
ถ้าถาม "Apply global settings?" → คลิก "Don't Apply"
🎨 ส่วนที่ 3: ปรับแต่งและเผยแพร่
  • แก้ Text: คลิกที่ข้อความ → พิมพ์ใหม่ (บันทึกอัตโนมัติ)
  • แก้รูป: คลิกรูป → Choose Image → Upload Files → เลือกรูป
  • แก้ Button: คลิกปุ่ม → แก้ Text + Link
  • แก้สี: คลิก Element → Style → เลือกสีใหม่

📱 เช็ค Mobile: ล่างซ้าย → 📱 Mobile → ดูว่าสวยไหม

🎬 Publish: Preview → ตรวจสอบ → คลิก "Publish" → เว็บเผยแพร่แล้ว! 🎉

🔧 แก้ไขปัญหาที่พบบ่อย

❌ อัพโหลด JSON ไม่ได้ / "File type not allowed"
✅ วิธีแก้

Elementor → Settings → Advanced → เปิด "Enable Elementor Template Upload" = Yes → Save → ลอง Upload ใหม่

❌ Import สำเร็จ แต่หน้าว่างเปล่า
✅ วิธีแก้
  1. Elementor → Settings → Features → เปิด Flexbox Container + Grid Container
  2. Elementor → Tools → "Regenerate CSS" → คลิก "Regenerate Files"
  3. Refresh หน้าเว็บ
❌ รูปภาพไม่แสดง
✅ วิธีแก้

Media → Add New → อัพโหลดรูpr → Edit with Elementor → คลิกรูป → Choose Image → เลือกรูปใหม่ → Update

🎯 สรุปกรณีที่ 3 — WordPress + Elementor

  • เตรียม: ติดตั้ง WP → Elementor → เปิด Template Upload
  • Import: อัพโหลด JSON → Insert เข้าหน้า
  • ปรับ: แก้ข้อความ รูป ปุ่ม → Publish

กรณีที่ 4: Deploy React / Vue.js (Build แล้ว)

คืออะไร? เว็บแอพที่ต้อง "Build" ก่อน Deploy เหมือนทำอาหาร: ปรุงให้สุกก่อน ค่อยเสิร์ฟ

🎯 เหมาะกับ: SPA, Web App ซับซ้อน, Interactive Dashboard, เว็บที่ต้องเร็ว

⚠️ สิ่งสำคัญ
ไม่สามารถ Deploy โค้ด React/Vue โดยตรงได้!
ต้อง Build ให้เป็น HTML/CSS/JS ธรรมดาก่อน!

🏗️ ขั้นตอน Build

สำหรับ React
cd C:\Users\YourName\my-react-app
npm install          # ครั้งแรกเท่านั้น
npm run build        # Build โปรเจค → สร้างโฟลเดอร์ "build"
สำหรับ Vue.js
cd C:\Users\YourName\my-vue-app
npm install
npm run build        # Build → สร้างโฟลเดอร์ "dist"
📁 โฟลเดอร์ Build มีอะไร?
React → โฟลเดอร์ build/ มี index.html + static/css/ js/
Vue → โฟลเดอร์ dist/ มี index.html + css/ js/
ข้างในมีแค่ HTML/CSS/JS ธรรมดา — Deploy ได้เลย!

📤 Upload ไปที่ Plesk

1
บีบอัดไฟล์ — เข้า build/ (React) หรือ dist/ (Vue) → เลือกไฟล์ ภายใน (ไม่ใช่โฟลเดอร์เอง!) → Compress
2
Upload เข้า httpdocs → Extract Files → ลบ .zip
3
เช็ค: index.html ต้องอยู่ใน httpdocs โดยตรง
4
ทดสอบ — เปิด https://your-domain.com 🎉

🔧 แก้ไขปัญหาที่พบบ่อย

❌ หน้าขาว / Blank Screen
✅ วิธีแก้

React: เปิด package.json → เพิ่ม "homepage": "." → Build ใหม่ → Upload ทับ
Vue: เปิด vue.config.js → ใส่ publicPath: './' → Build ใหม่

❌ Refresh แล้วเจอ 404 Not Found
✅ วิธีแก้ — 2 วิธี

วิธีที่ 1 (ง่ายสุด): เปลี่ยนเป็น HashRouter

// React: เปลี่ยน BrowserRouter เป็น HashRouter
import { HashRouter } from 'react-router-dom';
<HashRouter><App /></HashRouter>

// Vue: เปลี่ยน history เป็น createWebHashHistory()
const router = createRouter({
  history: createWebHashHistory(),
  routes: [...]
})

วิธีที่ 2: ใช้ .htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>
❌ API ไม่ทำงาน / CORS Error
✅ วิธีแก้

ถ้า API เป็นของเอง → ตั้งค่า CORS ที่ Backend
เปลี่ยน API URL ใน .env: REACT_APP_API_URL=https://api.yoursite.com → Build ใหม่

🎯 สรุปกรณีที่ 4 — React / Vue

  • ต้อง Build ก่อน Deploy ทุกครั้ง!
  • index.html ต้องอยู่ httpdocs โดยตรง
  • Refresh แล้ว 404 → ใช้ Hash Router หรือ .htaccess
  • Workflow: แก้โค้ด → Build ใหม่ → Upload ทับ

กรณีที่ 5: Deploy PHP Application

คืออะไร? PHP = ภาษาโปรแกรมสำหรับทำเว็บ ทำงานบน Server มักมี Database (MySQL) ไปด้วย

🎯 เหมาะกับ: เว็บธุรกิจทั่วไป, CMS, ระบบสมาชิก, E-commerce, ระบบจอง

🗂️ ไฟล์ที่มักได้จาก AI

my-php-app/ ├── index.php ← หน้าหลัก ├── config.php ← ตั้งค่า Database ★ ├── functions.php ├── pages/ ├── css/ js/ images/ └── database.sql ← โครงสร้างตาราง

🏗️ 4 ขั้นตอนหลัก

1. อัพโหลดไฟล์ PHP 2. สร้าง Database 3. แก้ Config 4. Import DB & ทดสอบ
1
อัพโหลดไฟล์ PHP
บีบอัด → Upload เข้า httpdocs → Extract → เช็ค index.php อยู่ตำแหน่งถูก
Permission: โฟลเดอร์ uploads/, cache/ → ตั้ง 777 (เฉพาะที่จำเป็น!)
⚠️ คำเตือน
อย่าตั้ง 777 ทั้งเว็บ! อันตราย ถูกแฮกง่าย
2
สร้าง Database
Websites & Domains → Domain → "Databases" → "Add Database"
กรอก Database name → OK
แล้ว "Add User" → กรอก Username + Password
💡 เก็บข้อมูลนี้ไว้ (จะใช้ใน Config)
Database Name / Database User / Password / Host: localhost
3
แก้ไขไฟล์ Config — หาไฟล์ config.php หรือ .env
// ตัวอย่าง config.php
$db_host = "localhost";
$db_name = "myapp_db";       // ชื่อ DB ที่สร้าง
$db_user = "myapp_user";     // Username
$db_pass = "รหัสผ่านที่ตั้ง"; // Password
Save → เสร็จ!
4
Import Database
Databases → Database ที่สร้าง → "Open in phpMyAdmin" → แท็บ "Import" → เลือกไฟล์ .sql → Go
เห็น "Import successfully finished" → เสร็จ! ✅
เช็ค Structure → ดูว่ามี Tables ครบ (users, products, orders ฯลฯ)

🔧 แก้ไขปัญหาที่พบบ่อย

❌ หน้าขาว / Blank Screen
✅ วิธีแก้ — เปิด Error Reporting
<!-- เพิ่มบรรทัดนี้ด้านบนสุดของ index.php -->
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

Refresh เว็บ → จะเห็น Error Message → แก้ไขตาม Error

❌ Database Connection Error
✅ วิธีแก้

เช็ค config.php ว่า db_host = localhost, db_name/user/pass ตรงกับที่สร้างใน Plesk ไหม

📋 Laravel Framework — ขั้นตอนพิเศษ
ถ้า AI สร้าง Laravel มาให้
  1. อัพโหลดทั้งโปรเจค
  2. Hosting Settings → Document root: httpdocs/public ← สำคัญ!
  3. แก้ .env ใส่ DB info
  4. Run: php artisan key:generate, migrate, storage:link
  5. Permission: storage/ + bootstrap/cache/ → 755

🎯 สรุปกรณีที่ 5 — PHP

  • อัพโหลด: ไฟล์ PHP → httpdocs
  • Database: สร้าง DB + User ใน Plesk
  • Config: แก้ config.php ให้ข้อมูล DB ถูก 100%
  • Import: นำ .sql เข้า Database

⚙️ ส่วนที่ 3: การตั้งค่าเพิ่มเติม

SSL, Checklist, Backup — ทำครบเว็บปลอดภัย เสถียร

3.1 ตั้งค่า SSL / HTTPS (Let's Encrypt)

🔒 SSL คืออะไร? ทำไมต้องมี?

SSL = ใบรับรอง "ความปลอดภัย" — ทำให้เว็บมี 🔒 HTTPS

ไม่มี SSLมี SSL
URLhttp://... ⚠️ Not Securehttps://... 🔒 Secure
ลูกค้ากลัว ไม่กล้าซื้อมั่นใจ สั่งซื้อเลย!
Googleคะแนน SEO น้อยSEO ดีขึ้น

🎁 Let's Encrypt = SSL ฟรี!

✅ ฟรี 100% | ✅ ติดตั้งง่าย กดปุ่มเดียว | ✅ ต่ออายุอัตโนมัติ | ✅ Browser ทุกตัวรองรับ

📋 ขั้นตอนการติดตั้ง (5 ขั้นตอน)

1
เข้า SSL/TLS Certificates — Websites & Domains → Domain → "SSL/TLS Certificates"
2
ติดตั้ง Let's Encrypt — คลิก "Get it free" หรือ "Install" → เลือก "Let's Encrypt"
3
กรอกข้อมูล — Email, ติ๊ก Domain หลัก + www ทั้งคู่
4
ติดตั้ง — คลิก "Get it free" → รอ 30–60 วินาที → "SSL certificate successfully installed" ✅
5
เปิด HTTPS Redirect — หาสวิตช์ "Redirect from HTTP to HTTPS" → เปิด → Save
ทำให้ http:// เด้งไป https:// อัตโนมัติ

🧪 ทดสอบ SSL

  • เปิด https://your-domain.com → ต้องเห็น 🔒
  • เปิด http://your-domain.com → ต้องเด้งไป https:// อัตโนมัติ
  • เช็คเพิ่มเติม: https://www.ssllabs.com/ssltest/ → เป้าหมาย Grade A

🔧 แก้ปัญหา SSL

❌ Mixed Content Warning (🔒 + ⚠️)
✅ วิธีแก้

หาไฟล์ http:// ในโค้ด → เปลี่ยนเป็น https:// หรือใช้ // (Protocol-relative)

❌ Certificate Expired
✅ วิธีแก้

Plesk → SSL/TLS → ลบ Certificate เก่า → ติดตั้ง Let's Encrypt ใหม่ → เปิด Auto-renewal
Let's Encrypt หมดอายุทุก 90 วัน, Plesk ต่ออายุให้อัตโนมัติ

❌ Domain Validation Failed
✅ วิธีแก้

เช็ค DNS ที่ https://dnschecker.org ว่า Domain ชี้ IP ถูกหรือยัง → อาจต้องรอ DNS Propagate 4–24 ชม.

3.2 Checklist หลัง Deploy

ใช้ Checklist นี้ทุกครั้งหลัง Deploy เสร็จ! เป้าหมาย ผ่าน 90% ขึ้นไป = พร้อมเปิดตัว

📄 A. เนื้อหาและการทำงาน

  • เว็บเปิดได้ที่ Domain หลัก + www
  • หน้าทั้งหมดแสดงปกติ
  • เนื้อหาถูกต้อง รูปแสดงครบ Logo ถูก
  • ลิงก์ Navigation, CTA, Social, Footer ทำงาน

🎨 B. การออกแบบและ UX

  • ดูสวยบน Desktop
  • ดูสวยบน Mobile 📱 (สำคัญมาก!)
  • ดูสวยบน Tablet (ถ้าเว็บธุรกิจ)

⚡ C. Performance

  • เว็บโหลดเร็ว (< 3 วินาที) — ทดสอบที่ pagespeed.web.dev เป้า > 80
  • รูปบีบอัดแล้ว (< 200KB/รูป)
  • ไม่มี JS Error (เปิด Console F12)

🔒 D. ความปลอดภัย

  • มี SSL/HTTPS 🔒
  • Redirect HTTP → HTTPS
  • ไม่มี Mixed Content
  • Form มี CSRF Protection (ถ้ามี Form)

📱 E. ฟังก์ชันการทำงาน

  • Form ส่งได้ (Contact, Newsletter)
  • ระบบ Login/Logout/Register ทำงาน (ถ้ามี)
  • Database บันทึก/แก้ไข/ลบ ได้

🔍 F. SEO & Marketing

  • Title แต่ละหน้าไม่เหมือนกัน
  • Meta Description มีครบ
  • Favicon แสดงCorrectly
  • Google Analytics ติดตั้ง (ถ้าต้องการ)

🌐 G. Browser & อุปกรণ์

  • Chrome
  • Safari (สำคัญ iPhone)
  • Firefox
  • Edge

📊 H. เครื่องมือทดสอบออนไลน์

เครื่องมือURLวัดอะไร
Google PageSpeedpagespeed.web.devความเร็ว
GTmetrixgtmetrix.comPerformance
Mobile-Friendly Testsearch.google.com/test/mobile-friendlyMobile
SSL Checkerssllabs.com/ssltestSSL Grade
Broken Link Checkerbrokenlinkcheck.comลิงก์เสีย

📝 I. เอกสาร

  • เก็บข้อมูล Login ไว้ปลอดภัย (Plesk, WP, DB, FTP)
  • มี Backup ไฟล์ต้นฉบับ
  • มีเอกสาร คู่มือ สำหรับลูกค้า (ถ้าจ้างคนทำ)

3.3 การ Backup และ Restore

💾 ทำไมต้อง Backup?

✅ มี Backup
ปัญหาเกิด → กด Restore
→ กลับมาใน 10 นาที! ✨
❌ ไม่มี Backup
ปัญหาเกิด → ต้องทำใหม่ทั้งหมด
→ เสียเวลาหลายวัน 😭
💡 กฎทอง
Backup ก่อนทำอะไรก็ตามที่สำคัญ!

📦 สิ่งที่ต้อง Backup

  1. ไฟล์เว็บไซต์ — ทุกอย่างใน httpdocs
  2. ฐานข้อมูล (Database) — ตาราง + ข้อมูล
  3. การตั้งค่า — .htaccess, config.php, .env

🔧 วิธี Backup

วิธีที่ 1: Backup Manager (แนะนำ!)
1
Websites & Domains → "Backup Manager"
2
คลิก "Back Up" → เลือก: ☑️ Configuration, ☑️ Content (Files + DB)
3
เลือกที่เก็บ: Server / FTP / Cloud (แนะนำ!)
4
ตั้งชื่อ เช่น mysite-backup-2025-02-03 → OK → รอ 2–10 นาที ✅
วิธีที่ 2: File Manager (Manual — แค่ Files)

เข้า File Manager → เลือก httpdocs → คลิกขวา → Archive → Download .zip

วิธีที่ 3: phpMyAdmin (Manual — แค่ Database)

phpMyAdmin → แท็บ "Export" → Quick → Format: SQL → Go → บันทึก .sql ไว้

🔄 วิธี Restore

Backup Manager: เลือก Backup → "Restore" → ☑️ Files + Database → OK → รอ 2–10 นาที ✅

File Manager: Upload Backup.zip → Extract → Overwrite existing files → OK

phpMyAdmin: SQL → DROP DATABASE myapp_db; CREATE DATABASE myapp_db; → Import ไฟล์ .sql

⏰ Auto Backup

Backup Manager → "Schedule" → Frequency: Daily/Weekly → Time: 3:00 AM → Retention: 7 วัน → OK ✅

💡 กฎ 3-2-1
3 สำเนา (Original + 2 Backup) | 2 ที่เก็บต่างกัน | 1 ที่เก็บนอกสถานที่ (Cloud)

🎯 สรุปส่วนที่ 3

  • SSL: ติดตั้ง Let's Encrypt ฟรี + เปิด Redirect
  • Checklist: เช็ค 9 หมวด (A–I) — ผ่าน 90% = เปิดตัว!
  • Backup: Files + DB + ตั้ง Auto Backup + กฎ 3-2-1

🔧 ส่วนที่ 4: แก้ไขปัญหาทั่วไป (Troubleshooting)

4 กลุ่มปัญหาหลัก — แก้ทีละขั้น อย่าตื่นตระหนก

4.1 ปัญหาเกี่ยวกับการเข้าถึงเว็บ

❌ 404 Not Found

หมายความว่า: Server หาไฟล์ที่ขอไม่เจอ

สาเหตุที่พบบ่อย & วิธีแก้
  1. ไม่มี index.html/index.php → เч็ค httpdocs, Rename ไฟล์ หรือย้ายออกมา
  2. URL สะกดผิด → เช็ค Typo
  3. ลิงก์เสีย → แก้ลิงก์ ใช้ brokenlinkcheck.com
  4. Clean URL ไม่ทำงาน → สร้าง .htaccess พร้อม RewriteEngine

❌ 500 Internal Server Error

หมายความว่า: Server เกิด Error ภายใน (เหมือนเครื่องจักรพัง)

สาเหตุหลัก
  1. Syntax Error ใน PHP → ดู Error Log (Plesk → Logs → Error Log) → แก้โค้ดตาม Error
  2. .htaccess ผิด → เปลี่ยนชื่อเป็น .htaccess.bak → Refresh → ถ้าใช้ได้ = ปัญหาอยู่ที่ .htaccess
  3. PHP Memory เต็ม → เพิ่มใน .htaccess: php_value memory_limit 256M
  4. Permission ผิด → โฟลเดอร์ = 755, ไฟล์ = 644
  5. PHP Version ไม่รองรับ → Plesk → PHP Settings → เลือก Version ที่เหมาะ

❌ 403 Forbidden

หมายความว่า: Server ไม่ให้เข้าถึง (เหมือนป้าย "ห้ามเข้า")

  • เปลี่ยน Permission → 755 (โฟลเดอร์), 644 (ไฟล์)
  • เช็ค .htaccess ว่ามี Deny from all ไหม → ลบออก
  • เช็คว่ามี index.html / index.php หรือไม่

❌ Domain ไม่ชี้ (DNS_PROBE_FINISHED_NXDOMAIN)

หมายความว่า: Domain ยังไม่ชี้มาที่ Server

  1. DNS ยังไม่ Propagate → รอ 4–48 ชั่วโมง เช็คที่ dnschecker.org
  2. Nameserver ผิด → เข้าเว็บซื้อ Domain → เปลี่ยนเป็น ns1/ns2.hostatom.com
  3. A Record ผิด → DNS Settings → เพิ่ม A Record ชี้ IP Server
  4. Domain หมดอายุ → Renew Domain

4.2 ปัญหาเกี่ยวกับ Database

❌ Connection Failed

Access denied for user / Could not connect to database

  • เช็ค config.php: db_host = localhost, db_name/user/pass ตรงกับใน Plesk ไหม
  • เช็คว่า User มี Access หรือยัง
  • ลอง Reset รหัสผ่าน DB User
  • รหัสผ่านมี Special Characters (' " $) → เปลี่ยนใหม่

❌ Import Database ไม่สำเร็จ

Import timed out / SQL Error

  • ไฟล์ .sql ใหญ่เกิน → เพิ่ม Timeout: max_execution_time = 600 หรือใช้ SSH
  • Character Encoding ผิด → เปิดใน Notepad++ → Convert to UTF-8 → Import ใหม่
  • SQL Syntax Error → อ่าน Error → หาบรรทัดผิด → แก้

❌ Database Size เกินขีดจำกัด

Disk quota exceeded

  • ลบข้อมูลไม่จำเป็น (Logs, Cache, Temporary)
  • Optimize: OPTIMIZE TABLE table_name;
  • Upgrade แพ็คเกจ Hosting

4.3 ปัญหาเกี่ยวกับ Node.js

❌ Application Error / Cannot Start

Application failed to start / is not running

  • เช็ค Node.js Settings → Application startup file ถูกหรือเปล่า
  • เช็คโค้ดใช้ process.env.PORT หรือไม่
  • ดู Logs → อ่าน Error → แก้ตาม Error

❌ Module Not Found

Cannot find module 'express'

  • Node.js Settings → คลิก "NPM Install" → รอ → Restart App
  • เช็ค package.json มี dependencies ครบไหม

❌ Port Conflict / EADDRINUSE

listen EADDRINUSE: address already in use :::3000

// ต้องมีบรรทัดนี้!
const PORT = process.env.PORT || 3000;
app.listen(PORT);

Save → Restart App

4.4 ปัญหาเกี่ยวกับ WordPress / Elementor

❌ Template Import ไม่สำเร็จ

File type not allowed / Upload failed

  • เปิด Template Upload: Elementor → Settings → Advanced → Enable = Yes → Save
  • เพิ่มขนาดอัพโหลด: php_value upload_max_filesize 64M ใน .htaccess

❌ หน้าว่างเปล่าหลัง Import

  • เปิด Container: Elementor → Settings → Features → ☑️ Flexbox + Grid
  • Regenerate CSS: Elementor → Tools → Regenerate Files
  • Clear Cache → Refresh (Ctrl+F5)

❌ รูปภาพไม่แสดง

  • Media → Add New → อัพโหลดรูปใหม่
  • Edit with Elementor → คลิกรูป → Choose Image → เลือกรูปใหม่
  • ติดตั้ง "Regenerate Thumbnails" plugin → Tools → Regenerate All

📊 ตารางสรุป — แก้ปัญหาเร็ว

ปัญหาวิธีแก้ด่วน
404เช็ค index, ย้ายให้อยู่ httpdocs
500ดู Error Log, แก้โค้ด/Permission
403Permission = 755
Domain ไม่ชี้รอ DNS Propagate (4–24 ชม.)
DB Connectionเช็ค config.php ให้ถูก
Import DB ล้มแบ่งไฟล์, เพิ่ม Timeout
Node.js ไม่ Startดู Logs, NPM Install
Module Not FoundNPM Install → Restart
Template Import ล้มเปิด Template Upload
หน้าว่าง Elementorเปิด Container, Regenerate CSS

💡 เทคนิคแก้ปัญหาทั่วไป

  1. อ่าน Error Message ให้ดี — ไม่ต้องตื่นตระหนก
  2. เช็ค Logs เสมอ — Plesk Logs, Console (F12), Node.js Logs
  3. ลอง Disable Plugin — ปิดทีละอัน ดูตัวไหนเป็นสาเหตุ
  4. Backup ก่อนแก้ไข — แก้ผิด → Restore ได้เลย
  5. ค้นหาใน Google — Copy Error → Paste → มักมีคนเจอเดียวกัน
  6. ถาม Community — Stack Overflow, Facebook Groups, Plesk Forum
  7. ติดต่อ Support — Hostatom Support + แนบ Screenshot

🎯 สรุปส่วนที่ 4 — Troubleshooting

  • อ่านError → เข้าใจว่าเกิดอะไร
  • ดู Logs → หาสาเหตุ
  • Google → หาวิธีแก้
  • ลอง Fix → แก้ทีละอย่าง
  • ทดสอบ → เช็คว่าใช้ได้หรือยัง

🎉 จบครบทุกส่วนแล้ว! ยิ่งลอง ยิ่งเก่ง!

คู่มือ Deploy เว็บไซต์จาก AI • 2025