דילוג לתוכן
תצורה

איך להגדיל את מגבלת ההעלאה בוורדפרס (בכל אחסון)

בדקו מה מגבלת ההעלאה הנוכחית בוורדפרס, ואז הגדילו אותה במקום הנכון לאחסון שלכם: php.ini, .user.ini, .htaccess, cPanel, Nginx או Cloudflare.

פורסם עודכן

כדי להגדיל את מגבלת ההעלאה בוורדפרס, הגדילו שתי הגדרות PHP, upload_max_filesize ו-post_max_size, בקובץ ההגדרות שהאחסון שלכם באמת קורא. בשרת שאתם מנהלים בעצמכם זה php.ini, ברוב האחסונים המשותפים שמריצים PHP-FPM או FastCGI זה .user.ini, .htaccess רק כש-Apache מריץ את PHP כמודול, או ה-MultiPHP INI Editor ב-cPanel. אם השרת שלכם מריץ Nginx, הגדילו גם את client_max_body_size. עריכה של wp-config.php לא תשנה את מגבלת ההעלאה.

כלי גודל ההעלאה המקסימלי של וורדפרס הופך גודל יעד אחד לערכים תואמים ל-php.ini (או .user.ini), ל-.htaccess ול-wp-config.php, כך שתוכלו להדביק במקום להקליד ידנית.

שלב 1: בדקו את מגבלת ההעלאה הנוכחית

לפני שמשנים משהו, ביררו מה המגבלה עכשיו ואיזו הגדרה קובעת אותה.

  • מדיה > הוספת קובץ חדש. מסך ההעלאה מציג את גודל הקובץ המקסימלי להעלאה. זה המספר שאתם רוצים להגדיל.
  • כלים > בריאות האתר > מידע. הרחיבו את טיפול במדיה. התיעוד של בריאות האתר מפרט מה מוצג שם: הגודל המקסימלי המותר של נתוני POST, הגודל המקסימלי של קובץ שהועלה, וגודל הקובץ האפקטיבי המקסימלי, שהוא הקטן מבין השניים. החלק Server מציג ערכי PHP נוספים.
מסך Upload Media של WordPress עם השורה Maximum upload file size: 2 GB מתחת לאזור ההעלאה
כאן המגבלה מופיעה במסך ההעלאה, מתחת לאזור ההעלאה. הערך 2 GB הוא של שרת הבדיקה שלנו; חברות אחסון רבות מגדירות הרבה פחות.
המקטע Media Handling ב-Site Health Info של WordPress, עם max size of post data allowed, max size of an uploaded file ו-max effective file size
Tools > Site Health > Info > Media Handling באתר הבדיקה שלנו, עם המגבלות של post data, של קובץ שהועלה והמגבלה האפקטיבית בשורות נפרדות.

וורדפרס מחשב את המגבלה שלו ב-wp_max_upload_size(), שקורא את upload_max_filesize ואת post_max_size מ-PHP ומשתמש בקטן מביניהם. אם אחד מהם 64M והשני 8M, המגבלה שלכם היא 8M.

שלב 2: דעו אילו הגדרות חשובות

הגדרהמה היא מגבילהברירת מחדל של PHPאיפה אפשר לשנות אותה
upload_max_filesizeהקובץ הבודד הגדול ביותר שמועלה2Mphp.ini, .user.ini, .htaccess, httpd.conf
post_max_sizeכל בקשת ה-POST, כולל הקובץ8Mphp.ini, .user.ini, .htaccess, httpd.conf
memory_limitהזיכרון ש-PHP יכול להשתמש בו בזמן ריצה128Mבכל מקום, כולל wp-config.php
max_execution_timeמספר השניות שסקריפט יכול לרוץ30בכל מקום, כולל wp-config.php
client_max_body_size (Nginx)גוף הבקשה ש-Nginx מוכן לקבל1mרק בהגדרות Nginx

ברירות המחדל של PHP ומצבי השינוי לקוחים מרשימת ההנחיות של php.ini; ברירת המחדל של Nginx לקוחה מהתיעוד של מודול הליבה של Nginx. רוב חברות האחסון מגדירות ערכים גבוהים יותר מברירות המחדל של PHP, ולכן בריאות האתר היא המקום לקרוא בו את המספרים האמיתיים שלכם.

upload_max_filesize ו-post_max_size הן מה ש-PHP מכנה הגדרות INI_PERDIR: אפשר להגדיר אותן ב-php.ini, .htaccess, httpd.conf או .user.ini ובשום מקום אחר. memory_limit לא מגביל את גודל הקובץ, אבל וורדפרס צריך זיכרון כדי ליצור עותקים מוקטנים של תמונות גדולות, ולכן העלאה גדולה עדיין יכולה להיכשל עם שגיאת זיכרון שנגמר אחרי שהיא מגיעה.

שלב 3: הגדילו את המגבלה במקום הנכון לאחסון שלכם

