ใช้งาน Terminal ใน cPanel (Web-based Shell)

รัน Command Line บน Shared Hosting ได้ทันทีผ่าน Terminal ใน cPanel ไม่ต้องติดตั้ง SSH Client คู่มือครบตั้งแต่เบื้องต้นถึง WP-CLI

ใช้งาน Terminal ใน cPanel Web-based Shell

Terminal ใน cPanel คืออะไร

Terminal ใน cPanel (หรือที่เรียกว่า Web-based Shell) คือเครื่องมือ Command Line Interface ที่ฝังอยู่ในหน้าเว็บของ cPanel โดยตรง ช่วยให้คุณรัน Linux commands บนเซิร์ฟเวอร์ได้ผ่านเบราว์เซอร์ โดยไม่จำเป็นต้องติดตั้ง SSH Client อย่าง PuTTY หรือ Terminal ของ macOS และไม่ต้องแก้ไขกฎ Firewall เพื่อเปิด Port 22

เบื้องหลัง Terminal ใน cPanel ใช้เทคโนโลยี WebSocket เพื่อส่งข้อมูลระหว่างเบราว์เซอร์กับ Shell Session บนเซิร์ฟเวอร์ ทำให้ใช้งานได้แบบ Real-time เหมือน SSH จริงทุกประการ ต่างกันตรงที่ไม่ต้องพึ่ง Port 22 และสามารถเข้าถึงได้จากเครือข่ายใดก็ได้ที่เปิด HTTPS

สำหรับผู้ใช้ Shared Hosting ของ YourThaiHost ฟีเจอร์นี้เปิดใช้งานเป็น Default ช่วยให้สามารถทำงานที่ซับซ้อนได้อย่างรวดเร็ว เช่น แก้ File Permissions, รัน WP-CLI, จัดการ Composer, หรือ Debug ปัญหาที่ File Manager ทำไม่ได้

วิธีเข้า Terminal ใน cPanel ทีละขั้นตอน

การเข้าใช้งาน Terminal ใน cPanel ทำได้ง่ายมาก ใช้เวลาไม่เกิน 30 วินาทีตั้งแต่เปิด cPanel จนได้ Prompt:

  1. เข้า cPanel Dashboard: เปิดเบราว์เซอร์แล้วไปที่ https://yourdomain.com:2083 หรือ URL ที่ YourThaiHost ส่งให้ใน Welcome Email เข้าสู่ระบบด้วย Username และ Password ของ cPanel
  2. ค้นหา Terminal: ในหน้า Dashboard ให้พิมพ์คำว่า Terminal ในช่อง Search ด้านบนขวา จะเห็นไอคอน Terminal ที่มีสัญลักษณ์หน้าจอสีดำ
  3. ยืนยันการใช้งาน: ครั้งแรกที่เปิด Terminal จะมีหน้าต่างแจ้งเตือนด้านความปลอดภัย ให้คลิก "I understand and want to proceed" เพื่อดำเนินการต่อ
  4. รอ Shell โหลด: หน้าต่าง Terminal สีดำจะปรากฏขึ้นพร้อม Command Prompt ในรูปแบบ [username@server ~]$ — แสดงว่าพร้อมรับคำสั่งแล้ว
  5. เริ่มพิมพ์คำสั่ง: พิมพ์คำสั่งที่ต้องการแล้วกด Enter ผลลัพธ์จะแสดงทันทีในหน้าต่างเดียวกัน
ไม่เห็น Terminal ใน cPanel? บางแพ็กเกจ Hosting อาจไม่ได้เปิดใช้งานฟีเจอร์นี้เป็น Default ติดต่อทีม Support ของ YourThaiHost ผ่าน Live Chat หรือ Ticket เพื่อขอ Enable Terminal ให้กับบัญชีของคุณ

คำสั่ง Linux พื้นฐานที่ต้องรู้ก่อนเริ่มต้น

ก่อนจะทำงานขั้นสูง ควรฝึกคำสั่ง Navigation พื้นฐานเหล่านี้ให้ชำนาญก่อน เพราะจะใช้บ่อยมากในทุกงาน:

# ดูว่าตอนนี้อยู่โฟลเดอร์ไหน
pwd
# ผลลัพธ์: /home/username

# แสดงรายการไฟล์ปัจจุบัน (รวมไฟล์ซ่อนและ Permission)
ls -la

# เปลี่ยนไปโฟลเดอร์ public_html
cd public_html

# กลับขึ้นโฟลเดอร์แม่
cd ..

