Skip to main content

เนื้อหาภาษาไทย / Thai content

System guide Content reviewed

การ Deploy เบื้องต้น: Deploy ไปยัง Shared Hosting

บทความนี้อธิบายขั้นตอนการ Deploy โปรเจกต์ PHP ไปยัง Shared Hosting ซึ่งเป็นทางเลือกที่นิยมสำหรับผู้เริ่มต้นเนื่องจากราคาถูกและใช้งานง่าย โดยครอบคลุมตั้งแต่การเต...

การ Deploy เบื้องต้น: Deploy ไปยัง Shared Hosting

หลังจากที่เราได้เรียนรู้การจัดการ Environment Variables ด้วยไฟล์ .env ในบทที่แล้ว ในบทนี้ เราจะมาเรียนรู้วิธีการนำโปรเจกต์ PHP ของเราขึ้นไปใช้งานจริงบน Shared Hosting ซึ่งเป็น Hosting ที่ได้รับความนิยมเนื่องจากราคาถูกและใช้งานง่าย เหมาะสำหรับผู้เริ่มต้น

Shared Hosting คือการที่เราแชร์ทรัพยากรของ Server กับผู้ใช้งานรายอื่น ๆ ซึ่งหมายความว่าเราอาจจะไม่สามารถควบคุม Server ได้อย่างเต็มที่ แต่ก็เพียงพอสำหรับการใช้งานเว็บไซต์ขนาดเล็กถึงขนาดกลาง

ขั้นตอนการ Deploy ไปยัง Shared Hosting

การ Deploy โปรเจกต์ PHP ไปยัง Shared Hosting มีขั้นตอนหลัก ๆ ดังนี้:

  1. การเตรียมไฟล์
  2. การอัพโหลดไฟล์
  3. การตั้งค่า Database

1. การเตรียมไฟล์

ก่อนที่เราจะทำการอัพโหลดไฟล์ไปยัง Shared Hosting เราต้องทำการเตรียมไฟล์ให้พร้อมเสียก่อน โดยมีสิ่งที่ต้องพิจารณาดังนี้:

  • ไฟล์ทั้งหมดของโปรเจกต์: ตรวจสอบให้แน่ใจว่าเรามีไฟล์ Source Code ทั้งหมดของโปรเจกต์ PHP ของเรา
  • ไฟล์ .env: ไฟล์ .env ที่เราสร้างไว้ในบทที่แล้ว จะต้องถูกอัพโหลดขึ้นไปด้วย (แต่ต้องระวังเรื่องความปลอดภัย!)
  • ไฟล์ composer.json และ composer.lock: ถ้าโปรเจกต์ของเราใช้ Composer ในการจัดการ Dependencies เราจะต้องมีไฟล์ทั้งสองนี้
  • ไฟล์อื่นๆ ที่จำเป็น: เช่น ไฟล์ .htaccess สำหรับการกำหนด URL Rewriting หรือไฟล์ Configuration อื่นๆ

กรณีใช้งานจริง: สมมติว่าเรามีโปรเจกต์ PHP ที่ใช้ Laravel ซึ่งมีโครงสร้างไฟล์ประมาณนี้:

my-project/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── vendor/
├── .env
├── composer.json
├── composer.lock
├── artisan
└── ...

เราจะต้องอัพโหลดโฟลเดอร์ my-project ทั้งหมดขึ้นไปยัง Server ของ Shared Hosting

2. การอัพโหลดไฟล์

การอัพโหลดไฟล์ไปยัง Shared Hosting สามารถทำได้หลายวิธี แต่วิธีที่นิยมที่สุดคือการใช้ FTP Client (File Transfer Protocol Client) เช่น FileZilla, Cyberduck หรือ WinSCP

ขั้นตอนการอัพโหลดไฟล์ด้วย FTP Client:

  1. ดาวน์โหลดและติดตั้ง FTP Client: เลือก FTP Client ที่คุณถนัด แล้วทำการดาวน์โหลดและติดตั้ง
  2. เชื่อมต่อกับ Server: เปิด FTP Client แล้วกรอกข้อมูลการเชื่อมต่อ (Host, Username, Password, Port) ที่ได้รับจากผู้ให้บริการ Shared Hosting
  3. นำทางไปยัง Root Directory: เมื่อเชื่อมต่อสำเร็จ ให้มองหา Root Directory ของเว็บไซต์ของคุณ โดยทั่วไปแล้วจะเป็น public_html, www หรือชื่ออื่น ๆ ที่ผู้ให้บริการกำหนด
  4. อัพโหลดไฟล์: ลากและวางไฟล์ทั้งหมดจากเครื่องคอมพิวเตอร์ของคุณไปยัง Root Directory บน Server

ข้อผิดพลาดที่พบบ่อย:

  • การใส่ข้อมูลการเชื่อมต่อผิด: ตรวจสอบให้แน่ใจว่าคุณใส่ Host, Username, Password และ Port ถูกต้อง
  • การอัพโหลดไฟล์ผิด Directory: ตรวจสอบให้แน่ใจว่าคุณอัพโหลดไฟล์ไปยัง Root Directory ที่ถูกต้อง
  • Permission ของไฟล์ไม่ถูกต้อง: บางครั้ง Server ต้องการ Permission ที่เฉพาะเจาะจงสำหรับไฟล์และโฟลเดอร์ ลองเปลี่ยน Permission เป็น 755 สำหรับโฟลเดอร์ และ 644 สำหรับไฟล์

