คู่มือ Deploy เว็บไซต์จาก AI
ขึ้นเว็บจริงได้ง่าย ๆ
ฉบับมือใหม่ — เข้าใจง่าย ไม่ซับซ้อน
📚 ส่วนที่ 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 บาท |
ถ้าใช้ Node.js → เลือก Pro ขึ้นไป
🛒 ขั้นตอนการสมัครใช้งาน (ง่ายมาก!)
https://hostatom.com → คลิก "Web Hosting" หรือ "สั่งซื้อ"ทางที่ 1: ใช้ Domain ที่มีอยู่แล้ว → เลือก "I will use my existing domain" → พิมพ์ Domain
ทางที่ 2: ซื้อ Domain ใหม่ → เลือก "Register a new domain" → ค้นหาชื่อที่ต้องการ
🌐 การตั้งค่า Domain (ถ้าใช้ Domain ที่มีอยู่แล้ว)
กรณีซื้อ Domain จากที่อื่น (เช่น GoDaddy, Niagahoster) ต้องตั้งค่า Nameserver ให้ชี้มาที่ Hostatom
ns1.hostatom.com
ns2.hostatom.com
เช็คได้ที่
https://whatsmydns.net
1.3 เข้าสู่ระบบ Plesk ครั้งแรก
🔑 ขั้นตอนการ Login (3 ขั้นตอน)
https://your-domain.com:8443
หรือ
https://123.456.78.90:8443
🗺️ ทำความเข้าใจหน้า Dashboard
Dashboard = ห้องนั่งเล่นของบ้าน เห็นภาพรวมทั้งหมด
| เมนู | ชื่อ | ทำอะไร |
|---|---|---|
| 🌐 | Websites & Domains | จัดการเว็บไซต์ — ห้องหลัก |
| 📁 | Files | จัดการไฟล์ — ตู้เก็บของ |
| 💾 | Databases | จัดการฐานข้อมูล — ตู้เซฟ |
| 📧 | จัดการอีเมล | |
| 📊 | Statistics | ดูสถิติเว็บ |
- Websites & Domains = 80% ใช้ที่นี่
- Files = อัพโหลดไฟล์
- Databases = สำหรับเว็บที่มี DB
1.4 การจัดการ Domain
➕ เพิ่ม 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
📤 ขั้นตอนการ Deploy (5 ขั้นตอน)
httpdocs (บ่อยสุด) หรือ public_html. อย่าแตะ cgi-bin, logs, confวิธีที่ 1: Upload ทีละไฟล์ (เหมาะกับไฟล์น้อย)
วิธีที่ 2 (แนะนำ!): บีบอัดเป็น .zip → Upload → Extract Files → ลบ .zip
httpdocs/
├── index.html ← ตรงนี้เลย!
├── style.css
└── script.jshttpdocs/
└── myproject/ ← ซ้อนอีกชั้น!
└── index.htmlhttps://your-domain.com ถ้าเห็นเว็บ = สำเร็จ!🔧 แก้ไขปัญหาที่พบบ่อย
สาเหตุ: ไม่มีไฟล์ index.html ใน httpdocs หรือชื่อผิด
- เช็คว่ามี
index.htmlหรือไม่ - ถ้าชื่ออื่น → Rename เป็น
index.html - ถ้าอยู่ในโฟลเดอร์ซ้อน → ย้ายออกมา
สาเหตุ: Path (ที่อยู่ไฟล์) ในโค้ด HTML ผิด
<link href="/assets/style.css"><link href="./style.css">สาเหตุ: Path รูปผิด หรือไฟล์รูปไม่มีจริง
<img src="/assets/images/logo.png"><img src="./images/logo.png">คลิกขวา 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
Node.js = อัพโหลด → ต้องสั่ง "เปิดร้าน" ด้วย!
📤 ขั้นตอนการ Deploy (7 ขั้นตอน)
ลบโฟลเดอร์
node_modules ก่อน (ลดขนาด 100–500 MB!) → บีบอัดเป็น .zip → Upload เข้า httpdocs → Extract → ลบ .zipWebsites & Domains → Domain → หา "Node.js" (ใน Additional Services) → คลิก "Enable Node.js"
| ช่อง | กรอกอะไร | ตัวอย่าง |
|---|---|---|
| Application mode | โหมดใช้งานจริง | Production |
| Application root | ที่อยู่โปรเจค | httpdocs |
| Application URL | Domain | https://mywebsite.com |
| Application startup file | ไฟล์เริ่มต้น | server.js |
| Node.js version | เวอร์ชัน | 18.x หรือ 20.x |
package.json หาบรรทัด "main" หรือ "scripts": { "start": "node server.js" }ในหน้า Node.js Settings → หาปุ่ม "NPM Install" → คลิก → รอ 30–120 วินาที → เสร็จ ✅
เหมือนรหัสลับของร้าน เช่น PORT, DATABASE_URL, API_KEY
Node.js Settings → "Environment Variables" → คลิก "+" → กรอก Name & Value
.env หรือในโค้ด process.env.API_KEYapp.listen(3000, () => {
console.log('port 3000');
});const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`port ${PORT}`);
});คลิก "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}`);
});
🔧 แก้ไขปัญหาที่พบบ่อย
ดู 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
sale-page-template.json — ไฟล์ JSON เก็บ "สูตร" การออกแบบ เอาไปใส่ Elementor จะได้หน้าเว็บสำเร็จรูป!
📋 3 ส่วนหลัก
🏗️ ส่วนที่ 1: เตรียม WordPress + Elementor
กรอก: Site name, Admin username (อย่าใช้
admin), Password แข็งแรง, Emailรอ 2–5 นาที → เห็น "Installation Complete" ✅
https://your-domain.com/wp-adminElementor → Settings → แท็บ "Advanced" → หา "Enable Elementor Template Upload" → เปลี่ยนเป็น Yes → Save Changes
📥 ส่วนที่ 2: Import Template
วิธีที่ 1: Import ผ่าน Dashboard (แนะนำมือใหม่!)
.jsonวิธีที่ 2: Import ผ่าน Editor
ถ้าถาม "Apply global settings?" → คลิก "Don't Apply"
🎨 ส่วนที่ 3: ปรับแต่งและเผยแพร่
- แก้ Text: คลิกที่ข้อความ → พิมพ์ใหม่ (บันทึกอัตโนมัติ)
- แก้รูป: คลิกรูป → Choose Image → Upload Files → เลือกรูป
- แก้ Button: คลิกปุ่ม → แก้ Text + Link
- แก้สี: คลิก Element → Style → เลือกสีใหม่
📱 เช็ค Mobile: ล่างซ้าย → 📱 Mobile → ดูว่าสวยไหม
🎬 Publish: Preview → ตรวจสอบ → คลิก "Publish" → เว็บเผยแพร่แล้ว! 🎉
🔧 แก้ไขปัญหาที่พบบ่อย
Elementor → Settings → Advanced → เปิด "Enable Elementor Template Upload" = Yes → Save → ลอง Upload ใหม่
- Elementor → Settings → Features → เปิด Flexbox Container + Grid Container
- Elementor → Tools → "Regenerate CSS" → คลิก "Regenerate Files"
- 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, เว็บที่ต้องเร็ว
ต้อง 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/ มี index.html + static/css/ js/Vue → โฟลเดอร์
dist/ มี index.html + css/ js/ข้างในมีแค่ HTML/CSS/JS ธรรมดา — Deploy ได้เลย!
📤 Upload ไปที่ Plesk
build/ (React) หรือ dist/ (Vue) → เลือกไฟล์ ภายใน (ไม่ใช่โฟลเดอร์เอง!) → Compressindex.html ต้องอยู่ใน httpdocs โดยตรงhttps://your-domain.com 🎉🔧 แก้ไขปัญหาที่พบบ่อย
React: เปิด package.json → เพิ่ม "homepage": "." → Build ใหม่ → Upload ทับ
Vue: เปิด vue.config.js → ใส่ publicPath: './' → Build ใหม่
วิธีที่ 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 ที่ 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
🏗️ 4 ขั้นตอนหลัก
บีบอัด → Upload เข้า httpdocs → Extract → เช็ค
index.php อยู่ตำแหน่งถูกPermission: โฟลเดอร์ uploads/, cache/ → ตั้ง 777 (เฉพาะที่จำเป็น!)
Websites & Domains → Domain → "Databases" → "Add Database"
กรอก Database name → OK
แล้ว "Add User" → กรอก Username + Password
localhostconfig.php หรือ .env
// ตัวอย่าง config.php
$db_host = "localhost";
$db_name = "myapp_db"; // ชื่อ DB ที่สร้าง
$db_user = "myapp_user"; // Username
$db_pass = "รหัสผ่านที่ตั้ง"; // Password
Save → เสร็จ!
Databases → Database ที่สร้าง → "Open in phpMyAdmin" → แท็บ "Import" → เลือกไฟล์
.sql → Goเห็น "Import successfully finished" → เสร็จ! ✅
เช็ค Structure → ดูว่ามี Tables ครบ (users, products, orders ฯลฯ)
🔧 แก้ไขปัญหาที่พบบ่อย
<!-- เพิ่มบรรทัดนี้ด้านบนสุดของ index.php -->
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
Refresh เว็บ → จะเห็น Error Message → แก้ไขตาม Error
เช็ค config.php ว่า db_host = localhost, db_name/user/pass ตรงกับที่สร้างใน Plesk ไหม
📋 Laravel Framework — ขั้นตอนพิเศษ
- อัพโหลดทั้งโปรเจค
- Hosting Settings → Document root:
httpdocs/public← สำคัญ! - แก้
.envใส่ DB info - Run:
php artisan key:generate,migrate,storage:link - 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 | |
|---|---|---|
| URL | http://... ⚠️ Not Secure | https://... 🔒 Secure |
| ลูกค้า | กลัว ไม่กล้าซื้อ | มั่นใจ สั่งซื้อเลย! |
| คะแนน SEO น้อย | SEO ดีขึ้น |
🎁 Let's Encrypt = SSL ฟรี!
✅ ฟรี 100% | ✅ ติดตั้งง่าย กดปุ่มเดียว | ✅ ต่ออายุอัตโนมัติ | ✅ Browser ทุกตัวรองรับ
📋 ขั้นตอนการติดตั้ง (5 ขั้นตอน)
ทำให้ http:// เด้งไป https:// อัตโนมัติ
🧪 ทดสอบ SSL
- เปิด
https://your-domain.com→ ต้องเห็น 🔒 - เปิด
http://your-domain.com→ ต้องเด้งไป https:// อัตโนมัติ - เช็คเพิ่มเติม:
https://www.ssllabs.com/ssltest/→ เป้าหมาย Grade A
🔧 แก้ปัญหา SSL
หาไฟล์ http:// ในโค้ด → เปลี่ยนเป็น https:// หรือใช้ // (Protocol-relative)
Plesk → SSL/TLS → ลบ Certificate เก่า → ติดตั้ง Let's Encrypt ใหม่ → เปิด Auto-renewal
Let's Encrypt หมดอายุทุก 90 วัน, Plesk ต่ออายุให้อัตโนมัติ
เช็ค 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 PageSpeed | pagespeed.web.dev | ความเร็ว |
| GTmetrix | gtmetrix.com | Performance |
| Mobile-Friendly Test | search.google.com/test/mobile-friendly | Mobile |
| SSL Checker | ssllabs.com/ssltest | SSL Grade |
| Broken Link Checker | brokenlinkcheck.com | ลิงก์เสีย |
📝 I. เอกสาร
- เก็บข้อมูล Login ไว้ปลอดภัย (Plesk, WP, DB, FTP)
- มี Backup ไฟล์ต้นฉบับ
- มีเอกสาร คู่มือ สำหรับลูกค้า (ถ้าจ้างคนทำ)
3.3 การ Backup และ Restore
💾 ทำไมต้อง Backup?
ปัญหาเกิด → กด Restore
→ กลับมาใน 10 นาที! ✨ปัญหาเกิด → ต้องทำใหม่ทั้งหมด
→ เสียเวลาหลายวัน 😭📦 สิ่งที่ต้อง Backup
- ไฟล์เว็บไซต์ — ทุกอย่างใน httpdocs
- ฐานข้อมูล (Database) — ตาราง + ข้อมูล
- การตั้งค่า — .htaccess, config.php, .env
🔧 วิธี Backup
วิธีที่ 1: Backup Manager (แนะนำ!)
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
- 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 หาไฟล์ที่ขอไม่เจอ
- ไม่มี index.html/index.php → เч็ค httpdocs, Rename ไฟล์ หรือย้ายออกมา
- URL สะกดผิด → เช็ค Typo
- ลิงก์เสีย → แก้ลิงก์ ใช้
brokenlinkcheck.com - Clean URL ไม่ทำงาน → สร้าง
.htaccessพร้อม RewriteEngine
❌ 500 Internal Server Error
หมายความว่า: Server เกิด Error ภายใน (เหมือนเครื่องจักรพัง)
- Syntax Error ใน PHP → ดู Error Log (Plesk → Logs → Error Log) → แก้โค้ดตาม Error
- .htaccess ผิด → เปลี่ยนชื่อเป็น
.htaccess.bak→ Refresh → ถ้าใช้ได้ = ปัญหาอยู่ที่ .htaccess - PHP Memory เต็ม → เพิ่มใน .htaccess:
php_value memory_limit 256M - Permission ผิด → โฟลเดอร์ = 755, ไฟล์ = 644
- 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
- DNS ยังไม่ Propagate → รอ 4–48 ชั่วโมง เช็คที่
dnschecker.org - Nameserver ผิด → เข้าเว็บซื้อ Domain → เปลี่ยนเป็น ns1/ns2.hostatom.com
- A Record ผิด → DNS Settings → เพิ่ม A Record ชี้ IP Server
- 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 |
| 403 | Permission = 755 |
| Domain ไม่ชี้ | รอ DNS Propagate (4–24 ชม.) |
| DB Connection | เช็ค config.php ให้ถูก |
| Import DB ล้ม | แบ่งไฟล์, เพิ่ม Timeout |
| Node.js ไม่ Start | ดู Logs, NPM Install |
| Module Not Found | NPM Install → Restart |
| Template Import ล้ม | เปิด Template Upload |
| หน้าว่าง Elementor | เปิด Container, Regenerate CSS |
💡 เทคนิคแก้ปัญหาทั่วไป
- อ่าน Error Message ให้ดี — ไม่ต้องตื่นตระหนก
- เช็ค Logs เสมอ — Plesk Logs, Console (F12), Node.js Logs
- ลอง Disable Plugin — ปิดทีละอัน ดูตัวไหนเป็นสาเหตุ
- Backup ก่อนแก้ไข — แก้ผิด → Restore ได้เลย
- ค้นหาใน Google — Copy Error → Paste → มักมีคนเจอเดียวกัน
- ถาม Community — Stack Overflow, Facebook Groups, Plesk Forum
- ติดต่อ Support — Hostatom Support + แนบ Screenshot
🎯 สรุปส่วนที่ 4 — Troubleshooting
- อ่านError → เข้าใจว่าเกิดอะไร
- ดู Logs → หาสาเหตุ
- Google → หาวิธีแก้
- ลอง Fix → แก้ทีละอย่าง
- ทดสอบ → เช็คว่าใช้ได้หรือยัง
🎉 จบครบทุกส่วนแล้ว! ยิ่งลอง ยิ่งเก่ง!
คู่มือ Deploy เว็บไซต์จาก AI • 2025