# กลับ Home Directory ทันที
cd ~

# แสดงเนื้อหาไฟล์
cat wp-config.php

# ค้นหาข้อความในไฟล์
grep -r "DB_NAME" .

# แสดงขนาดโฟลเดอร์ทั้งหมด
du -sh */

# ดู 100 บรรทัดสุดท้ายของ Error Log
tail -n 100 error_log

# ค้นหาไฟล์ที่มีนามสกุล .log
find . -name "*.log" -type f

คำสั่งเหล่านี้ใช้ได้กับทุก Linux Shell รวมถึง Terminal ใน cPanel เมื่อคุ้นเคยแล้วงานที่เคยใช้เวลานานหลายนาทีผ่าน File Manager จะทำได้เสร็จใน 10 วินาที

การจัดการไฟล์และโฟลเดอร์ผ่าน Terminal

Terminal มีความสามารถด้านการจัดการไฟล์ที่เหนือกว่า File Manager ของ cPanel อย่างมาก โดยเฉพาะเมื่อต้องทำงานกับไฟล์จำนวนมากพร้อมกัน:

# คัดลอกไฟล์เดี่ยว
cp index.php index.php.bak

# คัดลอกโฟลเดอร์ทั้งหมดพร้อม Subdirectory
cp -r wp-content/themes/mytheme wp-content/themes/mytheme-backup

# ย้ายหรือเปลี่ยนชื่อไฟล์
mv old-name.php new-name.php

# ลบไฟล์เดี่ยว (ระวัง: ไม่มี Recycle Bin)
rm unwanted-file.php

# ลบโฟลเดอร์และทุกอย่างข้างใน
rm -rf old-plugin-folder/

# ลบไฟล์ .log ทั้งหมดในโฟลเดอร์ปัจจุบัน
find . -name "*.log" -delete

# บีบอัดโฟลเดอร์เป็น .tar.gz
tar -czf backup-$(date +%Y%m%d).tar.gz public_html/

# แตกไฟล์ .tar.gz
tar -xzf backup-20260627.tar.gz
คำเตือน: คำสั่ง rm -rf ลบไฟล์ถาวรทันทีโดยไม่มี Confirmation และไม่มีทางกู้คืน ควรตรวจสอบ Path ให้ถูกต้องก่อนกด Enter เสมอ และ Backup ข้อมูลสำคัญไว้ก่อนทุกครั้ง

การแก้ไข File Permission ผ่าน Terminal

หนึ่งในงานที่ต้องใช้ Terminal บ่อยที่สุดบน Shared Hosting คือการแก้ File Permissions ด้วยคำสั่ง chmod ซึ่งส่งผลโดยตรงต่อความสามารถในการเขียนไฟล์ของ PHP และความปลอดภัยของเว็บไซต์:

# มาตรฐานที่ถูกต้องสำหรับ WordPress:
# ไฟล์ทั้งหมด = 644 (เจ้าของอ่าน-เขียน / อื่นๆ อ่านอย่างเดียว)
# โฟลเดอร์ทั้งหมด = 755 (เจ้าของทุกอย่าง / อื่นๆ อ่าน+เข้า)

# ตั้ง Permission ไฟล์ .php ทั้งหมดในโฟลเดอร์ปัจจุบัน
find . -type f -name "*.php" -exec chmod 644 {} \;

# ตั้ง Permission โฟลเดอร์ทั้งหมด
find . -type d -exec chmod 755 {} \;

# ตั้ง Permission โฟลเดอร์ uploads ให้ WordPress เขียนได้
chmod -R 755 wp-content/uploads/

# ตั้ง Permission wp-config.php ให้ปลอดภัยมากขึ้น
chmod 640 wp-config.php

# ให้ Script .sh รันได้
chmod +x deploy.sh

# ตรวจสอบ Permission ปัจจุบัน
ls -la wp-config.php
กฎ Permission ที่ปลอดภัย: ใช้ 644 สำหรับไฟล์และ 755 สำหรับโฟลเดอร์ ห้ามตั้ง 777 เด็ดขาดเพราะเปิดให้ทุกคนบนเซิร์ฟเวอร์เขียนไฟล์ได้ ซึ่งเป็นช่องโหว่ด้านความปลอดภัยที่รุนแรง หาก WordPress ฟ้อง "Cannot write" ให้แก้เฉพาะโฟลเดอร์ wp-content/uploads/ และ wp-content/cache/ เป็น 755 เท่านั้น

ใช้ WP-CLI จัดการ WordPress จาก Terminal