กรณีใช้งานจริง: เราใช้ FileZilla เชื่อมต่อกับ Server ของ Shared Hosting แล้วอัพโหลดโฟลเดอร์ my-project ทั้งหมดไปยัง public_html

ข้อควรระวังเรื่องไฟล์ .env: เนื่องจากไฟล์ .env มีข้อมูลสำคัญ เช่น รหัสผ่าน Database, API Keys ดังนั้นเราจึงควรระมัดระวังในการอัพโหลดไฟล์นี้ขึ้น Server

  • วิธีที่ 1: อัพโหลดไฟล์ .env ขึ้นไปปกติ แต่ตั้งค่า Permission ให้เป็น 400 หรือ 600 เพื่อป้องกันไม่ให้ผู้อื่นเข้าถึงได้
  • วิธีที่ 2: เปลี่ยนชื่อไฟล์ .env เป็นชื่ออื่น เช่น .env.example แล้วอัพโหลดขึ้นไป จากนั้นให้ SSH เข้าไปใน Server แล้วทำการเปลี่ยนชื่อกลับเป็น .env และตั้งค่า Permission ให้เหมาะสม (วิธีนี้ปลอดภัยกว่า)
  • วิธีที่ 3: (ไม่แนะนำ) ใส่ค่า Environment Variables โดยตรงในไฟล์ Configuration ของ PHP (เช่น config/database.php ใน Laravel) แต่วิธีนี้ไม่ปลอดภัยและไม่ยืดหยุ่น

3. การตั้งค่า Database

หลังจากที่เราอัพโหลดไฟล์ขึ้น Server แล้ว ขั้นตอนต่อไปคือการตั้งค่า Database ให้โปรเจกต์ของเรา

ขั้นตอนการตั้งค่า Database:

  1. สร้าง Database: เข้าสู่ Control Panel ของ Shared Hosting (เช่น cPanel, Plesk) แล้วมองหาเมนูสำหรับจัดการ Database (เช่น MySQL Databases, phpMyAdmin) จากนั้นทำการสร้าง Database ใหม่
  2. สร้าง User และให้สิทธิ์: สร้าง User สำหรับเข้าถึง Database แล้วให้สิทธิ์ User นั้นในการอ่าน เขียน และแก้ไข Database ที่เราสร้างไว้
  3. แก้ไขไฟล์ .env: แก้ไขไฟล์ .env บน Server ให้มีข้อมูล Database ที่ถูกต้อง (DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD)
  4. Import Database (ถ้ามี): ถ้าเรามีข้อมูล Database อยู่แล้ว ให้ทำการ Import ข้อมูลนั้นเข้าไปใน Database ที่เราสร้างใหม่

กรณีใช้งานจริง:

  • เราเข้าสู่ cPanel ของ Shared Hosting แล้วสร้าง Database ชื่อ my_project_db
  • เราสร้าง User ชื่อ my_project_user แล้วให้สิทธิ์ User นั้นในการเข้าถึง Database my_project_db
  • เราแก้ไขไฟล์ .env บน Server ดังนี้:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_project_db
DB_USERNAME=my_project_user
DB_PASSWORD=your_password
  • ถ้าเรามีไฟล์ database.sql ที่เป็น Backup ของ Database เดิม เราจะใช้ phpMyAdmin ในการ Import ไฟล์นั้นเข้าไปใน Database my_project_db

ข้อผิดพลาดที่พบบ่อย:

  • ข้อมูล Database ในไฟล์ .env ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าข้อมูล DB_HOST, DB_DATABASE, DB_USERNAME และ DB_PASSWORD ถูกต้อง
  • Database Server ไม่สามารถเข้าถึงได้: บางครั้ง Firewall ของ Server อาจจะบล็อกการเข้าถึง Database Server ลองตรวจสอบ Firewall หรือติดต่อผู้ให้บริการ
  • Permission ของ User ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่า User ที่เราสร้างมีสิทธิ์ในการเข้าถึง Database ที่เราต้องการ

สรุป

ในบทนี้ เราได้เรียนรู้วิธีการ Deploy โปรเจกต์ PHP ไปยัง Shared Hosting ซึ่งเป็น Hosting ที่ได้รับความนิยมเนื่องจากราคาถูกและใช้งานง่าย โดยเราได้ครอบคลุมขั้นตอนการเตรียมไฟล์ การอัพโหลดไฟล์ และการตั้งค่า Database นอกจากนี้ เรายังได้เรียนรู้ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

ในบทต่อไป เราจะมาเรียนรู้การ Deploy ด้วย FTP ซึ่งเป็นเครื่องมือที่ใช้ในการอัพโหลดและดาวน์โหลดไฟล์ระหว่างเครื่องคอมพิวเตอร์ของเรากับ Server

Office.in.th Custom Service

Want to build or adapt a system from this structure?

Office.in.th designs and develops enterprise web applications, API integrations, and public- and private-sector management systems, with long-term support.

See our software development service