วิธีแก้ไขข้อผิดพลาดในการอัปโหลดรูปภาพใน WordPress
เผยแพร่แล้ว: 2018-02-28เมื่อเร็ว ๆ นี้เราได้เผยแพร่ คู่มือฉบับสมบูรณ์เพื่อแก้ไขข้อผิดพลาดของ WordPress และหนึ่งในผู้อ่านของเราส่งอีเมลถึงเราและเพื่อค้นหาวิธีแก้ไขข้อผิดพลาดในการอัปโหลดรูปภาพใน WordPress ไม่นานนักที่ฉันจำข้อผิดพลาดนี้ในบล็อกของฉันเองไม่ได้ซึ่งทำให้ฉันต้องดิ้นรนตลอดทั้งคืนและหาทางแก้ไขปัญหาและแก้ไขปัญหา
ตอนนั้นบล็อกของฉันเพิ่งเริ่มต้น ดังนั้นฉันจึงไม่ได้โพสต์วิธีแก้ปัญหานั้น แต่ก็ไม่เคยสายเกินไปที่จะช่วยผู้อื่นแก้ไขปัญหาแปลก ๆ นี้
โดยทั่วไป ด้วยปัญหานี้ คุณไม่สามารถอัปโหลดรูปภาพใดๆ ใน WordPress ได้ และหากการอัปโหลดผ่าน รูปภาพในไลบรารีสื่อจะแสดงว่าเสีย ในบทความนี้ เราจะแสดงวิธีแก้ไขปัญหาการอัปโหลดรูปภาพใน WordPress
นี่คือสาเหตุที่ทำให้คุณต้องเผชิญกับข้อผิดพลาดในการอัปโหลดรูปภาพของ WordPress
- ขนาดรูปภาพ
- หน่วยความจำ PHP
- ModSecurity
- ความขัดแย้งของปลั๊กอิน
- อนุญาตไฟล์
- เวอร์ชัน PHP บนเซิร์ฟเวอร์
ขนาดรูปภาพ
กรณีนี้จะเกิดขึ้นเมื่อคุณพยายามอัปโหลดรูปภาพที่มีขนาดพิกเซลขนาดใหญ่ เช่น รูปภาพที่มีขนาด 4000 x 3000 พิกเซล ซึ่งใหญ่เกินกว่าที่เซิร์ฟเวอร์ของคุณจะประมวลผลได้
เซิร์ฟเวอร์บางตัวแสดงข้อผิดพลาดแม้ว่ารูปภาพของคุณจะน้อยกว่าขนาดนั้น ทั้งหมดขึ้นอยู่กับทรัพยากรเซิร์ฟเวอร์ของคุณ
สารละลาย
ลดขนาดของภาพ อย่าเพิ่มภาพพิกเซลขนาดใหญ่มาก ตัวอย่างเช่น หากพื้นที่เนื้อหาโพสต์ของคุณกว้าง 800px อย่าเพิ่มรูปภาพที่ใหญ่กว่านั้น
ลดขนาดภาพด้วยการลองผิดลองถูก จนกว่าคุณจะสามารถอัปโหลดได้โดยไม่มีข้อผิดพลาด 1075px เพียงพอสำหรับไซต์ WordPress ส่วนใหญ่ หากคุณใช้ธีม WordPress แบบพรีเมียม ตรวจสอบเอกสารประกอบเพื่อทราบขนาดรูปภาพที่ต้องการ
เนื่องจากจะไม่มีที่ว่างเพียงพอสำหรับการขยายและสิ่งที่ต้องทำก็คือลดขนาดพื้นที่นั้นลง ปัญหาก็คือในขณะที่อัปโหลดรูปภาพขนาดนั้น WordPress จะใช้หน่วยความจำจำนวนมาก เนื่องจากเซิร์ฟเวอร์บางแห่งจำกัดจำนวนหน่วยความจำที่ WordPress สามารถใช้ได้ ในกรณีนี้ จะทำให้เกิดข้อผิดพลาดขณะอัปโหลด
หน่วยความจำ PHP
ฟังก์ชันและทรัพยากรของ WordPress สามารถถูกจำกัดได้หลังจากที่ทำงานบน PHP และเซิร์ฟเวอร์ที่ใช้ PHP สามารถจำกัดทรัพยากรนี้ได้
คุณสามารถเพิ่มหน่วยความจำ PHP ได้ด้วยตัวเองหรือสอบถามทีมสนับสนุนเว็บโฮสติ้งของคุณ หน่วยความจำสามารถเพิ่มได้ 2 วิธี:
สารละลาย
- เพิ่มหน่วยความจำ WordPress
- เพิ่มหน่วยความจำ PHP
คุณสามารถเพิ่มหน่วยความจำ WordPress ได้โดยเพิ่มรหัสนี้ใน wp-config.php ซึ่งอยู่ในไดเรกทอรีรากของ WordPress
กำหนด ('WP_MEMORY_LIMIT', '256M');
การตั้งค่าข้างต้นนี้อาจใช้ไม่ได้หากโฮสต์/เซิร์ฟเวอร์ของคุณไม่อนุญาตให้คุณเพิ่มขีดจำกัดหน่วยความจำ PHP หรือจำกัดในระดับหนึ่ง ดังนั้นฉันขอแนะนำให้พูดคุยกับฝ่ายสนับสนุนของคุณโดยตรงและขอให้พวกเขาเปลี่ยนขีดจำกัดให้คุณ คุณจะข้ามความยุ่งยาก คุณควรขอให้ทีมสนับสนุนเพิ่มหน่วยความจำ PHP ของคุณ แต่ถ้าคุณชอบความยุ่งยาก ให้เพิ่มโค้ดด้านล่างนี้ใน php.in หรือ php5.ini
memory_limit 256M
ModSecurity
คุณอาจไม่เคยสังเกตเห็นการรักษาความปลอดภัยนี้หรือคุณรู้เรื่องนี้ ModSecurity เรียกอีกอย่างว่า .htaccess และฉันหวังว่าคุณจะเห็นไฟล์นี้ในไดเร็กทอรีรากของ WordPress ส่วนใหญ่จะถูกซ่อนไว้
หากเซิร์ฟเวอร์ของคุณเปิดใช้งานการรักษาความปลอดภัย mod อาจเป็นกรณีของคุณที่ไฟล์นี้เป็นสาเหตุของปัญหา
สารละลาย
คุณต้องปิดใช้งานการรักษาความปลอดภัย mod สำหรับการอัปโหลดของคุณ ดังนั้นให้สร้าง .htaccess ภายในโฟลเดอร์ wp-admin และเพิ่มรหัสต่อไปนี้
<IfModule mod_security.c>
SecFilterEngine ปิด
SecFilterScanPOST ปิด
</IfModule>
ที่จะปิดการใช้งาน mod_security สำหรับไฟล์อัพโหลดรับรหัสใน wp-admin
หมายเหตุ: ลบสิ่งนี้หากทำให้เกิดข้อผิดพลาดบนเซิร์ฟเวอร์ของคุณ
ความขัดแย้งของปลั๊กอิน
ได้รับการยืนยันแล้วว่าในกรณีส่วนใหญ่ ปลั๊กอินขัดแย้งกับกระบวนการอัปโหลด ในหลายกรณี แม้แต่บล็อกของฉันก็ยังประสบปัญหาความขัดแย้งของปลั๊กอิน
เกิดจากปลั๊กอินที่ล้าสมัยหรือข้อผิดพลาดทางไวยากรณ์บางอย่างที่ทริกเกอร์เนื่องจากการอัปเกรดเป็นเวอร์ชันล่าสุดของปลั๊กอินตัวใดตัวหนึ่งหรืออื่น ๆ หรือ WordPress
ฉันพบว่าปลั๊กอินที่ช่วยในการอัปโหลด ย่อขนาด หรือบีบอัดรูปภาพส่วนใหญ่มักทำให้เกิดข้อผิดพลาด ในบางกรณี แอปพลิเคชันเดสก์ท็อปบางตัวทำให้เกิดข้อผิดพลาดนี้ด้วยหากคุณใช้แอปนั้นเพื่อบีบอัดหรือแสดงรูปภาพ
นอกจากนี้ jetpack ปลั๊กอินที่ช่วยอัปโหลดไปยัง cdn หรือ aws หรือเซิร์ฟเวอร์ระยะไกลทำให้เกิดข้อผิดพลาด WordPress ในการอัปโหลดภาพ
สารละลาย
โปรดดำเนินการปิดใช้งานปลั๊กอินครั้งละหนึ่งรายการ ล้างแคชและประวัติเบราว์เซอร์และไปที่ตัวอัปโหลดสื่ออีกครั้งเพื่ออัปโหลดภาพของคุณและดูว่าสำเร็จหรือไม่
หากไม่พยายามอย่าใช้ปลั๊กอิน WordPress และแอปเดสก์ท็อปใดๆ และอัปโหลดไฟล์ .png หรือ .jpg แบบ raw และตรวจสอบว่าใช้งานได้หรือไม่
อนุญาตไฟล์
หากไม่ใช่ปลั๊กอินหรือหน่วยความจำที่จำกัดซึ่งทำให้เกิดข้อผิดพลาดขณะอัปโหลดภาพ เราขอแนะนำให้คุณดูการอนุญาตไฟล์บนเซิร์ฟเวอร์ของคุณ
สิทธิ์ของไฟล์สามารถเปลี่ยนแปลงได้โดยอัตโนมัติแม้ว่าคุณจะไม่ได้เปลี่ยนแปลงก็ตาม
อยากรู้. มันเปลี่ยนไปอย่างไร?
หากคุณโฮสต์บริษัทเรียกใช้การอัปเกรดบนเซิร์ฟเวอร์ของตน หรือปลั๊กอินได้รับการอัปเดตโดยคุณ สิทธิ์ของไฟล์ก็สามารถเปลี่ยนแปลงได้
หากคุณกำลังใช้เว็บโฮสติ้งที่ใช้ร่วมกัน มีความเป็นไปได้ที่แฮ็กเกอร์จะเข้าถึงไฟล์ของคุณ และการอนุญาตไฟล์ของคุณอาจมีการเปลี่ยนแปลงโดยเพย์โหลดที่แฮ็กเกอร์อาจอัปโหลด
คุณสามารถเปลี่ยนการอนุญาตไฟล์ได้อย่างง่ายดายผ่านโปรแกรม FTP ฉันใช้ Cyberduck สำหรับ ftp ทั้งบน mac และ windows pc ของฉัน
เข้าถึงไฟล์ของคุณผ่าน FTP จากนั้นไปที่ไดเร็กทอรี /wp-content/ คุณจะเห็นโฟลเดอร์ /uploads/ คลิกขวาที่ไดเร็กทอรีอัพโหลดและเลือกการอนุญาตไฟล์
ในตอนแรก คุณจะต้องตั้งค่าการอนุญาตไฟล์สำหรับไดเร็กทอรีอัพโหลดและไดเร็กทอรีย่อยทั้งหมดภายใน 744 ในการทำเช่นนั้น ให้ป้อน 744 ในกล่องค่าตัวเลข จากนั้นทำเครื่องหมายที่ช่องถัดจาก Recurse into subdirectories
สุดท้าย คุณต้องคลิกที่ปุ่มตัวเลือก 'ใช้กับไดเรกทอรีเท่านั้น' คลิกที่ปุ่ม OK เพื่อใช้การเปลี่ยนแปลงเหล่านี้
คุณต้องทำซ้ำขั้นตอนเดิม แต่สำหรับโฟลเดอร์อัปโหลด
คุณจะต้องตั้งค่าการอนุญาตไฟล์สำหรับไฟล์ทั้งหมดในไดเร็กทอรีอัพโหลด ในการทำเช่นนั้น ให้คลิกขวาที่ไดเร็กทอรีอัพโหลดและเลือกการอนุญาตไฟล์
ในการอนุญาตไฟล์ กล่องโต้ตอบจะเปลี่ยนค่าตัวเลขเป็น 644 ทำเครื่องหมายที่ช่องถัดจาก Recurse into subdirectories คลิกที่ปุ่มตัวเลือกนำไปใช้กับไฟล์เท่านั้น คลิกที่ปุ่ม OK เพื่อใช้การเปลี่ยนแปลงเหล่านี้
โปรแกรม FTP ของคุณจะใช้การเปลี่ยนแปลงนี้ และโปรแกรมอัปโหลดรูปภาพของคุณจะทำงานอีกครั้ง
เวอร์ชัน PHP บนเซิร์ฟเวอร์
มันยังคงไม่มีใครสังเกตเห็นตลอดงานทั้งหมดที่คุณทำในขณะที่แก้ไขข้อผิดพลาดนี้ ในกรณีส่วนใหญ่ไม่มีใครคิดถึงเรื่องนี้
เหตุใดจึงควรเป็นเช่นนั้น ในกรณีส่วนใหญ่ผู้ใช้บอกว่ามันทำงานจนถึงเมื่อวานก่อนที่ฉันจะกดปุ่มอัปเดตนั้น
แต่การอัปเดตปลั๊กอิน ธีม หรือ WordPress สามารถทำให้เกิดข้อผิดพลาดนี้และข้อผิดพลาดอื่นๆ อีกหลายอย่าง เนื่องจาก WordPress สร้างขึ้นจาก PHP และมีมาตรฐานบางอย่างที่ต้องปฏิบัติตาม ดังนั้นนักพัฒนาจึงระบุเวอร์ชันที่เสถียรสำหรับ WordPress เสมอ
หากเวอร์ชัน PHP ของเซิร์ฟเวอร์ของคุณไม่เหมือนกับที่ WordPress กำหนด โปรดติดต่อเจ้าหน้าที่สนับสนุนเซิร์ฟเวอร์ของคุณและขอให้พวกเขาทำการเปลี่ยนแปลงเวอร์ชัน PHP ของคุณให้เป็นไปตามข้อกำหนดของ WordPress
บทสรุป
(อัพเดท) . ผู้อ่านของเราสองคนชี้ให้เห็นถึงการแก้ไขนี้ เราขอขอบคุณพวกเขาสำหรับสิ่งนั้น!
ตรวจสอบให้แน่ใจว่าคุณไม่มีเครื่องหมายอะพอสทรอฟีในชื่อไฟล์ภาพ (เช่น john's-blogging.png) เพราะจะทำให้เกิดข้อผิดพลาดเช่นกัน
(อัพเดท) . หากคุณกำลังใช้ปลั๊กอินเครื่องมือเพิ่มประสิทธิภาพรูปภาพ ให้ปิดใช้งานปลั๊กอินและดูว่าจะช่วยแก้ปัญหาได้หรือไม่
หากคุณยังคงประสบปัญหา โปรดแจ้งให้เราทราบ ฉันยินดีที่จะช่วยเหลือคุณ และแสดงความคิดเห็นด้านล่างว่าวิธีใดที่เหมาะกับคุณในการแก้ไขข้อผิดพลาดนี้