WP-CLI (WordPress Command Line Interface) คือเครื่องมือที่ทำให้การจัดการ WordPress เว็บ ทำได้เร็วกว่าการคลิกใน Dashboard อย่างเทียบไม่ได้ YourThaiHost ติดตั้ง WP-CLI ไว้พร้อมใช้งานบนทุก Shared Hosting แพ็กเกจ:

# ตรวจสอบว่ามี WP-CLI และดูเวอร์ชัน
wp --version

# อัปเดต WordPress Core เป็นเวอร์ชันล่าสุด
wp core update

# ดูสถานะ Plugin ทั้งหมด (active/inactive)
wp plugin list

# อัปเดต Plugin ทั้งหมดในครั้งเดียว
wp plugin update --all

# ติดตั้งและ Activate Plugin จาก WordPress.org
wp plugin install contact-form-7 --activate

# Deactivate Plugin ที่มีปัญหา (เช่น ตอน Debug)
wp plugin deactivate woocommerce

# Export Database เป็นไฟล์ SQL
wp db export backup-$(date +%Y%m%d).sql

# Import Database จากไฟล์ SQL
wp db import backup-20260627.sql

# ล้าง WordPress Cache ทั้งหมด
wp cache flush

# รีเซ็ต Password ของ Admin
wp user update admin --user_pass=NewPassword123!

# ดูรายชื่อ Users ทั้งหมด
wp user list

# ค้นหาและแทนที่ URL (เช่น หลัง Migrate ไปโดเมนใหม่)
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run

คำสั่ง --dry-run ในบรรทัดสุดท้ายช่วยให้ดูผลลัพธ์ก่อนที่จะเปลี่ยนจริง เป็นนิสัยที่ดีมากในการทดสอบคำสั่ง WP-CLI ที่มีผลต่อ Database

การใช้ Composer และ PHP จาก Terminal

นอกจาก WP-CLI แล้ว Terminal ใน cPanel ยังรองรับ Composer และ PHP CLI ซึ่งจำเป็นสำหรับโปรเจกต์ PHP สมัยใหม่หลายประเภท:

# ตรวจสอบเวอร์ชัน PHP ที่ใช้งานใน CLI
php -v

# รัน PHP Script โดยตรง
php artisan migrate

# ตรวจสอบ Composer
composer --version

# ติดตั้ง Dependencies จาก composer.json
composer install --no-dev

# อัปเดต Packages
composer update

# ดู PHP Extensions ที่ติดตั้งอยู่
php -m

# ตรวจสอบค่า php.ini ที่ใช้งาน
php --ini

# รัน PHP Script เดี่ยวเพื่อ Test
php -r "echo phpinfo();" | grep memory_limit
เลือก PHP Version สำหรับ CLI: บน Shared Hosting ของ YourThaiHost PHP Version ที่ใช้ใน Terminal อาจต่างจากที่ตั้งไว้ใน MultiPHP Manager ของ cPanel หากต้องการใช้ PHP เวอร์ชันเฉพาะให้ระบุ Path ตรง เช่น /opt/cpanel/ea-php82/root/usr/bin/php script.php

Tips สำหรับการใช้งาน Terminal อย่างปลอดภัยและมีประสิทธิภาพ

Terminal เป็นเครื่องมือทรงพลังแต่ต้องใช้ด้วยความระมัดระวัง เพราะคำสั่งผิดพลาดเพียงบรรทัดเดียวอาจส่งผลเสียต่อเว็บไซต์ได้ทันที:

ตรวจสอบว่า Terminal ทำงานถูกต้อง

เมื่อเปิด Terminal ใน cPanel ครั้งแรกหรือหลังแก้ปัญหา ให้รัน Checklist ต่อไปนี้เพื่อยืนยันว่าสภาพแวดล้อมพร้อมใช้งาน:

# Step 1: ยืนยัน Shell และ Path ปัจจุบัน
pwd
# คาดหวัง: /home/username หรือ /home/username/public_html

# Step 2: ตรวจสอบ User ที่ Login อยู่
whoami
# คาดหวัง: ชื่อ cPanel username ของคุณ (ไม่ใช่ root)

# Step 3: ดูรายการไฟล์และ Permission
ls -la ~/public_html | head -20

# Step 4: ตรวจสอบ PHP CLI
php -v
# คาดหวัง: PHP 8.x.x พร้อม Zend Engine

# Step 5: ตรวจสอบ MySQL Client
mysql --version
# คาดหวัง: mysql Ver 8.x Distrib ...

