ปัญหาการติดตั้ง GCMS แล้วหน้าเว็บเป็นหน้าขาวๆ
ปัญหน้าเว็บเป็นหน้าขาวๆ มักเกิดขึ้นทันทีหลังติดตั้งเสร็จแล้วครับ และอาจมีอาการ Error ของ Javascript ร่วมด้วย ลักษณะที่สำคัญของอาการนี้เนื่องจาก CSS ไม่ถูกโหลดครับ
ปัญหานี้เกิดจากตัวติดตั้งครับ ซึ่งมันไม่สามารถอ่าน Path ของ เซิร์ฟเวอร์ได้อย่างถูกต้อง ซึ่งจุดสังเกตุอาการนี้สามารถดูได้จากการ View Source ของเว็บครับ
มีอีกส่วนที่มักผิดพลาดร่วมด้วย คือไฟล์ .htaccess และ robots.txt ครับ
ส่วนสีน้ำเงินคือส่วนที่ต้องระบุให้ถูกต้อง โดยปกติจะมีค่าเดียวกับ BASE_PATH ครับ
ส่วนอีกไฟล์คือ robots.txt บรรทัดที่ต้องแก้ไขให้ถูกต้องคือ sitemap ครับ
ส่วนสีน้ำเงินคือที่ต้องระบให้ถูกต้องครับ โดยปกติจะมีค่าประมาณ WEB_URL ครับ และต้องเติม / ต่อท้ายด้วย
สังเกตุดู 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 เป็นต้น
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 ครับ และต้องเติม / ต่อท้ายด้วย