הסביבה שלכםאיפה להגדירהערות
VPS או שרת ייעודיקובץ ה-php.ini ש-PHP באמת טועןהפעילו מחדש את PHP-FPM או את Apache אחר כך
אחסון משותף עם PHP-FPM או FastCGI.user.ini בתיקיית השורש של וורדפרסיכול לקחת עד 5 דקות עד שזה נכנס לתוקף
Apache עם PHP כמודול (mod_php).htaccess עם php_valueגורם לשגיאת 500 תחת PHP-FPM או FastCGI
אחסון עם cPanelSoftware > MultiPHP INI Editorכותב בשבילכם את php.ini, .user.ini או .htaccess
Nginx לפני PHPclient_max_body_size בנוסף לערכי PHPאחרת Nginx מחזיר 413
אחסון וורדפרס מנוהללוח הבקרה של האחסון או התמיכהאחסונים רבים מגבילים העלאות ברמת הפלטפורמה
אתר מאחורי Cloudflareמגבלת ההעלאה של Cloudflare עצמה100 MB בחבילות Free ו-Pro

php.ini (שרת שאתם מנהלים)

קודם מצאו את הקובץ שנטען. צרו קובץ זמני שמכיל <?php phpinfo();, פתחו אותו בדפדפן, קראו את השורה “Loaded Configuration File”, ואז מחקו את הקובץ. ערכו את ה-php.ini הזה:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

אחר כך הפעילו מחדש את PHP כדי שיקרא את השינוי. ב-PHP-FPM שם השירות כולל את הגרסה, למשל sudo systemctl restart php8.3-fpm ב-Debian או Ubuntu. עם mod_php, הפעילו מחדש את Apache.

.user.ini (רוב האחסונים המשותפים)

PHP קורא קבצי .user.ini רק כשהוא רץ כ-CGI או FastCGI, וזה כולל PHP-FPM. צרו או ערכו .user.ini בתיקייה שמכילה את wp-config.php:

upload_max_filesize = 128M
post_max_size = 130M

PHP קורא את הקבצים האלה מחדש כל user_ini.cache_ttl שניות, וברירת המחדל היא 300. חכו חמש דקות לפני שאתם מחליטים שזה לא עבד, או הפעילו מחדש את PHP-FPM אם אפשר.

.htaccess (רק Apache עם mod_php)

php_value upload_max_filesize 128M
php_value post_max_size 130M

המדריך של PHP מתאר את ההנחיות האלה עבור PHP שרץ כמודול של Apache. אם האתר מציג 500 Internal Server Error מיד אחרי השמירה, PHP רץ כ-FastCGI או כ-PHP-FPM. הסירו את השורות והשתמשו ב-.user.ini במקום.

MultiPHP INI Editor ב-cPanel

ב-cPanel, פתחו את Software > MultiPHP INI Editor, בחרו את הדומיין ושנו את הערכים ב-Basic Mode. לפי התיעוד של cPanel, Basic Mode שומר לקבצי php.ini, .user.ini ו-.htaccess בהתאם לקובץ שתומך בהגדרה, כך שלא צריך לדעת באיזה מהם השרת שלכם משתמש.

Nginx

Nginx בודק את גודל הבקשה לפני ש-PHP רואה אותה. כשבקשה גדולה מ-client_max_body_size, Nginx מחזיר 413 Request Entity Too Large. ברירת המחדל היא 1m. הוסיפו בבלוק server ערך גדול לפחות כמו post_max_size:

client_max_body_size 130M;

בדקו וטענו מחדש עם sudo nginx -t && sudo systemctl reload nginx. ב-Apache ההגדרה המקבילה היא LimitRequestBody, ולרוב אין צורך לשנות אותה באחסון וורדפרס רגיל.

אחסונים מנוהלים ו-Cloudflare

חלק מאחסוני הוורדפרס המנוהלים מתעלמים מה-php.ini או מה-.user.ini שלכם וקובעים את המגבלה לכל הפלטפורמה. אם בריאות האתר עדיין מציג את המספר הישן אחרי השינוי, שאלו את חברת האחסון מה המקסימום והאם היא יכולה להגדיל אותו.

אם האתר עובר דרך Cloudflare, ל-Cloudflare יש מגבלה משלה. תיעוד המטמון שלה מפרט גודל העלאה מקסימלי של 100 MB בחבילות Free ו-Pro, 200 MB ב-Business ועד 5 GB ב-Enterprise. שום הגדרת PHP לא עוקפת את זה.

למה wp-config.php לא עובד

מאמרים רבים מציעים להוסיף את זה ל-wp-config.php:

@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );

שתי ההגדרות הן INI_PERDIR, והתיעוד של PHP אומר שאי אפשר להגדיר הגדרות מהמצב הזה עם ini_set(). ה-@ מסתיר את הכישלון, כך שהשורות נראות תמימות ולא משנות כלום. מה ש-wp-config.php כן יכול לשנות הוא הזיכרון, כי את memory_limit אפשר להגדיר בכל מקום:

define( 'WP_MEMORY_LIMIT', '256M' );

זה עוזר כשתמונות גדולות נכשלות בזמן העיבוד. זה לא משנה את גודל הקובץ המקסימלי להעלאה.