# Step 6: ตรวจสอบ WP-CLI (ถ้าใช้ WordPress)
wp --version
# คาดหวัง: WP-CLI 2.x.x

# Step 7: ทดสอบ Internet Connectivity
curl -I https://api.wordpress.org/
# คาดหวัง: HTTP/2 200 หรือ 301

# Step 8: ตรวจสอบ Disk Usage
du -sh ~/public_html/
df -h .
ผ่านทุก Step แล้ว: ถ้าคำสั่งทั้งหมดแสดงผลลัพธ์ได้โดยไม่มี Error แสดงว่า Terminal ทำงานถูกต้องสมบูรณ์ คุณสามารถเริ่มใช้งาน WP-CLI, Composer, หรือ Script อื่นได้ทันที หากคำสั่งใดแสดง "command not found" ให้ติดต่อ Support ของ YourThaiHost เพื่อตรวจสอบว่า Package นั้นติดตั้งอยู่บนเซิร์ฟเวอร์หรือไม่

แก้ปัญหาที่พบบ่อยใน Terminal ของ cPanel

นี่คือปัญหาที่ผู้ใช้พบบ่อยที่สุดเมื่อเริ่มใช้งาน Terminal พร้อมวิธีแก้ไขที่ได้ผล:

Error: "Permission denied" เมื่อรัน Script หรือเข้าถึงไฟล์

ข้อผิดพลาดนี้เกิดขึ้นเมื่อไฟล์หรือโฟลเดอร์มี Permission ที่ไม่อนุญาตให้ User ปัจจุบันเข้าถึง วิธีวินิจฉัยและแก้ไข:

# ดู Permission ของไฟล์ที่มีปัญหา
ls -la problematic-file.php

# ถ้าเป็นไฟล์ PHP ให้ตั้งเป็น 644
chmod 644 problematic-file.php

# ถ้าเป็น Script .sh ให้เพิ่ม Execute Permission
chmod +x myscript.sh

# ถ้าเป็นโฟลเดอร์ uploads ของ WordPress
chmod -R 755 wp-content/uploads/

หากแก้ Permission แล้วยังพบปัญหา ให้ตรวจสอบว่าไฟล์นั้น Owner เป็น User ที่ถูกต้องด้วยคำสั่ง ls -la ถ้า Owner เป็น root หรือ User อื่น ให้ติดต่อ Support ของ YourThaiHost เพื่อแก้ไข Ownership

Error: "command not found" เมื่อพิมพ์คำสั่ง

ข้อผิดพลาดนี้หมายความว่าคำสั่งที่พิมพ์ไม่ได้ติดตั้งอยู่บนเซิร์ฟเวอร์ หรืออาจสะกดผิด วิธีแก้:

# ตรวจสอบว่าคำสั่งอยู่ที่ไหนในระบบ
which wp
which composer
which git

# ถ้าไม่เจอ ลองหาด้วย find
find /usr /opt -name "wp" -type f 2>/dev/null

# ตรวจสอบ PATH ปัจจุบัน
echo $PATH

สำหรับ WP-CLI ที่ไม่พบ ลองใช้ Path เต็ม /usr/local/bin/wp --version หรือ ~/bin/wp --version ถ้ายังไม่พบให้ติดต่อ YourThaiHost Support เพื่อขอติดตั้ง WP-CLI ให้กับ Account ของคุณ

Error: "Connection timeout" หรือ WP-CLI เชื่อมต่อ Database ไม่ได้

ถ้า WP-CLI รายงานว่าเชื่อมต่อ Database ไม่ได้ ให้ตรวจสอบการตั้งค่าใน wp-config.php ว่าถูกต้องหรือไม่:

# ดูค่า Database ใน wp-config.php
grep -E "DB_(NAME|USER|PASSWORD|HOST)" wp-config.php

# ทดสอบ Connection ตรงๆ
mysql -u DB_USERNAME -p DB_NAME -e "SHOW TABLES;" 2>&1 | head -5

# ถ้า Host ไม่ใช่ localhost ลอง
mysql -h 127.0.0.1 -u DB_USERNAME -p DB_NAME

บน Shared Hosting ของ YourThaiHost Database Host ส่วนใหญ่จะเป็น localhost แต่บางกรณีอาจเป็น 127.0.0.1 หรือ IP ของ Database Server โดยเฉพาะ ให้ตรวจสอบ Welcome Email หรือถาม Support เพื่อยืนยัน

Error: "Cannot execute script" หรือ Script .sh ไม่รัน

