How to : แก้ปัญหา 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 “How to : แก้ปัญหา JFolder::create: Path not in open_basedir paths

  1. ผมแก้ได้แล้วครับ ง่ายนิดเดียว
    1.ไปที่เมนู Help/System info/PHP Setting
    2.ที่บรรทัดที่ 2 (Open basedir) ให้ทำการ copy path ทั้งหมดมา
    3.ไปที่เมนู Site/Global Configuration
    – ที่แท็บ Server > Path to Temp-Folder :ให้แทนที่ด้วย Path ที่ copy มาอ่ะครับ

  2. วิธีแก้ของคุณโกสใช้ได้ผลจิงๆครับ วิธีแก้ของเว็บอื่นๆลองแล้วไม่เวิร์ก

    ขอบคุณมากเลยคับ

  3. เราทำตาม Thanawat แล้วไม่เห็นได้เลยรบกวนช่วยตอบหน่อยนะค่ะ ว่าต้องทำอะไรเพิ่มเติมหรือเปล่าค่ะ(เรามือใหม่จริง ๆ) ขอบคุณค่ะ

  4. Aoo :
    Like or Dislike: 0  0เราทำตาม Thanawat แล้วไม่เห็นได้เลยรบกวนช่วยตอบหน่อยนะค่ะ ว่าต้องทำอะไรเพิ่มเติมหรือเปล่าค่ะ(เรามือใหม่จริง ๆ) ขอบคุณค่ะ

    ทำตามผมครบทุกข้อแล้วก็ยังไม่ได้เหรอ ลองเช็ค permission ดีหรือยังครับ

  5. ใกล้จะได้ใช้ Joomla 1.6 กันแ้้ว้วว ไม่รู้ว่าจะมีปัญหาเรื่องนี้อีกหรือเปล่า

  6. ขอบคุุณเจ้าของกระทู้นะครับ…………………มีอีกวิธีครับแนะนำเพิ่มนิดนึงเป็นช่องทางช่วยเหลือกันครับ
    คือว่า
    ผมก็เข้าไปอัพไฟล์ตรงๆนิแหละครับตรงที่เราอยากจะให้มันอยู่ ก็ได้เหมือนกันครับ ลองดูนะครับเผื่อจะทำได้…เหมือนผม

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

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

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

  9. ดู 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)

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

    ขอบคุณ

  10. ตอบคุณ chokchai

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

Comments are closed.