Skip to content

Repository files navigation

GCMS 15.0.0

GCMS คือระบบจัดการเว็บไซต์ (CMS) ที่พัฒนาโดยคนไทย เหมาะกับเว็บไซต์บริษัท หน่วยงานราชการ/อบต./โรงเรียน และร้านค้าออนไลน์ รุ่น 15 เขียนใหม่ทั้งระบบบน Kotchasan (PHP) ฝั่งเซิร์ฟเวอร์ และ Now.js ฝั่งหน้าเว็บ

Warning

ถ้าจะอัปเกรดจาก GCMS รุ่นก่อน 15.0.0 ให้อ่าน คำเตือนก่อนอัปเกรด ก่อนเริ่ม หลังอัปเกรด หน้าแรกจะแสดงผลผิด และใช้ธีมเดิมไม่ได้ เพราะรุ่นนี้เปลี่ยนวิธีจัดหน้าแรกและธีมทั้งหมด

คุณสมบัติหลัก

  • ระบบผู้ดูแล ที่ /admin/ จัดการหน้าเว็บ เมนู สมาชิก สิทธิ์การใช้งาน ธีม วิดเจ็ต แม่แบบอีเมล และภาษา
  • โมดูล ข่าว/บทความ (document), เว็บบอร์ด (board), อัลบั้มภาพ (gallery), ดาวน์โหลด (download), วิดีโอ (video), ปฏิทินกิจกรรม (event), บุคลากร (personnel), ผลงาน (portfolio), หนังสือราชการ (edocument), สินค้าและการชำระเงิน (product, payment)
  • วิดเจ็ต สำหรับวางในธีม เช่น สไลด์/แบนเนอร์ (textlinks), ข่าว, แกลเลอรี, ปฏิทิน, บุคลากร, ติดต่อเรา, แผนที่, Facebook, สถิติ, ค้นหา, ป้ายกำกับ, เปลี่ยนภาษา
  • ธีมพร้อมใช้ 9 แบบ ใน themes/ ได้แก่ default rw gts shop maxsite mgreen mred sea sred
  • ติดตั้งพร้อมข้อมูลตัวอย่าง เลือกได้ 3 ประเภท คือ เว็บไซต์บริษัท, หน่วยงานราชการ/โรงเรียน และร้านค้าออนไลน์
  • รองรับหลายภาษา (ไทย/อังกฤษ), มี API (/api/) และเชื่อมต่อ LINE, Telegram, SMS และเครื่องมือ AI ได้

ความต้องการของระบบ

รายการ ข้อกำหนด
PHP 7.4 ขึ้นไป
ส่วนขยาย PHP ที่ต้องมี PDO MySQL, mbstring, zlib, JSON, XML, OpenSSL, GD, cURL
ส่วนขยาย PHP ที่แนะนำ zip, intl, OPcache (ไม่มีก็ใช้งานได้ แต่บางคุณสมบัติจะใช้ไม่ได้)
ฐานข้อมูล MySQL 5.5.3 ขึ้นไป หรือ MariaDB 5.5 ขึ้นไป (ต้องรองรับ utf8mb4)
เว็บเซิร์ฟเวอร์ Apache ที่เปิด mod_rewrite และอนุญาตให้ใช้ .htaccess (ถ้าใช้เว็บเซิร์ฟเวอร์อื่นต้องตั้งกฎ rewrite ให้เทียบเท่า .htaccess)

ตัวติดตั้งจะตรวจรายการเหล่านี้ให้ในขั้นตอนแรก ต้องเป็นสีเขียวทั้งหมดถึงจะติดตั้งต่อได้

การติดตั้งใหม่

Important