ปัญหานี้มักเกิดจาก 2 สาเหตุหลัก คือ Permission ไม่ถูกต้องหรือไฟล์มี Line Endings แบบ Windows (CRLF) ที่ทำให้ Linux อ่าน Shebang ไม่ได้:

# ตรวจสอบและแก้ Permission
chmod +x myscript.sh

# ตรวจสอบ Line Endings (^M = Windows CRLF)
cat -A myscript.sh | head -3

# แปลง Line Endings จาก Windows เป็น Unix
sed -i 's/\r//' myscript.sh

# ตรวจสอบ Shebang บรรทัดแรก
head -1 myscript.sh
# ต้องขึ้นต้นด้วย #!/bin/bash หรือ #!/usr/bin/env python3

# รัน Script ด้วยการระบุ Interpreter โดยตรง
bash myscript.sh

Error: "Database connection failed" เมื่อรัน mysqldump หรือ Backup

เมื่อรัน Database Backup แล้วเจอข้อผิดพลาด Access Denied ให้ตรวจสอบสิทธิ์ User และวิธีการ Backup:

# วิธี Backup ด้วย mysqldump (พิมพ์ Password เมื่อถูกถาม)
mysqldump -u DB_USERNAME -p DB_NAME > backup-$(date +%Y%m%d-%H%M).sql

# ดูขนาดไฟล์ Backup ที่สร้างขึ้น
ls -lh backup-*.sql

# ถ้าใช้ WP-CLI แทน
wp db export backup-$(date +%Y%m%d).sql --add-drop-table

# ตรวจสอบว่า Backup ไม่ว่างเปล่า
wc -l backup-20260627.sql

หาก mysqldump ยัง Access Denied ให้ใช้ phpMyAdmin ใน cPanel แทน หรือใช้ cPanel Backup Wizard ซึ่งมีสิทธิ์ Backup Database ทั้งหมดโดยไม่ต้องพิมพ์ Password แยก

คำถามที่พบบ่อย (FAQ)

Q: Terminal ใน cPanel ปลอดภัยเท่ากับการใช้ SSH หรือไม่?

A: ใช่ Terminal ใน cPanel มีความปลอดภัยเพียงพอสำหรับ Shared Hosting เนื่องจากการเชื่อมต่อทั้งหมดเดินทางผ่าน HTTPS ที่เข้ารหัสด้วย TLS ไม่ต่างจาก SSH ที่ใช้ Port 22 และยังได้รับการป้องกันเพิ่มเติมด้วย cPanel Authentication ซึ่งรองรับ Two-Factor Authentication (2FA) ได้อีกด้วย ความแตกต่างที่สำคัญคือ SSH มีความยืดหยุ่นสูงกว่าสำหรับ VPS/Dedicated Server แต่สำหรับ Shared Hosting Terminal ใน cPanel ให้ฟีเจอร์ครบถ้วนและสะดวกกว่ามาก

Q: รัน Long-running Commands เช่น Backup ขนาดใหญ่ใน Terminal ได้หรือ?

A: รันได้ แต่มีข้อควรระวังเรื่อง Browser Timeout ถ้าคำสั่งใช้เวลานานกว่า 5-10 นาที เบราว์เซอร์อาจตัด Connection ทำให้คำสั่งหยุดกลางคัน วิธีแก้คือใช้คำสั่ง nohup นำหน้าและ & ต่อท้าย เพื่อให้คำสั่งทำงานใน Background โดยไม่ขึ้นกับ Browser Session เช่น nohup wp db export big-backup.sql & จากนั้นใช้ jobs หรือ tail -f nohup.out เพื่อดูความคืบหน้า

Q: ถ้าลบไฟล์ผิดด้วย rm ใน Terminal จะกู้คืนได้ไหม?

A: โดยทั่วไปไม่สามารถกู้คืนได้ด้วยตัวเอง เพราะ rm ลบไฟล์ทันทีโดยไม่ผ่าน Recycle Bin อย่างไรก็ตาม YourThaiHost ทำ Daily Backup ให้กับทุก Hosting Account สิ่งแรกที่ควรทำคือติดต่อ Support ทันทีที่รู้ว่าลบผิด ยิ่งเร็วยิ่งดี เพราะ Backup อาจถูก Overwrite ได้ในวันถัดไป เพื่อป้องกันในอนาคต ควรใช้นิสัย ls filename ยืนยันก่อน rm filename ทุกครั้ง หรือสร้าง Alias alias rm='rm -i' เพื่อให้ Terminal ถามก่อนลบเสมอ