
⚙️ Så här fixar du felet "The uploaded file exceeds the upload_max_filesize directive" i php.ini
Du laddar upp ett tema, ett tillägg eller en bild till WordPress mediebibliotek och ser en röd rad: "The uploaded file exceeds the upload_max_filesize directive in php.ini." Filen är 10 megabyte, och WordPress vägrar ta emot den. En välbekant situation för alla som administrerar en webbplats.
Problemet ligger inte hos WordPress eller din fil. Webbhotell begränsar filstorleken för uppladdningar på PHP-nivå, och standardgränsen på 2 megabyte har inte ändrats på flera år. Du kan höja den på fem minuter med någon av de fem metoderna nedan, från den enklaste till den mer avancerade.
💡 Snabb översikt:
- Höj gränsen via wp-config.php med ett enda
ini_set-anrop, fungerar hos de flesta webbhotell - Ändra inställningar i cPanel via MultiPHP INI Editor om ditt webbhotell använder cPanel
- Skapa eller redigera php.ini via FTP, en metod som fungerar oavsett kontrollpanel
- Lägg till direktiv i.htaccess när du inte har tillgång till php.ini
- Som en sista utväg, lägg till
@ini_seti ditt barntemas functions.php
Var gränsen upload_max_filesize kommer ifrån
Direktivet upload_max_filesize finns i konfigurationsfilen php.ini, den huvudsakliga PHP-inställningsfilen på din server. Det bestämmer maxstorleken för en enskild uppladdad fil. Standardvärdet är 2 megabyte, vilket räcker för små bilder, men ett WordPress-tema eller en video ryms inte inom den gränsen.
Två andra direktiv samverkar med det: post_max_size (total storlek för POST-begäran, standard 8 MB) och memory_limit (minne tillgängligt för skriptet, standard 128 MB). Alla tre hänger ihop: om du höjer upload_max_filesize, kontrollera att post_max_size inte är lägre än det nya värdet, annars ligger begränsningen kvar på den tidigare nivån.
Du kan kontrollera aktuella gränser direkt från WordPress adminpanel: gå till Media → Lägg till ny och titta på raden under uppladdningsytan, som visar maxstorleken. Alternativt kan du installera tillägget PHP Info och hitta de relevanta direktiven i utdatan från phpinfo().
1. Höj gränsen via wp-config.php
Den snabbaste metoden som fungerar på de flesta delade webbhotell. Filen wp-config.php ligger i webbplatsens rotmapp och laddas innan någon WordPress-kod körs, så ini_set-direktiv i den får företräde.
Anslut till servern via en FTP-klient (FileZilla, ett gratis och pålitligt alternativ) eller öppna Filhanteraren i din webbhotells kontrollpanel. Leta reda på wp-config.php i rotmappen (vanligtvis public_html):

Lägg till följande rader i slutet av filen, före kommentaren /* That's all, stop editing! */:
1 @ini_set('upload_max_filesize', '64M'); 2 @ini_set('post_max_size', '80M'); 3 @ini_set('memory_limit', '256M'); 4 @ini_set('max_execution_time', '300');
Spara filen och ladda om sidan för WordPress mediebibliotek. Uppladdningsgränsen bör ändras till 64 megabyte. Om siffran inte har ändrats har webbhotellet blockerat ini_set, så gå vidare till nästa metod.
2. Ändra inställningar via MultiPHP INI Editor i cPanel
Om ditt webbhotell använder cPanel låter den inbyggda MultiPHP INI Editor dig ändra PHP-inställningar utan att manuellt redigera filer. Den tillämpar automatiskt värden på den valda webbplatsen och skriver över webbhotellets standardvärden.
Logga in i cPanel och leta reda på avsnittet Programvara → MultiPHP INI Editor:

Välj önskad webbplats från rullgardinsmenyn högst upp på sidan. Scrolla ner till direktivet upload_max_filesize och ange det nya värdet (till exempel 64M). Nedanför hittar du post_max_size och sätter det något högre, 80M. Klicka på Apply. Ändringarna träder i kraft omedelbart.
Denna metod är att föredra framför den första: cPanel hanterar syntax automatiskt, och inställningarna återställs inte efter WordPress-uppdateringar.
3. Redigera php.ini via FTP
Om du inte har tillgång till cPanel eller om ditt webbhotell inte stöder MultiPHP INI Editor, arbeta direkt med filen php.ini. Den styr alla PHP-inställningar, och att modifiera den är det mest tillförlitliga sättet att höja gränserna.
Anslut till servern via FTP och navigera till webbplatsens rotmapp. Leta reda på filen php.ini. Om den inte finns (användar-php.ini saknas ofta på delade webbhotell), skapa en ny textfil med det namnet:

Lägg till följande direktiv i filen:
1 upload_max_filesize = 64M 2 post_max_size = 80M 3 memory_limit = 256M 4 file_uploads = On 5 max_execution_time = 300 6 max_input_time = 300
Spara filen. För att ändringarna ska träda i kraft kräver vissa webbhotell ett suPHP-direktiv i filen .htaccess. Lägg till detta block i .htaccess:
1 <IfModule mod_suphp.c> 2 suPHP_ConfigPath /home/yourusername/public_html 3 </IfModule>
Ersätt yourusername med ditt webbhotellskontos användarnamn. Om sajten kraschar med ett felmeddelande efter att du lagt till detta block, ta bort det: din server körs på CGI och kräver inte suPHP.
På lokala servrar beror sökvägen till php.ini på plattformen: XAMPP (Windows): C:\xampp\php\php.ini; MAMP (macOS): /Applications/MAMP/conf/php/php.ini; LAMP (Linux): /etc/php/version/apache2/php.ini. Starta om webbservern efter redigering.
4. Lägg till direktiv i.htaccess
När webbhotellet har blockerat åtkomst till php.ini och ini_set inte fungerar, är den sista försvarslinjen på servernivå filen .htaccess. Den låter dig ställa in PHP-inställningar för en specifik sajtmapp med hjälp av php_value-direktiv.
Anslut via FTP och hitta .htaccess i rotmappen. Ladda ner en säkerhetskopia till din dator (obligatoriskt!). Lägg sedan till följande rader i slutet av filen:

1 php_value upload_max_filesize 64M 2 php_value post_max_size 80M 3 php_value memory_limit 256M 4 php_value max_execution_time 300 5 php_value max_input_time 300
Spara .htaccess och uppdatera sajten. Om ett 500 Internal Server Error visas istället för sajten, körs din server på CGI och php_value-direktivet i .htaccess stöds inte. Ta bort de tillagda raderna för att återställa sajten och använd metod 3 (skapa php.ini).
Vi behandlade 500-felet och dess variant 502 i detalj i vår guide för att fixa WordPress serverfel.
5. Lägg till @ini_set i ditt temas functions.php
Denna metod är för situationer när alla tidigare metoder är otillgängliga eller du vill behålla inställningarna i temats repository. Lägg till koden i ditt barntemas functions.php-fil, som körs vid varje anrop och åsidosätter gränserna i farten.
1 @ini_set('upload_max_filesize', '64M'); 2 @ini_set('post_max_size', '80M'); 3 @ini_set('memory_limit', '256M'); 4 @ini_set('max_execution_time', '300');
Placera koden i slutet av functions.php, men före avslutande ?> (om den finns). Använd ett barntema: när huvudtemat uppdateras nollställs redigeringar i huvudtemat functions.php, medan ett barntema överlever uppdateringar utan förluster.
Efter att du lagt till koden, kontrollera gränsen i WordPress mediebibliotek. Observera att på vissa webbhotell är ini_set för upload_max_filesize blockerad på PHP-nivå (direktivet PHP_INI_SYSTEM tillåter inte att värdet ändras under körning). I så fall ignoreras @ini_set tyst, och du behöver metod 3 eller 4.
Varför gränsen inte ändrades: diagnostik
Har du följt alla instruktioner men gränsen förblev densamma? Gå igenom denna checklista:
post_max_sizeär mindre än den nyaupload_max_filesize. Detta är den vanligaste orsaken:post_max_sizemåste vara minst lika med, och helst 20-30% större än,upload_max_filesize: PHP-dokumentationen kräver uttryckligenpost_max_size≥upload_max_filesize. Massuppladdningar av flera filer och formulärfält räknas in ipost_max_size.- Filen skapades i fel mapp. PHP letar efter
php.inii skriptkatalogen och går sedan uppåt i trädet till serverroten. Placeraphp.inii sajtroten (public_html), inte i en undermapp. - PHP-cache (OPcache) lagrar den gamla konfigurationen. Vissa servrar cachar
php.ini. Starta om PHP via webbhotellets kontrollpanel eller vänta 5-10 minuter för att cachen ska ogiltigförklaras. - Servern kör CGI/FastCGI och ignorerar
.htaccess. Ändra din approach: användphp.ini(metod 3) elleruser.iniför FastCGI. - Webbhotellet har låst gränsen. På ultrabilliga abonnemang är uppladdningsgränsen fast och kan inte ändras med någon metod förutom att uppgradera ditt abonnemang.
Om ingen av dessa punkter hjälpte, kontakta webbhotellets support. Ange din domän, metoden du använde för att ändra gränsen och be dem verifiera om åsidosättning av upload_max_filesize är tillåten på ditt abonnemang.
Videoguide
Se den steg-för-steg-process för att åtgärda detta fel från diagnostik till slutlig verifiering i denna video:
⁉️🤔 Vanliga frågor
Vilket värde på upload_max_filesize ska jag välja?
För de flesta sajter räcker 64 MB, vilket täcker uppladdning av teman, tillägg och högupplösta bilder. Om du arbetar med videofiler eller stora ZIP-arkiv via adminpanelen, sätt det till 128-256 MB. Jaga inte gigabyte utan anledning: ju högre gräns, desto mer minne reserverar servern för varje uppladdningsförfrågan.
Kan jag ladda upp en fil och kringgå gränsen?
Ja, via FTP. En FTP-klient ansluter direkt till servern och går inte genom PHP-hanteraren, så
upload_max_filesize-gränserna gäller inte för den. Ladda upp filen tillwp-content/uploadsvia FTP och registrera den sedan i WordPress mediebibliotek med hjälp av tillägget Add From Server.
Vad är skillnaden mellan upload_max_filesize och post_max_size?
upload_max_filesizeär den maximala storleken för en enskild fil i en uppladdning.post_max_sizeär den totala storleken för hela POST-förfrågan, inklusive alla filer, formulärfält och service-headers. Om du laddar upp tre filer på 20 MB vardera börupload_max_filesizevara ≥ 20 MB, medanpost_max_sizebör vara ≥ 60 MB plus lite buffert för formuläret. Därför sättspost_max_sizealltid högre änupload_max_filesize.
Varför återställs gränserna efter WordPress-uppdateringar?
WordPress rör inte PHP-serverinställningar under uppdateringar, men om du redigerade
wp-config.phpeller huvudtematsfunctions.phpkan kärn- eller temauppdateringar ha skrivit över dessa filer. Behåll alltid anpassade PHP-inställningar iphp.ini, cPanels MultiPHP INI Editor eller ett barntema: dessa platser påverkas inte av uppdateringar.
Behöver jag starta om servern efter att ha ändrat php.ini?
För delade hosting och cPanel: nej, ändringarna tillämpas automatiskt inom några minuter. För VPS och dedikerade servrar med PHP-FPM, starta om tjänsten:
sudo systemctl restart php-fpm(ellerphp8.3-fpm, beroende på version). Apache med mod_php fångar vanligtvis upp ändringar utan omstart.
Vad du ska göra om gränsen fortfarande inte ökar
De fem metoderna ovan täcker praktiskt taget alla hostingscenarier. Från grundläggande wp-config.php till barntemats functions.php har du gått igenom hela kedjan. Om gränsen förblir oförändrad efter att du ärligt har utfört varje steg och kört diagnostik, är orsaken en strikt policy hos hostingleverantören, och du kan inte kringgå den utan att byta abonnemang eller leverantör.
Kontakta supporten och fråga direkt om det är tillåtet att åsidosätta upload_max_filesize på ditt abonnemang. Ett "nej" är skäl att överväga att flytta till en VPS eller ett mer flexibelt delat abonnemang där du styr PHP-inställningarna utan hänsyn till serverns grannar. Under tiden kan du ladda upp stora filer via FTP: där finns inga storleksbegränsningar, och Add From Server kopplar in dem i mediebiblioteket.