ระบบไม่พาไปหน้าติดตั้งให้เอง หลังอัปโหลดไฟล์แล้ว ต้องเปิด http://โดเมนของคุณ/install/ ในเบราว์เซอร์ด้วยตัวเอง (ถ้าติดตั้งในโฟลเดอร์ย่อย ให้เปิด http://โดเมนของคุณ/ชื่อโฟลเดอร์/install/)

  1. ดาวน์โหลดไฟล์ทั้งหมด แล้วอัปโหลดขึ้นเซิร์ฟเวอร์ (รวมไฟล์ .htaccess ด้วย)
  2. เตรียมฐานข้อมูล MySQL/MariaDB พร้อมชื่อผู้ใช้และรหัสผ่าน ถ้าบัญชีมีสิทธิ์สร้างฐานข้อมูล ตัวติดตั้งจะสร้างฐานให้เอง ถ้าไม่มีสิทธิ์ (โฮสต์ทั่วไป) ให้สร้างฐานเปล่าไว้ก่อนจากแผงควบคุมของโฮสต์
  3. ปรับให้เว็บเซิร์ฟเวอร์เขียนโฟลเดอร์ datas/ และ settings/ ได้ (เช่น chmod 755 หรือ 777 ตามโฮสต์)
  4. เปิด http://โดเมนของคุณ/install/ แล้วทำตามขั้นตอน
    1. ตรวจสอบเซิร์ฟเวอร์

    2. ตรวจสอบโฟลเดอร์และไฟล์ที่ต้องเขียนได้

    3. เลือกประเภทเว็บไซต์ ตัวติดตั้งจะตั้งธีมให้ตรงกับประเภท และถ้าติ๊ก "ติดตั้งข้อมูลตัวอย่าง" จะได้เมนู หน้าเว็บ ข่าว รูปภาพ และแบนเนอร์ตัวอย่างไว้ทดลองใช้ (ลบหรือแก้ภายหลังได้)

      ประเภท ธีม
      เว็บไซต์บริษัท / ข่าวสาร rw (2 คอลัมน์)
      เว็บไซต์หน่วยงานราชการ / อบต. / โรงเรียน gts (3 คอลัมน์)
      เว็บไซต์ร้านค้าออนไลน์ shop (1 คอลัมน์)
    4. สร้างบัญชีผู้ดูแลระบบสูงสุด (ห้ามลืม)

    5. กรอกค่าฐานข้อมูล ได้แก่ ชื่อผู้ใช้ รหัสผ่าน โฮสต์ พอร์ต ชื่อฐานข้อมูล และคำนำหน้าตาราง (prefix)

    6. ติดตั้ง

  5. เมื่อติดตั้งเสร็จ
    • ลบโฟลเดอร์ install/ ออกจากเซิร์ฟเวอร์
    • ปรับสิทธิ์ datas/ และ settings/ กลับ ถ้าได้เปิดสิทธิ์ไว้กว้างกว่าปกติ
    • เข้าระบบผู้ดูแลที่ http://โดเมนของคุณ/admin/ ด้วยบัญชีที่สร้างไว้
    • สำหรับเว็บที่เปิดใช้งานจริง ให้แก้ define('DEBUG', 2); ใน load.php เป็น 0 (ค่า 2 แสดงข้อผิดพลาดออกหน้าจอ ใช้เฉพาะตอนพัฒนา)

คำเตือนก่อนอัปเกรดจากรุ่นก่อน 15.0.0

รุ่น 15.0.0 เปลี่ยนวิธีจัดหน้าแรกและระบบธีมใหม่ทั้งหมด ข้อมูลเดิม (บทความ สมาชิก หมวดหมู่ ไฟล์ ฯลฯ) ย้ายมาได้ แต่ 2 เรื่องนี้ต้องแก้เองหลังอัปเกรดทุกเว็บ

1. หน้าแรกจะเสียหาย ถ้าเนื้อหาหน้าแรกเดิมมีโครงหน้า (layout) อยู่

GCMS รุ่นก่อน 15.0.0 GCMS 15.0.0
โครงหน้าแรก (คอลัมน์ กล่อง ตำแหน่งวิดเจ็ต สไลด์) เขียนไว้ในเนื้อหาของหน้า home ในฐานข้อมูล ส่วน home.html ของธีมมีแค่กรอบ {CONTENT} อยู่ใน themes/<ธีม>/home.html ของธีมทั้งหมด
เนื้อหาของหน้า home โครงหน้า + วิดเจ็ต + ข้อความ เฉพาะข้อความที่จะแสดงในหน้าแรก เท่านั้น ถูกวางลงตำแหน่ง {DETAIL} ของธีม

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

ตัวอย่างเนื้อหาหน้า home ของรุ่นเดิมที่จะทำให้หน้าแรกพัง

<div class="ggrid">
  <div class="block8">
    <h2>ข่าวประชาสัมพันธ์</h2>
    {WIDGET_DOCUMENT_news}
  </div>
  <div class="block4">{WIDGET_TEXTLINK_homebanner}</div>
</div>

เนื้อหาหน้า home ของรุ่น 15.0.0 ควรเหลือเพียงข้อความ เช่น