שלב 4: ודאו שהשינוי נקלט

טענו מחדש את מדיה > הוספת קובץ חדש ובדקו שגודל הקובץ המקסימלי להעלאה מציג את הערך החדש. אם לא:

  • בדקו ש-post_max_size גדול לפחות כמו upload_max_filesize. וורדפרס משתמש בקטן מביניהם.
  • ודאו שערכתם את הקובץ ש-PHP באמת טוען. php.ini בתיקייה הלא נכונה לא נלקח בחשבון.
  • חכו חמש דקות אחרי שינוי ב-.user.ini, או הפעילו מחדש את PHP-FPM.
  • אם המספר בוורדפרס השתנה אבל העלאות עדיין נכשלות עם 413, החסימה נמצאת ב-Nginx, בפרוקסי של האחסון או ב-Cloudflare.
  • אם ההעלאה מגיעה לוורדפרס ואז נכשלת עם “שגיאת HTTP”, הגודל כבר לא הבעיה. המדריך שלנו לשגיאת HTTP בהעלאת תמונה בוורדפרס מסביר את הסיבות הנפוצות.

לאיזה ערך כדאי להגדיר?

הגדירו אותו לפי הקובץ הגדול ביותר שאתם באמת צריכים להעלות, עם קצת מרווח, ושמרו את post_max_size מעט מעל upload_max_filesize. העלאות גדולות גם לוקחות יותר זמן, אז הגדילו את max_execution_time אם קבצים גדולים נתקעים בחיבורים איטיים. לקבצים גדולים מאוד, כמו סרטונים ארוכים או ארכיוני גיבוי, העלאה דרך SFTP או עם תוסף שמעלה בחלקים היא בדרך כלל אמינה יותר מהעלאה ענקית אחת בדפדפן, ומגבלת החבילה של Cloudflare עשויה ממילא לפסול את הדרך דרך הדפדפן.

כשאתם יודעים מה היעד, כלי גודל ההעלאה המקסימלי כותב בשבילכם את שורות ה-PHP התואמות. הוסיפו בעצמכם את שורת ה-Nginx מהמדריך הזה אם השרת שלכם מריץ Nginx.

FAQ

שאלות

איך בודקים את מגבלת ההעלאה הנוכחית בוורדפרס?

היכנסו למדיה > הוספת קובץ חדש. מסך ההעלאה מציג את גודל הקובץ המקסימלי להעלאה. לפרטים שמאחוריו, פתחו את כלים > בריאות האתר > מידע והרחיבו את טיפול במדיה, שמפרט את הגודל המקסימלי של קובץ שהועלה, את הגודל המקסימלי של נתוני POST ואת גודל הקובץ האפקטיבי המקסימלי, שהוא הקטן מבין השניים.

למה וורדפרס אומר שהקובץ שהועלה חורג מהנחיית upload_max_filesize ב-php.ini?

הקובץ גדול מההגדרה upload_max_filesize של PHP. וורדפרס לא קובע את המגבלה הזו, הוא קורא אותה מ-PHP. הגדילו את upload_max_filesize ואת post_max_size יחד ב-php.ini, ב-.user.ini או, ב-Apache עם mod_php, ב-.htaccess. ברירת המחדל של PHP עצמו ל-upload_max_filesize היא רק 2M, אבל רוב חברות האחסון מגדירות ערך גבוה יותר.

אפשר להגדיל את מגבלת ההעלאה מתוך wp-config.php?

לא. upload_max_filesize ו-post_max_size הן הגדרות PHP_INI_PERDIR, ש-PHP מקבל רק מ-php.ini, .htaccess, httpd.conf או .user.ini. שורת ini_set() ב-wp-config.php רצה בלי שגיאה ולא משנה כלום. wp-config.php יכול להגדיל את מגבלת הזיכרון של וורדפרס, אבל הזיכרון הוא לא מה שמגביל את גודל הקובץ.

למה אני עדיין מקבל 413 Request Entity Too Large אחרי שהגדלתי את מגבלות PHP?

משהו שנמצא לפני PHP דוחה את הבקשה. ב-Nginx זה client_max_body_size, שברירת המחדל שלו היא 1m והוא מחזיר שגיאת 413 כשחורגים ממנו. הגדילו אותו בבלוק server וטענו מחדש את Nginx. אם האתר שלכם עובר דרך Cloudflare, גם מגבלת גודל ההעלאה של החבילה שלכם יכולה לעצור את הבקשה לפני שהיא מגיעה לשרת.

האם post_max_size צריך להיות גדול מ-upload_max_filesize?

הוא צריך להיות לפחות באותו גודל, וקצת יותר גדול זה בטוח יותר. הקובץ נשלח בתוך בקשת POST יחד עם נתוני טופס אחרים, כך שכל הבקשה נספרת מול post_max_size. וורדפרס משתמש בקטן מבין שני הערכים כמגבלת ההעלאה, ולכן הגדלה של upload_max_filesize בלבד משאירה את המגבלה איפה שהייתה.