แก้ไข httpd.conf + .htaccess เพื่อเปิดใช้ Clean URL แล้วใช้งานระบบ Drupal ไม่ได้ค่ะ
August 10, 2010
น้องที่ทำงานช่วยติดตั้ง Drupal ในเครื่อง Server ให้ค่ะ
โดยใช้ OS CentOS 5.2 , MySQL V.5.1.47, PHP V.5.2.13, Drupal V.6.17, Apache 2.2.15
โดยติดตั้ง Drupal ไว้ที่ /apps/drupal/httpd/vroot/drupal
ส่วน httpd.conf อยู่ที่ /apps/httpd/conf
ตอนแรกก็สามารถใช้งาน Drupal ได้ตามปกติ แต่พอแก้ไข httpd.conf + .htaccess เพื่อเปิดใช้ Clean URL ตาม Handbook
แล้ว Restart Server ปรากฏว่าตอนนี้ไม่สามารถเข้าใช้งานระบบ Drupal ได้เลยค่ะ พอพิมพ์ URL:http://mysite.com/drupal ระบบกลับแสดงหน้า index.php ที่เป็น php code แทนค่ะ
ไม่ทราบว่าจะมีวิธีไหนแก้ไขได้บ้างค่ะ ลองเอา httpd.conf + .htaccess ก่อนแก้ลงไปทับที่เดิมแล้วก็ยังเข้าไม่ได้อยู่ดีค่ะ
ขอบคุณล่วงหน้าค่ะ

ปัญหาน่าจะอยู่ที่ตั้ง
ปัญหาน่าจะอยู่ที่ตั้ง DocumentRoot กับ RewriteBase ไม่ถูกต้องจ้า
ไม่ทราบว่า httpd.conf
ไม่ทราบว่า httpd.conf .htaccess แก้ตามนี้ ถูกไหมค่ะ ต้องแก้ไขตรงไหนอีกบ้างหรือเปล่า ขอบคุณอีกรอบที่มาตอบค่ะ
httpd.conf
DocumentRoot "/apps/httpd/htdocs"
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
.htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
O ไหนละนี่ แถว สุขุมวิท 62
O ไหนละนี่ แถว สุขุมวิท 62 หรือเปล่า
ลองเข้า หน้าอื่น ที่ไม่ใช่ drupal ได้ไหมครับ ลองดู
เปิด mod_rewrite หรือยัง จะทำ clean url
อย่าลืม restart apache และ mysql ด้วย
โดยติดตั้ง Drupal ไว้ที่
โดยติดตั้ง Drupal ไว้ที่ /apps/drupal/httpd/vroot/drupal
ส่วน httpd.conf อยู่ที่ /apps/httpd/conf
กับ อันนี้ มันแปลกๆครับ
DocumentRoot "/apps/httpd/htdocs"
ลองแก้ให้ DocumentRoot
ลองแก้ให้ DocumentRoot "/apps/httpd/htdocs" เป็น DocumentRoot "/apps/drupal/httpd/vroot/drupal" แล้ว Restart Apache + mysql ก็ยังไม่ได้ค่ะ mod_rewrite ก็เปิดแล้ว มีไฟล์.so อยู่ในเครื่องเรียบร้อยค่ะ ลองเข้าหน้า http://mysite.com/drupal/admin ก็ไม่ได้ค่ะ แสดงเป็น index.php แบบเป็น php code เหมือนกันค่ะ
>> กลับแสดงหน้า index.php
>> กลับแสดงหน้า index.php ที่เป็น php code แทนค่ะ
อันนี้น่าจะเป็นเพราะติดตั้ง php ไม่ถูกต้องครับ ไม่เกี่ยวกับ drupal
httpd.conf ควรจะอยู่ในห้อง
httpd.conf ควรจะอยู่ในห้อง /etc/httpd/conf ไม่ใช่เหรอครับ ส่วนการปรับแต่ง..
แค่เปลี่ยน AllowOverride None เป็น AllowOverride All แล้ว restart Apache ก็น่าจะใช้งาน mod rewrite ได้แล้วนะครับ ถ้าเปิดโมดูล mod_rewrite แล้ว
ส่วนตำแหน่ง DocumentRoot เลือกเอาสักอย่างครับ เช่น DocumentRoot "/apps/httpd/htdocs" ก็เอาไฟล์ที่อยู่ในโฟล์เดอร์ drupal-6.17 ทั้งหมด มาใส่ไว้ใน htdocs
หรือ DocumentRoot "/apps/httpd/htdocs/drupal-6.17" ก็เอาทั้งโฟลเดอร์ drupal-6.17 มาใส่ไว้ใน htdocs
แล้ว restart apache แล้วลองเข้าหน้าเว็บ แบบนี้ http://mysite.com/ ดูครับ
ส่วน .htaccess ลองใช้แบบไม่ปรับแต่งดูก่อนครับ (สำหรับ CentOS ผมไม่ค่อยแน่ใจว่าต้องแก้ไขไฟล์นี้รึเปล่า)