ปัญหา JFolder::create: Path not in open_basedir paths

joomla

ปัญหาที่ผมเจอเมื่อเอา Joomla จาก localhost ขึ้นบนโฮสเพื่อออนไลน์ คือ ถึงแม้ permission จะเป็น writable หมดแล้ว (Chmod 777)

แต่เมื่อติดตั้ง module หรือ component ต่าง ๆ ก็ยังติด Error บางตัวอยู่ เช่น

JFolder::create: Path not in open_basedir paths

หรือ

JFolder::create: Could not create directory

Warning! Failed to move file.
เหล่านี้ด้วยวิธีการของผมเอง ผมพบวิธีแก้ต่อไปนี้ครับ ( การตั้งเป็น ./logs  ./tmp บางครั้งใช้ไม่ได้ผล)

เข้าหน้า Administrator แล้วไปที่ Help >> System Info

  1. Safe mode ควรจะเป็น  Safe Mode : Off
  2. Open basedir ควรจะเป็น Open basedir : none
  3. ดู Real path ของโฮสได้ที่ Cache Directory (ซึ่งแต่ละโฮสจะไม่เหมือนกัน) เพื่อที่จะมาใส่ที่ Log Directory ($log_path) และ Temp Directory ($tmp_path) ให้เหมือนกัน ในลักษณะดังรูป
$log_path-joomla
$log_path-joomla

หมายเหตุ : ข้อ 1 และ 2 ต้องแจ้งโฮสให้แก้ให้เราครับ

หากทำวิธีที่กล่าวมานี้แล้วยังไม่สามารถแก้ปัญหาได้มีวิธีสุดท้ายคือ …

แก้ไฟล์

/Joomla_root/libraries/joomla/filesystem/folder.php

แล้วหา ตัวแปรตามด้านล่าง
$obd = ini_get(‘open_basedir’);

แล้วให้ใส่ Comment ออก
//$obd = ini_get(‘open_basedir’);

เป็นการบอกให้ Joomla ไม่ต้องเช็ค open_basedir แต่ไม่แนะนำให้แก้ libraries นะครับ
Tags:

15 thoughts on “ปัญหา JFolder::create: Path not in open_basedir paths

  1. ทำได้แล้ว สำเร็จเรียบร้อยดีทุกอย่างแจ่มจริง ขนาด host ผมไม่รองรับ joomla นะยังทำได้เลย ทำตามที่คุณบอก

  2. JFolder::create: Could not create directory
    Warning! Failed to move file.

    มันขึ้นแบบนี้อะค่ะ

  3. ดู Real path ของโฮสได้ที่ Cache Directory (ซึ่งแต่ละโฮสจะไม่เหมือนกัน) เพื่อที่จะมาใส่ที่ Log Directory ($log_path) และ Temp Directory ($tmp_path) ให้เหมือนกัน ในลักษณะดังรูป

    $log_path-joomla

    ยังไม่เข้าใจข้อ3 เอาpath ของ cache directory มาใส่Log Directory ($log_path) และ Temp Directory ($tmp_path)

    ทำอย่างไรครับ

    ขอบคุณ

  4. ตอบคุณ chokchai

    ถ้าสังเกตจะเห็นว่า path ข้างหน้านั้นเหมือนกัน เปลี่ยนแ่ค่ชื่โฟลเดอร์หลังสุด เช่น /log /tmp
    ก็คือชี้ทางให้มันไปอ่าน path ที่มีอยู่จริงนั่นเอง

Comments are closed.