ปัญหาที่ผมเจอเมื่อเอา 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
- Safe mode ควรจะเป็น Safe Mode : Off
- Open basedir ควรจะเป็น Open basedir : none
- ดู Real path ของโฮสได้ที่ Cache Directory (ซึ่งแต่ละโฮสจะไม่เหมือนกัน) เพื่อที่จะมาใส่ที่ Log Directory ($log_path) และ Temp Directory ($tmp_path) ให้เหมือนกัน ในลักษณะดังรูป
หมายเหตุ : ข้อ 1 และ 2 ต้องแจ้งโฮสให้แก้ให้เราครับ
หากทำวิธีที่กล่าวมานี้แล้วยังไม่สามารถแก้ปัญหาได้มีวิธีสุดท้ายคือ …
/Joomla_root/libraries/joomla/filesystem/folder.php
แล้วหา ตัวแปรตามด้านล่าง
$obd = ini_get(‘open_basedir’);
แล้วให้ใส่ Comment ออก
//$obd = ini_get(‘open_basedir’);