สิทธิ์การเข้าถึงไฟล์

สิทธิ์การเข้าถึงไฟล์ (File Permission) คือการกำหนดสิทธิ์ว่าไฟล์/โฟลเดอร์ใดอ่านได้ เขียน(แก้ไข)ได้ เป็นต้นซึ่งในแต่ละระบบจะไม่เหมือนกัน บางระบบก็ไม่ต้องไปกำหนดค่าใด ๆแต่บางระบบต้องกำหนดสิทธิ์การเข้าถึงไฟล์/โฟลเดอร์ด้วย หากไม่กำหนดเมื่อมีการเข้าถึง ก็อาจจะเกิดข้อผิดพลาด ทำให้ไม่สามารถทำงานต่อไปได้
ปัญหาที่เกิดขึ้นหากไม่ได้กำหนดสิทธิ์การเข้าถึงไฟล์ เช่น เมื่ออัพโหลดไฟล์แล้วจะปรากฏข้อความว่า
Unable to create directory /home/user/public_html/wp-content/uploads/2008/11. Is its parent directory writable by the server?
ที่เป็นเช่นนี้เพราะไม่ได้กำหนดสิทธิ์ให้โฟลเดอร์ uploads นั้นเขียนได้นั่นเองและปัญหาที่เกิดจากการไม่กำหนดสิทธิ์การเข้าถึงไฟล์นี้มีอีกหลายอย่าง เช่นการแก้ไขธีมผ่านทาง Theme Editor และการปรับปรุงรูปแบบของ ลิงก์ถาวร (Permalinks)

โฮสต์ใดที่มีปัญหาและไม่มีปัญหา
ปัญหาเหล่านี้ หากจำลองเครื่องคอมพิวเตอร์ (PC) ให้เป็น WebServer ด้วย XAMPP หรือ AppServ จะไม่มีปัญหาแต่อย่างใด (มีปัญหาตรง Permalinks ซึ่งเกี่ยวกับการเปิด mod_rewirte module ใน Apache จะไม่กล่าวในบทความนี้เพราะไม่ได้เกี่ยวกับสิทธิ์การเข้าถึงไฟล์) คือ ไม่ต้องกำหนดสิทธิ์ในการเข้าถึงไฟล์สามารถใช้งานได้ตามปกติ
แต่ปัญหานี้เกิดกับการใช้ hosting เพื่อทำเว็บบางระบบ เช่น hosting ของ000webhost.comซึ่งจะต้องมีการกำหนดสิทธิ์การเข้าถึงไฟล์ก่อน หากไม่กำหนดจะเกิดปัญหาขึ้นคือไม่สามารถเขียน/แก้ไขไฟล์ได้ รวมทั้งยังไม่สนับสนุน mod_rewrite ด้วย
ส่วนบาง hosting ที่ไม่มีปัญหาก็คือbluehostซึ่งจะรองรับ mod_rewrite ทำให้ไม่มีปัญหาเรื่องการปรับแต่ง Permalinks รวมทั้งการกำหนดการเข้าถึงไฟล์ทั้งไฟล์ธีม และในส่วนของโฟลเดอร์ uploads ที่ใช้สำหรับเก็บไฟล์ที่เราอัพโหลดเข้าไปในการใช้งาน WordPress กับ Bluehost นั้น ไม่ต้องปรับแต่งอะไรเลยทุกอย่างอัตโนมัติหมด
จะรู้ได้อย่างไรว่ามีปัญหา
การที่เราจะทราบว่า hosting ที่เราใช้นั้นมีปัญหาเรื่องการกำหนดสิทธิ์หรือไม่อย่างแรกก็คือใช้งานจริง ๆ เมื่อมีปัญหาแล้วก็ค่อยแก้ไข อย่างที่สองคือ เลือกเมนู Design แล้วเลือก Theme Editor เลื่อนจอภาพไปดูด้านล่างของหน้าต่างแก้ไขไฟล์หากพบข้อความ
You need to make this file writable before you can save your changes. See the Codex for more information.
ก็แสดงว่า มีปัญหาแล้วหล่ะครับ คุณจะต้องกำหนดสิทธิ์ให้สามารถเขียนไฟล์ได้
ปัญหาและการแก้ไข
ปัญหาที่เกิดขึ้นหากไม่ได้มีการกำหนดสิทธิ์การเข้าถึงไฟล์มีดังนี้
1. โฟลเดอร์ uploadsปกติแล้วโฟลเดอร์สำหรับเก็บไฟล์ที่เราอัพโหลดขึ้นไป ค่าเริ่มต้นของ WordPress จะอยู่ที่ wp-content/uploads หากไม่กำหนดสิทธิ์ให้เขียนได้จะเกิดปัญหาคืออัพโหลดไฟล์เข้าไปไม่ได้

