สมมติว่าฉันต้องการเปลี่ยนขีด จำกัด การอัปโหลดสูงสุดสำหรับเว็บไซต์ Wordpress และฉันให้ค่าต่อไปนี้:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
ดังนั้น Wordpress อันไหนที่จะให้ความสำคัญกับการประมวลผลเมื่อจำเป็น?
สมมติว่าฉันต้องการเปลี่ยนขีด จำกัด การอัปโหลดสูงสุดสำหรับเว็บไซต์ Wordpress และฉันให้ค่าต่อไปนี้:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
ดังนั้น Wordpress อันไหนที่จะให้ความสำคัญกับการประมวลผลเมื่อจำเป็น?
คำตอบ:
มันไม่ชัดเจนจากคำถามของคุณสิ่งที่คุณมีการเปลี่ยนแปลงในแต่ละไฟล์เหล่านี้ แต่ฉันเข้าใจในแต่ละกรณีมันเป็นการตั้งค่า PHPupload_max_filesize
โดยทั่วไปการตั้งค่าจะถูกนำไปใช้ในคำสั่งนี้โดยแต่ละค่าจะมีผลต่อค่าก่อนหน้า:
ini_set()
อย่างไรก็ตามการตั้งค่านี้ถูกกำหนดเป็นPHP_INI_PERDIR
ซึ่งตามที่อธิบายไว้ในหน้านี้หมายความว่าไม่สามารถตั้งค่าได้โดยใช้ini_set
ดังนั้นจึงwp-config.php
ไม่สามารถเปลี่ยนได้ ดังนั้นในตัวอย่างที่คุณตั้งคำถามมันจะใช้ค่าจาก. htaccess เป็น 64MB
คุณสามารถตรวจสอบสิ่งนี้ได้โดยเรียกใช้echo ini_get('upload_max_filesize');
บางรหัสของคุณ
ทราบว่ามีสถานที่อื่น ๆ ค่าสามารถเป็นชุดที่ผมยังไม่ได้ระบุไว้ข้างต้นเช่นไฟล์ php.ini ต่อผู้ใช้และอื่น ๆ บริบทการกำหนดค่า นอกจากนี้บางส่วนยังสามารถปิดใช้งานได้ดังนั้นหากเซิร์ฟเวอร์ของคุณไม่ได้ตั้งค่าให้ใช้งานแบบ over-rides ใน. htaccess คุณจะไม่สามารถตั้งค่าที่นั่นได้
นอกจากนี้โปรดทราบว่า Wordpress มีตัวแปรการกำหนดค่าของตัวเองบางตัวซึ่งมีการโต้ตอบในรูปแบบต่างๆกับการกำหนดค่า PHP ยกตัวอย่างเช่นWP_MEMORY_LIMIT
จะพยายามที่จะยกระดับ PHP การmemory_limit
ตั้งค่าที่เริ่มต้น แต่มีรหัสที่จะตรวจสอบและไม่เคยลดความมัน ไม่มีกฎทั่วไปสำหรับสิ่งนี้มันจะแตกต่างกันสำหรับการตั้งค่าที่แตกต่างกัน
โดยทั่วไปไฟล์ทั้งสามจะถูกนำมาพิจารณา
WordPress / เซิร์ฟเวอร์ของคุณจะตรวจสอบตามลำดับต่อไปนี้:
wp-config.php > .htaccess > php.ini
หากบางสิ่งใน "ระดับที่สูงกว่า" (ต่อมาอยู่ในห่วงโซ่) กำลัง จำกัด ค่าของคุณค่าเดิมจะถูกละเว้นหรือเขียนทับ หากชิ้นส่วนของห่วงโซ่หายไปค่าใน.htaccess
ตัวอย่างจะใช้ค่าที่สูงขึ้นถัดไปแทน
ในตัวอย่างของคุณ.htaccess
จะ จำกัด เพียงmax_upload_size
64 MB แม้ว่าเซิร์ฟเวอร์ของคุณจะปรับได้สูงสุด 256 MB และ WordPress จะยอมรับขนาดไฟล์สูงสุด 128 MB ก่อน
นอกจากนี้คุณยังสามารถตั้งค่าขีด จำกัด ที่แตกต่างกันผ่าน.htaccess
ไฟล์และโดยการทำเช่นนี้คุณเขียนทับค่าจากphp.ini
เพื่อที่จะไม่ได้เป็นค่าที่ครอบงำ วิธีนี้ใช้งานได้ในสภาพแวดล้อมการโฮสต์จำนวนมากดังนั้นโอกาสค่อนข้างดีที่คุณสามารถเพิ่มหรือลดระดับmax_upload_size
ด้วยวิธีนี้
หากคุณมีการโฮสต์ / เซิร์ฟเวอร์ที่มีการกำหนดค่าอย่างเข้มงวดมากขึ้นอาจเป็นไปได้ว่าตัวเลือกในการยกเลิกการตั้งค่าphp.ini
นั้นถูกปิดใช้งาน ในกรณีนี้การเอาชนะmax_upload_size
จากการ.htaccess
ทำงานไม่ได้ดังนั้นนี่อาจเป็นปัจจัย จำกัด
.htaccess
อยู่ในกลางรายการทำไมสิ่งนั้นจะเป็นปัจจัย จำกัด ?
ฉันคิดว่า flomei ควรแก้ไขคำตอบเพราะนั่นคือคำตอบที่ถูกต้อง แต่การอธิบายที่ไม่ดี
Php.ini -> .htaccess -> wp-config.php
เป็นจริงตามลำดับที่แต่ละไฟล์จะถูกอ่านและจะตั้งค่าการพิจารณาว่าไม่มีการตั้งค่าไว้ก่อนหน้านี้ แต่ในกรณีที่มีการตั้งค่าที่กำหนดไว้ก่อนหน้านี้จะเป็น "over-ridden" เฉพาะในกรณีที่การตั้งค่าใหม่จะต่ำกว่า
นั่นหมายความว่าหากคุณมี wp-config.php ที่มี 64Mb และ. htaccess ที่มี 32 MB: wp-config.php จะไม่แทนที่การตั้งค่านั้นเนื่องจากมีขีด จำกัด ต่ำกว่าและคุณจะจบด้วย 32Mb
แต่ถ้าคุณมี wp-config.php ที่มี 32Mb และ. htaccess ที่มี 64 MB wp-config.php จะลดการตั้งค่าก่อนหน้าเป็น 32Mb
แก้ไข: หากต้องการชี้แจงอย่างชัดเจนเนื่องจาก IMSoP ชี้ให้เห็น wp-config.php เพียงแค่ให้คุณกำหนดขนาดที่ จำกัด กว่าการตั้งค่า PHP ที่อนุญาตหากคุณเปลี่ยน 'WP_MEMORY_LIMIT' มันจะไม่ปล่อยให้คุณไปไกลกว่านั้น ดังนั้นจึงไม่ใช่การตั้งค่าแทนที่จริง ๆ ในความเป็นจริงมีการตรวจสอบแยกทำในจุดต่าง ๆ ที่รันไทม์ หากคุณกำลังเปลี่ยนการตั้งค่า php upload_max_filesize
ในขณะที่เขาสมมติ (คำถามไม่ได้ระบุว่าคุณกำลังเปลี่ยนการตั้งค่าใด) แสดงว่าไม่มีผลใด ๆ
นอกจากนี้คุณจะต้องคำนึงถึงว่าpost_max_size
จะต้องมากกว่าupload_max_filesize
ในการตั้งค่า php ของคุณ
upload_max_filesize
ไม่สามารถเปลี่ยนแปลงได้ที่รันไทม์ (น่าจะเพราะมันสายเกินไปสำหรับมันจะมีผลกระทบใด ๆ ) เพื่อให้wp-config.php
ไม่สามารถส่งผลกระทบต่อมันด้วยวิธีหนึ่งหรืออื่น ๆ ในตัวเริ่มต้นของ 2MB ยังกล่าวถึงและคุณสามารถแน่นอนตั้งไว้สูงกว่า
wp-config.php
เป็นini_set('upload_max_filesize', '32M');
ก็จะมีไม่มีผลกระทบเลยทีเดียวเพราะการตั้งค่าที่ไม่สามารถตั้งค่าที่ใช้เวลาเป็นมันถูกกำหนดให้เป็น PHP_INI_PERDIR
(ยกเว้นว่าหน้าเอกสารนั้นผิด แต่ดูเหมือนไม่น่าเป็นไปได้)
wp-config.php
ค่าเฉพาะและการตั้งค่า PHP ด้วยตัวini_set()
เอง ตามที่ฉันเข้าใจwp-config.php
เป็นหลักเกี่ยวกับการตั้งค่า WordPress เฉพาะค่า config และสิ่งเหล่านี้ถูกจำกัดแน่นอน(เช่นกำหนดขีด จำกัด บน) โดยการตั้งค่าการกำหนดค่า PHP พื้นฐาน (เช่นWP_MEMORY_LIMIT
ที่กล่าวถึงในคำตอบ) นี่คือสิ่งที่ WordPress อย่างไรก็ตามเมื่อตั้งค่า PHP config เองโดยใช้ini_set()
ใน PHP ไม่มีข้อ จำกัด ดังกล่าว