ติดตั้งเว็บไซต์สะสมผลงานครูบี
พร้อมหน้าตั้งค่าฐานข้อมูล
คู่มือนี้สำหรับนำระบบไปติดตั้งบน Hostinger, cPanel หรือ Server ที่รองรับ PHP เว็บไซต์ทำงานได้โดยไม่ต้องติดตั้ง Node.js หรือ Composer
ก่อนเริ่มติดตั้ง
| สิ่งที่ต้องมี | ค่าที่ใช้ |
|---|---|
| PHP | PHP 8.2 ขึ้นไป แนะนำ 8.3 หรือ 8.4; ชุดนี้ทดสอบด้วย PHP 8.3 |
| ส่วนขยาย PHP | PDO MySQL, mbstring และ fileinfo |
| ฐานข้อมูล | MySQL 8 หรือ MariaDB 10.6 ขึ้นไป; ทดสอบด้วย MariaDB 10.11 |
| Web Server | Apache / LiteSpeed / Nginx พร้อมระบบประมวลผล PHP |
| เว็บไซต์ | ตั้งโดเมนหรือ Subdomain และเปิด HTTPS ก่อนกรอกรหัสผ่าน |
| การอัปโหลด | upload_max_filesize ≥ 20M; post_max_size ≥ 24M; memory_limit ≥ 128M |
| สิทธิ์ฐานข้อมูล | ผู้ใช้ต้องอ่าน/เขียนข้อมูลและ CREATE TABLE ได้ ใช้ฐานข้อมูลใหม่แยกจากระบบอื่น |
ติดตั้งบน Hostinger หรือ cPanel
- สร้างฐานข้อมูลและผู้ใช้
Hostinger: เปิด hPanel → Websites → Dashboard ของโดเมน → Databases → Management สร้างฐานข้อมูลใหม่และผู้ใช้ แล้วบันทึกชื่อฐานข้อมูล ชื่อผู้ใช้ รหัสผ่าน และ Database Host ให้ครบ ใช้ชื่อเต็มรวมคำนำหน้า เช่น
u123456789_krubeeตามที่ระบบแสดงcPanel: เปิด MySQL Databases หรือ Database Wizard → สร้างฐานข้อมูล → สร้างผู้ใช้ → Add User to Database → ให้สิทธิ์ฐานข้อมูลที่จำเป็น
- ตั้งค่า PHP
เลือก PHP 8.3/8.4 และเปิด PDO MySQL, mbstring, fileinfo ในเมนู PHP Configuration หรือ Select PHP Version ตรวจค่าการอัปโหลดตามตารางด้านบน ไฟล์
.user.iniในชุดติดตั้งตั้งค่าไว้แล้ว แต่บางโฮสติ้งต้องปรับผ่านแผงควบคุมเพิ่มเติม - อัปโหลดไฟล์
แตก ZIP บนเครื่อง เปิดโฟลเดอร์
publicแล้วอัปโหลด ไฟล์และโฟลเดอร์ที่อยู่ข้างในทั้งหมด ไปที่public_html/krubee/รวมถึง.htaccessและ.user.iniไม่ต้องนำโฟลเดอร์ docs ขึ้นเว็บไซต์public_html/krubee/ index.php install.php login.php admin.php database.php reconnect.php api.php file.php INSTALL_GUIDE.html .htaccess .user.ini app/ assets/
หากต้องการใช้หน้าแรกของโดเมน ให้อัปโหลดไว้ใน
public_html/โดยตรงแทน โค้ดใช้ลิงก์สัมพันธ์จึงรองรับทั้งสองรูปแบบ - ตั้งรหัสติดตั้งของครูบี
ใน File Manager เปิด
app/install-key.example.phpคัดลอกเป็นไฟล์ชื่อapp/install-key.phpแล้วเปลี่ยนเฉพาะข้อความระหว่างเครื่องหมายอัญประกาศหลังreturnเป็นรหัสสุ่มส่วนตัวอย่างน้อย 24 ตัวอักษร แนะนำสุ่มจากตัวจัดการรหัสผ่าน ห้ามใช้ค่าตัวอย่างreturn 'รหัสสุ่มส่วนตัวของครูอย่างน้อย24ตัวอักษร';
เก็บรหัสนี้ไว้ให้ดี เพราะเป็นรหัสกู้การเชื่อมต่อฐานข้อมูลด้วย อย่าส่งให้ผู้ชมเว็บไซต์
- เปิดหน้าติดตั้งผ่านเว็บ
ไปที่
https://โดเมนของครู/krubee/install.phpดูรายการตรวจความพร้อม ใส่รหัสติดตั้งและข้อมูลฐานข้อมูล กด ทดสอบการเชื่อมต่อ เมื่อผ่านแล้วตั้งชื่อผู้ใช้ อีเมล และรหัสผ่านผู้ดูแล จากนั้นกด ติดตั้งระบบช่องในหน้าติดตั้ง ใส่อะไร Database Host ค่าจากโฮสติ้ง ปกติฐานข้อมูลในเครื่องเดียวกันใช้ localhost แต่ให้ยึดค่าที่ผู้ให้บริการระบุ Port ปกติ 3306 หรือค่าที่ Server กำหนด ชื่อฐานข้อมูล ชื่อเต็มรวมคำนำหน้าของบัญชี ผู้ใช้ฐานข้อมูล ผู้ใช้ที่มีสิทธิ์กับฐานข้อมูลนั้น รหัสผ่านฐานข้อมูล รหัสผ่านที่ตั้งใน hPanel/cPanel ไม่ใช่รหัสผู้ดูแลเว็บ ชื่อผู้ใช้ผู้ดูแล ชื่ออังกฤษ 3 ตัวอักษรขึ้นไป เช่น krubee อีเมลผู้ดูแล อีเมลของครูบี รหัสผ่านผู้ดูแล อย่างน้อย 12 ตัวอักษร แนะนำอังกฤษ ตัวเลข และสัญลักษณ์ ไม่ใช้รหัสเดียวกับฐานข้อมูล ระบบสร้างตาราง
kb_users, kb_entries, kb_files, kb_settings, kb_login_attemptsให้เอง ไม่ต้อง Import SQL ก่อน และจะใส่เว็บไซต์การสอนเดิมพร้อมร่าง Code Quest และระบบสอบออนไลน์ให้ - ตรวจการใช้งาน
ระบบเปิด
admin.phpหลังติดตั้ง ทดสอบเพิ่มผลงานเป็นฉบับร่าง แนบรูป บันทึก แล้วเปลี่ยนเป็นเผยแพร่ เปิดหน้าเว็บไซต์จากอีกเบราว์เซอร์เพื่อตรวจว่าเห็นเฉพาะรายการที่เผยแพร่ ตรวจหน้าdatabase.phpว่าสถานะเชื่อมต่อสำเร็จหน้าติดตั้งล็อกอัตโนมัติแล้ว สามารถลบ
app/install-key.phpออกจาก Server ได้ แต่ยังต้องเก็บรหัสติดตั้งไว้ในที่ส่วนตัวเพื่อใช้กู้คืนภายหลัง
เพิ่มและเผยแพร่ผลงาน
- เปิด
login.phpและเข้าสู่ระบบด้วยบัญชีที่สร้างตอนติดตั้ง - เลือกหมวดเว็บไซต์การสอน โปรแกรม งานและความภูมิใจ หรือข่าวสาร
- กด “เพิ่มข้อมูล” ใส่ชื่อ วันที่ คำอธิบาย รายละเอียด และลิงก์
- แนบรูปปก PNG/JPG/WebP หรือไฟล์ PDF/ZIP/HTML/เอกสาร ขนาดไม่เกิน 20 MB ต่อไฟล์
- เลือก “ฉบับร่าง” เพื่อเก็บไว้ก่อน หรือ “เผยแพร่” เพื่อแสดงให้ผู้ชมเห็น แล้วบันทึก
หมวดงานและความภูมิใจเลือกประเภทการทำงาน รางวัล หรือความภาคภูมิใจได้ ข่าวล่าสุดแสดง 3 รายการ ส่วนข่าวเก่ากดเปิดจาก “ข่าวก่อนหน้านี้” ผู้ชมอ่านผลงานได้โดยไม่ต้อง Login รหัสผ่านฐานข้อมูลไม่อยู่ใน JavaScript และไม่ถูกส่งกลับในหน้าตั้งค่า
ใช้หน้าเชื่อมต่อฐานข้อมูลภายหลัง
- Login → กด “ตั้งค่าฐานข้อมูล” หรือเปิด
database.php - ดูสถานะฐานข้อมูล จำนวนผลงาน และสิทธิ์โฟลเดอร์อัปโหลด
- แก้ Host / Port / ชื่อฐานข้อมูล / ผู้ใช้ / รหัสผ่านใหม่ หากเว้นรหัสผ่านว่างจะใช้ค่าเดิม
- กด “ทดสอบการเชื่อมต่อ”
- ใส่รหัสผ่านผู้ดูแลเว็บไซต์เพื่อยืนยัน แล้วกด “บันทึกการเชื่อมต่อ”
ข้อมูลและไฟล์เก็บอยู่ที่ใด
Hostinger/cPanel จะใช้โฟลเดอร์ krubee-data ข้าง public_html ซึ่งอยู่นอกหน้าเว็บไซต์ ประกอบด้วย config.php และ uploads/ หน้าติดตั้งจะแสดงตำแหน่งจริง หาก PHP ไม่มีสิทธิ์สร้างโฟลเดอร์ ให้สร้างโฟลเดอร์ที่ตำแหน่งนั้นผ่าน File Manager และให้บัญชี PHP เขียนได้ ไม่ต้องใช้สิทธิ์ 777
Server ที่ใช้ตำแหน่งอื่นตั้งค่า Environment Variable KRUBEE_STORAGE_DIR หรือปรับ app/paths.php ให้ชี้โฟลเดอร์ส่วนตัวนอก Document Root ได้ ห้ามย้าย config.php ไปไว้ใน assets หรือโฟลเดอร์สาธารณะ
เปลี่ยนรหัสผ่านฐานข้อมูลแล้วเข้าเว็บไม่ได้
เมื่อเปลี่ยนรหัสผ่านฐานข้อมูลที่โฮสติ้ง ค่าเดิมในเว็บไซต์จะใช้ไม่ได้ ให้ใช้หน้ากู้การเชื่อมต่อโดยไม่ต้อง Login กับฐานข้อมูลเก่า:
- เปิด
https://โดเมนของครู/krubee/reconnect.php - ใส่รหัสติดตั้ง/กู้คืนที่เก็บไว้
- ใส่ข้อมูลฐานข้อมูลและรหัสผ่านล่าสุด กดทดสอบการเชื่อมต่อ
- ใส่รหัสผ่านผู้ดูแลเว็บไซต์เดิม แล้วกด “กู้และบันทึกการเชื่อมต่อ”
- กลับไป Login และตรวจรายการผลงาน
หน้ากู้คืนไม่สร้างตารางหรือผู้ดูแลใหม่ และจะยอมรับเฉพาะข้อมูลของเว็บไซต์เดิม หากลืมรหัสกู้คืนต้องให้ผู้ดูแล Server แก้ค่าใน krubee-data/config.php จากข้อมูลโฮสติ้งที่ตรวจสอบแล้ว รักษารูปแบบ PHP และเครื่องหมายอัญประกาศให้ถูกต้อง
หากติดตั้งบน VPS / Linux
เตรียม PHP-FPM 8.3/8.4, MySQL/MariaDB และ Apache หรือ Nginx สร้างฐานข้อมูลกับผู้ใช้ก่อน แล้วให้ Document Root ชี้โฟลเดอร์ public ของชุดติดตั้ง ตัวอย่างตำแหน่ง: /var/www/krubee/public สร้างโฟลเดอร์ /var/www/krubee/krubee-data และให้บัญชี PHP-FPM มีสิทธิ์อ่านเขียน ตัวอย่างกรณี PHP ใช้ www-data:
sudo install -d -m 700 -o www-data -g www-data /var/www/krubee/krubee-data
ตัวอย่างส่วนของ Nginx สำหรับติดตั้งที่หน้าแรกโดเมน ให้ผู้ดูแล Server ปรับโดเมน เส้นทาง และ PHP-FPM socket ให้ตรงกับเครื่อง จากนั้นตั้ง HTTPS ด้วยใบรับรองที่ใช้จริง:
root /var/www/krubee/public;
index index.php;
location / {
try_files $uri $uri/ =404;
}
location ^~ /app/ {
return 404;
}
location ~ /\. {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
client_max_body_size 24m;จากนั้นตั้งรหัสติดตั้งใน app/install-key.php และเปิด install.php เหมือนขั้นตอนบน Hostinger หากใช้โฟลเดอร์ย่อยให้ปรับตำแหน่ง location /app/ ให้ตรงกับโฟลเดอร์ย่อยด้วย Apache/LiteSpeed ใช้ .htaccess ที่มีในชุดได้
แก้ปัญหาที่พบบ่อย
| อาการ | ตรวจอย่างไร |
|---|---|
| ตรวจ PHP ไม่ผ่าน | เลือก PHP ≥ 8.2 เปิด pdo_mysql, mbstring, fileinfo แล้วโหลด install.php ใหม่ |
| รหัสติดตั้งไม่ถูกต้อง | ต้องมีไฟล์ชื่อ app/install-key.php โดยคัดลอกจาก example เปลี่ยนข้อความหลัง return และไม่ใช้ค่า CHANGE_THIS… |
| เชื่อมต่อฐานข้อมูลไม่ได้ | ใช้ชื่อเต็มรวมคำนำหน้า ตรวจ Host/Port และรหัสผ่านของผู้ใช้ฐานข้อมูล ทดสอบเข้าฐานข้อมูลใน phpMyAdmin และตรวจสิทธิ์ผู้ใช้ |
| สร้างโฟลเดอร์เก็บข้อมูลไม่ได้ | ดูตำแหน่งที่หน้าติดตั้งแสดง สร้าง krubee-data นอก public_html และให้ PHP เขียนได้ หรือปรับ paths.php เป็นตำแหน่งที่โฮสติ้งอนุญาต |
| ติดตั้งแล้วแจ้งมีผู้ดูแลอยู่ | ห้ามทับระบบเดิม ใช้ฐานข้อมูลใหม่ หากเป็นระบบเดิมให้คืนไฟล์ config.php จากสำรอง ห้ามลบตารางโดยไม่สำรองข้อมูล |
| อัปโหลดไฟล์เกินขนาด | ปรับ upload_max_filesize=20M, post_max_size=24M และขนาดรับคำขอของ Web Server ถ้าเซิร์ฟเวอร์จำกัดต่ำกว่าให้ยึดค่าที่ผู้ให้บริการอนุญาต |
| ไม่เห็นรายการที่เพิ่ม | ตรวจสถานะเป็น “เผยแพร่” และกดบันทึกแล้ว ฉบับร่างเห็นเฉพาะผู้ดูแล |
| Login ไม่ได้หลังเปลี่ยนฐานข้อมูล | เปิด reconnect.php เพื่อกู้การเชื่อมต่อด้วยรหัสกู้คืนและรหัสผ่านผู้ดูแลเดิม |
| หน้าขาวหรือ HTTP 500 | ดู Error Log ของโฮสติ้ง ตรวจ PHP version, modules, สิทธิ์ไฟล์และพื้นที่เก็บข้อมูล ไม่เปิดแสดงรหัสผ่านหรือ stack trace ต่อผู้ชม |
การสำรองและการย้าย Server
สำรองฐานข้อมูลผ่าน phpMyAdmin → Export พร้อมสำรองโฟลเดอร์ krubee-data ทั้ง config.php และ uploads/ เมื่อย้าย Server ให้นำฐานข้อมูลเดิมไป Import และย้ายโฟลเดอร์ไฟล์ จากนั้นใช้ database.php หรือ reconnect.php เปลี่ยนข้อมูลการเชื่อมต่อ ทดสอบรูปและไฟล์ดาวน์โหลดก่อนเปลี่ยนโดเมนที่ใช้งานจริง
SQL โครงสร้างเปล่าใน docs/schema.sql ใช้ประกอบการตรวจระบบ ไม่ใช่ไฟล์สำรองผลงานของครู หน้าติดตั้งสร้างตารางให้ได้เอง
ผลตรวจชุดติดตั้ง
ตรวจไวยากรณ์ PHP ทุกไฟล์และ JavaScript แล้ว ทดสอบผ่าน HTTP กับ PHP 8.3 และ MariaDB 10.11 รวม 33 กรณี ครอบคลุมการติดตั้ง รหัสติดตั้งผิด การล็อกหน้าติดตั้ง ผู้ดูแล/ผู้ชม ฉบับร่าง/เผยแพร่ ข้อมูลภาษาไทย อัปโหลด ดาวน์โหลด ลบ ตั้งค่าฐานข้อมูล ป้องกันการสลับไปฐานข้อมูลว่าง และกู้การเชื่อมต่อหลังเปลี่ยนรหัสผ่านฐานข้อมูล
ยังไม่ได้ทดสอบในบัญชี Hostinger/cPanel ของครูบีโดยตรง การติดตั้งจริงต้องใช้ฐานข้อมูล โดเมน และสิทธิ์โฟลเดอร์ของ Server นั้น