<h2>ยินดีต้อนรับ</h2>
<p>ข้อความแนะนำหน่วยงานที่ต้องการแสดงในหน้าแรก</p>

วิธีแก้

  1. ก่อนอัปเกรด คัดลอกเนื้อหาหน้า home เดิมเก็บไว้ดูเป็นแนวทาง
  2. หลังอัปเกรด เข้า /admin/ → จัดการหน้าเว็บ แล้วแก้หน้า home ลบโครงหน้า กล่อง คอลัมน์ และแท็กวิดเจ็ต ({WIDGET_...}) ออกทั้งหมด ให้เหลือเฉพาะข้อความ
  3. ถ้าต้องการจัดวางวิดเจ็ตในหน้าแรกต่างจากที่ธีมมีให้ ให้แก้ที่ themes/<ธีม>/home.html แทน (รูปแบบแท็กวิดเจ็ตของรุ่นนี้ดูได้จาก home.html ของธีมที่มากับระบบ)

2. ใช้ธีมเดิมไม่ได้

  • ธีมย้ายจากโฟลเดอร์ skin/ มาอยู่ที่ themes/ และเขียนใหม่ทั้งหมดบน Now.js โครงสร้างไฟล์ CSS และรูปแบบแท็กในเทมเพลตเปลี่ยนไป คัดลอกธีมเดิมมาใช้ไม่ได้
  • ถ้าธีมที่ตั้งไว้เดิมไม่มีในรุ่นนี้ ตัวอัปเกรดจะเปลี่ยนไปใช้ธีม default ให้อัตโนมัติ
  • ถ้ามีธีมชื่อเดียวกันในรุ่นนี้ (เช่น gts) ระบบจะใช้ธีมรุ่นใหม่ที่ชื่อตรงกัน สิ่งที่เคยปรับแต่งไว้ในธีมเดิม (สี โลโก้ โค้ดที่แก้เอง) จะไม่ตามมา ต้องทำใหม่บนธีมรุ่นนี้
  • เลือกธีมใหม่ได้ที่ /admin/ → เลือกธีม และปรับค่าธีมที่ ตั้งค่าธีม

เรื่องอื่นที่ตัวอัปเกรดอาจแจ้งเตือน

  • ตำแหน่งเมนู รุ่นนี้มีเฉพาะเมนูหลัก เมนูข้าง และเมนูล่าง เมนูที่อยู่ตำแหน่งอื่นจะไม่แสดง จนกว่าจะเลือกตำแหน่งใหม่ในหน้าจัดการเมนู
  • โมดูลที่ไม่มีในรุ่นนี้ ข้อมูลและตารางถูกเก็บไว้ตามเดิม แต่หน้าเว็บของโมดูลนั้นจะเปิดไม่ได้ จนกว่าจะติดตั้งโมดูลรุ่นใหม่ที่รองรับ
  • ข้อมูลซ้ำ เช่น อีเมลหรือชื่อเข้าระบบของสมาชิกซ้ำกัน หรือเลขหมวดหมู่ซ้ำในโมดูลเดียวกัน ตัวอัปเกรดจะหยุดก่อนแก้ไขฐานข้อมูลและบอกแถวที่ต้องแก้ แก้แล้วเรียก /install/ ใหม่

การอัปเกรด

รองรับการอัปเกรดจากฐานข้อมูลของ GCMS 11 – 14.x และจาก GCMS 15.x รุ่นก่อนหน้า ถ้าเป็นรุ่นเก่ากว่า 11 ให้อัปเกรดเป็น GCMS 14.x ก่อน

Important

