ฉันพยายามอัปเดตเว็บไซต์ Joomla เป็นอัปเดตล่าสุดที่พวกเขาเปิดตัวในพื้นที่ผู้ดูแลระบบ
แต่หลังจากพยายามอัพเดท
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:
"มีข้อผิดพลาดเกิดขึ้น 0 ไม่สามารถเปิดไฟล์เพื่อเขียนบันทึก"
อะไรคือปัญหา?
ฉันพยายามอัปเดตเว็บไซต์ Joomla เป็นอัปเดตล่าสุดที่พวกเขาเปิดตัวในพื้นที่ผู้ดูแลระบบ
แต่หลังจากพยายามอัพเดท
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:
"มีข้อผิดพลาดเกิดขึ้น 0 ไม่สามารถเปิดไฟล์เพื่อเขียนบันทึก"
อะไรคือปัญหา?
คำตอบ:
ฟังดูเหมือนปัญหาเรื่องการอนุญาต
ในแบ็กเอนด์ Joomla ให้ไปที่:
ระบบ (เมนูด้านบน) >> ข้อมูลระบบ >> สิทธิ์ไดเรกทอรี
ตรวจสอบให้แน่ใจทุกไฟล์และโฟลเดอร์นอกเหนือจากทั่วโลกconfiguration.phpมีความสามารถเขียนได้
หากพวกเขาไม่ได้แล้วคุณจะต้องเปลี่ยนสิทธิ์เพื่อให้โฟลเดอร์ทั้งหมดมีการกำหนดให้755และไฟล์มีการกำหนดให้644
คุณสามารถทำได้โดยใช้ไคลเอนต์ FTP เช่น FileZilla หรือส่วนขยาย Joomla เช่นเครื่องมือผู้ดูแลระบบ
หากคุณทำสิ่งนี้ไปแล้วตรวจสอบให้แน่ใจว่าคุณได้กำหนดไดเรกทอรีบันทึกอย่างถูกต้องเนื่องจากบางครั้งเส้นทางไปยังโฟลเดอร์บันทึกอาจไม่ถูกต้อง ในการตรวจสอบ / เปลี่ยนเส้นทางใน Joomla backend ให้ไปที่Global Configurationจากนั้นเลือกแท็บเซิร์ฟเวอร์และตรวจสอบว่าโฟลเดอร์ Path to Logถูกต้องหรือไม่
นอกจากนี้โปรดทราบว่าคุณสามารถดาวน์โหลดแพ็คเกจการอัพเดท Joomla และอัปโหลดไปยังรูทของเว็บไซต์ของคุณและแตกไฟล์ได้แทนที่จะใช้คุณสมบัติการอัพเดท Joomla
หวังว่านี่จะช่วยได้
คุณต้องกำหนดค่าโฟลเดอร์ "/ log" ของคุณให้เป็นลิงก์แบบสัมบูรณ์ของเซิร์ฟเวอร์ของคุณในส่วนหลังของ Joomla ตัวอย่างเช่น: / www / public_html / log
สร้างไฟล์. php และวางรหัสนี้เพื่อให้ทราบว่าพา ธ สัมบูรณ์ไปยังเซิร์ฟเวอร์ของคุณคืออะไร อัปโหลดและโทรไปที่เบราว์เซอร์ของคุณเช่น: www.yourdomaine.com/path.php
นี่คือรหัส
<?php
$path = getcwd();
echo "Your Absolute Path is:" . $path;
?>
ข้อผิดพลาดเกิดขึ้นเนื่องจากเส้นทางการบันทึกและโฟลเดอร์ tmp ของคุณไม่ถูกต้อง คุณมีสองวิธีในการแก้ไขเส้นทางนี้:
ไปที่ ftp บัญชีของคุณและค้นหาไฟล์นี้และแก้ไขผ่าน cuteftp หรือ filezila หรือตัวจัดการไฟล์ .... configuration.php และค้นหาเส้นทางของ tmp หรือโฟลเดอร์บันทึกและแทนที่ด้วยเส้นทางที่ถูกต้อง
ไปที่ส่วนผู้ดูแลระบบของ joomla Global Configuration -> System --->
พา ธ ไปยังโฟลเดอร์บันทึก
*/home/**yourusername**/public_html/logs*
Global Configuration -> server ---> คุณสามารถเห็น Path to Temp Folder และเปลี่ยนเป็น
*/home/**yourusername**/public_html/tmp*
หลังบ้านคุณควรเปลี่ยนชื่อผู้ใช้บัญชีโฮสติ้งของคุณ
หากคุณใช้ plesk หรือ directadmin หรือแผงควบคุมอื่น ๆ คุณควรติดต่อฝ่ายสนับสนุนโฮสติ้งของคุณเกี่ยวกับที่อยู่พา ธ เหล่านี้และแทนที่ในตำแหน่งที่ฉันพูดถึง
หวังว่าปัญหาของคุณจะได้รับการแก้ไขและสิ่งนี้จะช่วยคุณได้
ห่อข้อมูลรอบตัวเล็กน้อยที่นี่ ...
ปัญหาการอนุญาตมักเกิดจาก 2 สาเหตุหลัก:
วิธีที่ดีที่สุดในการดูว่ามีปัญหาการอนุญาตจริงหรือไม่คือตรวจสอบในส่วนแบ็คเอนด์:
ระบบสารสนเทศ -> สิทธิ์ไดเรกทอรี
สิ่งนี้จะบอกคุณว่าไฟล์ / โฟลเดอร์ใดในรูทของการติดตั้ง Joomla ของคุณสามารถเขียนได้ (สีเขียว) หรือไม่สามารถเขียนได้ (สีแดง)
สำหรับกรณีที่ 1 -หนึ่งในวิธีที่ง่ายที่สุดในการจัดการกับสิทธิ์ที่ไม่ถูกต้องที่ได้รับมอบหมายในไฟล์ / โฟลเดอร์โดยระบบปฏิบัติการคือการใช้Akeeba ของเครื่องมือบริหารระบบ มันมียูทิลิตี้ในการตั้งค่าการอนุญาตที่คุณต้องการและนำไปใช้กับโฟลเดอร์ / ไฟล์ทั้งหมดของการติดตั้ง Joomla
สำหรับกรณีที่ 2 -ในกรณีที่คุณมีเส้นทางที่ผิดที่กำหนดไว้สำหรับไดเรกทอรี tmp / logคุณควรเปลี่ยนสิ่งนี้ในการกำหนดค่าส่วนกลางของ Joomla หากคุณไม่ทราบว่าโฮมไดเรกทอรีของโฮสติ้งคืออะไรควรถามผู้ให้บริการโฮสติ้งของคุณ
คุณสามารถแก้ไขเส้นทางเหล่านี้ได้จากแบ็กเอนด์ของ Joomla ในGlogal Configurationหรือผ่านทางตัวจัดการไฟล์ของโฮสติ้งของคุณหรือเชื่อมต่อกับFTPและแก้ไขไฟล์configuration.php
มักจะอยู่ในโฮสติ้ง cPanelนี้เป็นเช่น:
"/home/myHostingUsername/logs"
"/home/myHostingUsername/tmp"
ดังนั้นการค้นหาขั้นสุดท้ายสำหรับการตั้งค่าเหล่านี้ในไฟล์configuration.phpของคุณควรเป็นดังนี้:
public $log_path = '/home/myHostingUsername/logs';
public $tmp_path = '/home/myHostingUsername/tmp';
* โปรดระวังว่านี่เป็นหนึ่งใน "ความผิดพลาด" ที่เกิดขึ้นบ่อยที่สุดสำหรับผู้เริ่มต้น Joomla พวกเขาลืมเปลี่ยนพา ธ เหล่านี้ในไฟล์กำหนดค่าหลังจากย้ายไซต์จากโฮสต์อื่นโฟลเดอร์ย่อยหรือจากโลคัลโฮสต์ทำให้ไดเรกทอรีเหล่านี้ไม่สามารถเขียนทับได้
หากคุณไม่สามารถเข้าสู่ส่วนหลังของ Joomla แล้วคุณสามารถเปลี่ยนเส้นทางที่แน่นอนในไฟล์ configuration.php ในรากของการติดตั้ง Joomla ของคุณ
ฉันพยายามทุกอย่างตั้งแต่การตั้งค่าความเป็นเจ้าของของไดเรกทอรี ( logs/
, temp/
) ไปยังผู้ใช้ apache และฉันก็ตั้งค่าการอนุญาตให้มากไปกว่า777
นั้น แต่ก็ยังได้รับข้อผิดพลาดนี้
ดังนั้นดูเหมือนว่าไฟล์ที่มีชื่อerror.php
ได้รับการตั้งค่ายังคงไปuser
: เป็นgroup
root
ดังนั้นเมื่อฉันเปลี่ยนความเป็นเจ้าของไฟล์นี้สิ่งที่เริ่มทำงานได้ดี