ทางแก้ปัญหาก็คือ สร้างโฟลเดอร์ uploads ใน wp-content แล้วกำหนดสิทธิ์ให้เป็น 777 หรือ chmod 777 เมื่อกำหนดสิทธิ์แล้วก็จะสามารถอัพโหลดไฟล์ขึ้นไปได้อย่างไม่มีปัญหา
2. ไฟล์ธีมไฟล์ในธีมต่าง ๆ นั้นเราจะไม่สามารถแก้ไขได้เมื่อเปิดไฟล์ขึ้นมาแก้ไข จะปรากฏข้อความท้ายหน้าต่างแก้ไขไฟล์ให้เราไปแก้ไขไฟล์ให้สามารถเขียนได้เสียก่อน และจะไม่มีปุ่ม “Update File” ด้วย

ทางแก้ไขคือให้เรากำหนดสิทธิ์ของไฟล์ในธีมที่เราต้องการแก้ไข (หรือเผื่อเอาไว้แก้ไข) ให้เป็น 777 หรือ chmod 777
แนะนำ : หากคุณใช้การแก้ไขไฟล์แล้วอัพโหลดไฟล์ธีมผ่านทาง FTP Client การกำหนดสิทธิ์ก็ไม่จำเป็น หรือหากมีผู้ดูแลระบบหลายคนและหากไม่ต้องการให้ใครแก้ไขไฟล์ธีมต่าง ๆ ก็ไม่ต้องไปกำหนดสิทธิ์ให้เขียนได้
3. ไฟล์ .htaccessไฟล์นี้จำเป็นสำหรับการกำหนด Permalinks หาก hosting ใด ไม่สนับสนุน mod_rewrite จะทำให้ไม่สามารถกำหนด Permalinks ได้เมื่อกำหนด Permalinks WordPress จะแจ้งข้อความ “You shuold update your .htaccess now.”

ทางแก้ไขก็คือ ให้สร้างไฟล์.htaccessแล้วอัพโหลดไปไว้ยังโฟลเดอร์ที่เป็น Blog adress กล่าวคือ ในกรณีที่ WordPress address และ Blog address เป็น url เดียวกันก็อัพโหลดไว้ในโฟลเดอร์ที่ติดตั้ง WordPress
แต่ในกรณีที่เรียกบล็อกผ่านทาง http://domain.com แต่ติดตั้ง WordPress ไว้ที่ http://domain.com/wordpress ในกรณีนี้ ต้องอัพโหลดไว้ที่ root โฟลเดอร์ของ http://domain.com
เมื่ออัพโหลดไปแล้ว ให้เปลี่ยนสิทธิ์เป็น 777 หรือ chmod 777

เมื่อเปลี่ยนสิทธิ์ให้เขียนได้แล้ว ก็จะสามารถปรับปรุง Permalinks ได้
การเปลี่ยนสิทธิ์โดยใช้ FileZilla
การเปลี่ยนสิทธิ์การเข้าถึงไฟล์โดยใช้FileZilla FTP Clientนั้นทำดังนี้
ล็อกอินเข้าไปยังระบบ แล้วเลือกไฟล์/โฟลเดอร์ที่ต้องการจะเปลี่ยนสิทธิ์

แล้วคลิกเม้าส์ขวาบนไฟล์/โฟลเดอร์ที่ต้องการ แล้วเลือกเมนู “สิทธิการเข้าถึงแฟ้ม”

ป้อนเลขที่ต้องการ (777) ในช่อง Numeric value แล้วคลิกปุ่ม “ตกลง”
เมื่อเปลี่ยนสิทธิ์การเข้าถึงไฟล์/โฟลเดอร์ต่าง ๆ ให้เรียบร้อยก็จะสามารถใช้งาน WordPress ได้อย่างราบรื่นแล้วหล่ะครับ

ใส่ความเห็น