เช่นเดียวกับการติดตั้งใหม่ ระบบไม่เรียกตัวอัปเกรดให้เอง หลังอัปโหลดไฟล์รุ่นใหม่แล้ว ต้องเปิด http://โดเมนของคุณ/install/ ด้วยตัวเอง และเว็บจะยังใช้งานไม่ได้จนกว่าจะอัปเกรดเสร็จ

  1. สำรองข้อมูลก่อนเสมอ ทั้งฐานข้อมูล และไฟล์ทั้งหมดบนเซิร์ฟเวอร์ (โดยเฉพาะ settings/ datas/ และ skin/)
  2. ถ้าอัปเกรดจากรุ่นก่อน 15.0.0 ให้คัดลอกเนื้อหาหน้า home เดิมเก็บไว้ (ดูหัวข้อด้านบน)
  3. ลบโค้ดของรุ่นเดิมออก เหลือไว้เฉพาะโฟลเดอร์ settings/ และ datas/
    • settings/config.php และ settings/database.php ต้องอยู่ครบ ตัวติดตั้งใช้สองไฟล์นี้ตรวจว่าเป็นการอัปเกรด ถ้าไม่มี จะกลายเป็นการติดตั้งใหม่
    • โฟลเดอร์ของรุ่นเดิมที่รุ่นนี้ไม่ใช้แล้ว (เช่น skin/ Widgets/ ckeditor/ PDF/) ไม่ต้องอัปโหลดกลับ
  4. อัปโหลดไฟล์ทั้งหมดของรุ่นใหม่ขึ้นเซิร์ฟเวอร์ (รวม .htaccess)
  5. เปิด http://โดเมนของคุณ/install/ ตัวติดตั้งจะเข้าโหมดปรับรุ่นเอง แล้วทำตามขั้นตอน
    1. ตรวจสอบโฟลเดอร์และไฟล์ที่ต้องเขียนได้
    2. กรอกชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบสูงสุดของเว็บเดิม และติ๊กยืนยันว่าสำรองฐานข้อมูลแล้ว
    3. ตัวอัปเกรดตรวจฐานข้อมูลก่อนแก้ไขทุกครั้ง ถ้าพบปัญหาจะหยุดโดยยังไม่แตะข้อมูล พร้อมบอกวิธีแก้ ถ้าผ่าน จะปรับตารางทั้งหมด แปลงข้อมูล เทียบจำนวนแถวก่อน/หลัง และบันทึกผลไว้ที่ datas/logs/
  6. หลังอัปเกรดเสร็จ
    • แก้เนื้อหาหน้า home ให้เหลือเฉพาะข้อความ (อัปเกรดจากรุ่นก่อน 15.0.0)
    • เลือกธีมและตรวจหน้าเว็บ เมนู และวิดเจ็ต
    • ลบโฟลเดอร์ install/ ออกจากเซิร์ฟเวอร์
    • ตั้ง DEBUG ใน load.php เป็น 0 สำหรับเว็บที่ใช้งานจริง

สมาชิกเดิมเข้าระบบด้วยรหัสผ่านเดิมได้ ตัวอัปเกรดรันซ้ำได้โดยไม่แก้สิ่งที่แก้ไปแล้ว ถ้าค้างกลางทาง ให้แก้สาเหตุตามที่แจ้ง แล้วเรียก /install/ ใหม่

โครงสร้างโฟลเดอร์

admin/       ระบบผู้ดูแล (/admin/)
Gcms/        คลาสส่วนกลางของ GCMS (หมวดหมู่ ธีม อีเมล การชำระเงิน AI ...)
install/     ตัวติดตั้งและตัวอัปเกรด (ลบออกหลังติดตั้ง/อัปเกรดเสร็จ)
Kotchasan/   PHP framework
language/    ไฟล์ภาษา
modules/     โมดูลของเว็บไซต์
Now/         Now.js framework
themes/      ธีมของหน้าเว็บ
Web/         ส่วนแสดงผลหน้าเว็บ
widgets/     วิดเจ็ต
datas/       ไฟล์ที่อัปโหลดและแคช (สร้างตอนติดตั้ง)
settings/    ค่ากำหนดของเว็บและฐานข้อมูล (สร้างตอนติดตั้ง)

สำหรับนักพัฒนา

ติดตั้งหรืออัปเกรดจากบรรทัดคำสั่ง (รันจาก root ของโปรเจ็ค) รายละเอียดตัวเลือกอยู่ที่หัวไฟล์แต่ละไฟล์

php install/cli-fresh.php <dbname> [prefix] --type=company   # ติดตั้งใหม่ลงฐานเปล่า
php install/cli-upgrade.php <username> <password> --confirm-backup   # อัปเกรดฐานใน settings/database.php
php install/cli-test.php --db-prefix=<ชื่อฐานทดสอบ>          # ชุดทดสอบตัวติดตั้งและตัวอัปเกรด

ข้อมูลตัวอย่างของแต่ละประเภทเว็บไซต์และสัญญาระหว่างธีมกับข้อมูลตัวอย่าง ดูที่ install/seeds/README.md

build Now.js ใหม่หลังแก้ซอร์สใน Now/

npm install
npm run build

สัญญาอนุญาต

MIT License © 2026 Goragod Wiriya

Releases

Packages

Used by

Contributors

Languages