GCMS Ajax CMS

ปัญหาการติดตั้ง GCMS แล้วหน้าเว็บเป็นหน้าขาวๆ

ปัญหน้าเว็บเป็นหน้าขาวๆ มักเกิดขึ้นทันทีหลังติดตั้งเสร็จแล้วครับ และอาจมีอาการ Error ของ Javascript ร่วมด้วย ลักษณะที่สำคัญของอาการนี้เนื่องจาก CSS ไม่ถูกโหลดครับ

ปัญหานี้เกิดจากตัวติดตั้งครับ ซึ่งมันไม่สามารถอ่าน Path ของ เซิร์ฟเวอร์ได้อย่างถูกต้อง ซึ่งจุดสังเกตุอาการนี้สามารถดูได้จากการ View Source ของเว็บครับ

สังเกตุดู 2 บรรทัดสีน้ำเงินด้านบน จะเห็น URL ของ CSS และ Javascript เป็น URL ที่ดูไม่ปกติ ซึ่งจุดสำคัญของเรื่องนี้ก็คือมันไม่ได้ระบุไปยัง URL จริงๆของไฟล์ที่ต้องการ ทำให้มันไม่สามารถโหลดไฟล์ CSS และ Javascript ได้ครับ

การแก้ไข

เราสามารถระบุ Path ที่ถูกต้องให้กับระบบได้ครับ โดยการแก้ไขไฟล์ bin/vars.php ให้ชี้ไปยัง Path ที่ถูกต้อง

ตัวแปรที่เกี่ยวข้องมี 3 รายการ ให้เราระบุค่าที่ถูกต้องจาก Server ของเราด้วยตัวเอง

  • ROOT_PATH ใช้สำหรับระบุ Path ของ Server ตั้งแต่ Root ของระบบมาเลย ถ้าเป็น Windows ค่านี้จะต้องระบุมาตั้งแต่ Drive เช่น D:/htdocs/ เป็นต้น หรือ ถ้าเป็น linux ค่านี้อาจเป็น /var/www/htdocs/ เป็นต้น (ถ้าติดตั้ง GCMS ไว้ที่ root ของ Server คือ htdocs เลย) ซึ่งโดยทั่วไป สามารถอ่านค่าที่ถูกต้องนี้ได้จาก โปรแกรม ftp ที่ใช้ หรือ อ่านจาก Control Panel ของ Server
  • BASE_PATH ใช้สำหรับระบุ Path  ที่ติดตั้ง GCMS โดยเริ่มต้นที่ Document Root เช่น ระบุเป็นค่าว่าง ถ้าติดตั้ง GCMS ไว้ที่ root ของ Server หรือ ระบุโฟลเดอร์ที่ติดตั้ง หากติดตั้งไว้ใน โฟลเดอร์อื่น เช่น gcms/ หากติดตั้ง GCMS ไว้ภายในโฟลเดอร์ gcms/
  • WEB_URL ใช้สำหรับระบุ URL ของเว็บไซต์ อาจระบุเป็น IP ก็ได้ครับถ้ายังไม่มีโดเมน รวม path ที่ติดตั้งด้วย เช่น http://gcms.goragod.com หรือ http://www.goragod.com/gcms หรือ http://127.0.0.1/gcms เป็นต้น
ยกตัวอย่างการติดตั้ง GCMS บน Appserver บน Windows ที่โฟลเดอร์ gcms/ ซึ่ง URL ที่ทำการเรียกปกติ เป็น http://localhost/gcms/
define("ROOT_PATH", "C:/Appserver/www/gcms/");
define("BASE_PATH", "gcms/");
define("WEB_URL", "http://localhost/gcms");

มีอีกส่วนที่มักผิดพลาดร่วมด้วย คือไฟล์ .htaccess และ robots.txt ครับ
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(feed|menu|sitemap)\.(xml|rss)$ gcms/.php [L,QSA]
RewriteRule ^(.*).rss$ gcms/feed.php?module= [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . gcms/index.php [L,QSA]
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/html "access plus 3600 seconds"
ExpiresByType application/xhtml+xml "access plus 3600 seconds"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(ico|jpg|jpeg|png|gif|swf|tpl)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
</IfModule>

ส่วนสีน้ำเงินคือส่วนที่ต้องระบุให้ถูกต้อง โดยปกติจะมีค่าเดียวกับ BASE_PATH ครับ

ส่วนอีกไฟล์คือ robots.txt บรรทัดที่ต้องแก้ไขให้ถูกต้องคือ sitemap ครับ
sitemap: http://localhost/gcms/sitemap.xml

ส่วนสีน้ำเงินคือที่ต้องระบให้ถูกต้องครับ โดยปกติจะมีค่าประมาณ WEB_URL ครับ และต้องเติม / ต่อท้ายด้วย