
⚙️ Kuinka korjata "The uploaded file exceeds the upload_max_filesize directive" -virhe php.ini-tiedostossa
Lataat teeman, lisäosan tai kuvan WordPressin mediakirjastoon ja näet punaisen virheilmoituksen: "The uploaded file exceeds the upload_max_filesize directive in php.ini." Tiedosto on 10 megatavua, eikä WordPress hyväksy sitä. Tuttu tilanne jokaiselle, joka ylläpitää verkkosivustoa.
Ongelma ei ole WordPressissä eikä tiedostossasi. Hosting-palveluntarjoajat rajoittavat ladattavien tiedostojen kokoa PHP-tasolla, ja oletusarvoinen 2 megatavun raja ei ole muuttunut vuosiin. Voit nostaa sen viidessä minuutissa millä tahansa alla olevista viidestä menetelmästä, yksinkertaisimmasta edistyneempään.
💡 Pikaopas:
- Nosta rajaa wp-config.php-tiedoston kautta yhdellä
ini_set-kutsulla, toimii useimmilla palveluntarjoajilla - Muuta asetuksia cPanelissa MultiPHP INI Editorin kautta, jos palveluntarjoajasi käyttää cPanelia
- Luo tai muokkaa php.ini-tiedostoa FTP:n kautta, menetelmä joka toimii hallintapaneelista riippumatta
- Lisää direktiivejä.htaccess-tiedostoon, kun sinulla ei ole pääsyä php.ini-tiedostoon
- Viimeisenä keinona lisää
@ini_setlapsiteeman functions.php-tiedostoon
Mistä upload_max_filesize-raja tulee
upload_max_filesize-direktiivi sijaitsee php.ini-asetustiedostossa, joka on palvelimesi tärkein PHP-asetustiedosto. Se määrittää yksittäisen ladattavan tiedoston enimmäiskoon. Oletusarvo on 2 megatavua, mikä riittää pienille kuville, mutta WordPress-teema tai video ei mahdu tuohon rajaan.
Kaksi muuta direktiiviä toimii sen rinnalla: post_max_size (POST-pyynnön kokonaiskoko, oletus 8 Mt) ja memory_limit (skriptin käytettävissä oleva muisti, oletus 128 Mt). Kaikki kolme liittyvät toisiinsa: jos nostat upload_max_filesize-arvoa, varmista, ettei post_max_size ole uutta arvoa pienempi, muuten rajoitus pysyy aiemmalla tasolla.
Voit tarkistaa nykyiset rajat suoraan WordPressin hallintapaneelista: siirry kohtaan Media → Lisää uusi ja katso latausalueen alapuolella olevaa riviä, joka näyttää enimmäiskoon. Vaihtoehtoisesti asenna PHP Info -lisäosa ja etsi kyseiset direktiivit phpinfo()-tulosteesta.
1. Nosta rajaa wp-config.php-tiedoston kautta
Nopein menetelmä, joka toimii useimmilla jaetuilla hosting-palveluilla. wp-config.php-tiedosto sijaitsee sivuston juurikansiossa ja latautuu ennen minkään WordPress-koodin suorittamista, joten siinä olevat ini_set-direktiivit menevät muiden edelle.
Yhdistä palvelimelle FTP-asiakasohjelmalla (FileZilla, ilmainen ja luotettava vaihtoehto) tai avaa tiedostonhallinta hosting-palvelusi hallintapaneelissa. Etsi wp-config.php juurikansiosta (yleensä public_html):

Lisää seuraavat rivit tiedoston loppuun, ennen kommenttia /* 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');
Tallenna tiedosto ja päivitä WordPressin mediakirjaston sivu. Latausrajan pitäisi muuttua 64 megatavuun. Jos luku ei ole muuttunut, hosting-palveluntarjoaja on estänyt ini_set-funktion, joten siirry seuraavaan menetelmään.
2. Muuta asetuksia MultiPHP INI Editorin kautta cPanelissa
Jos palveluntarjoajasi käyttää cPanelia, sisäänrakennettu MultiPHP INI Editor antaa sinun muuttaa PHP-asetuksia ilman tiedostojen manuaalista muokkaamista. Se soveltaa arvot automaattisesti valittuun sivustoon ja korvaa hosting-oletusarvot.
Kirjaudu cPaneliin ja etsi Software → MultiPHP INI Editor -osio:

Valitse haluamasi sivusto sivun yläreunan pudotusvalikosta. Vieritä alas upload_max_filesize-direktiivin kohdalle ja syötä uusi arvo (esimerkiksi 64M). Etsi sen alta post_max_size ja aseta se hieman korkeammaksi, 80M. Klikkaa Apply. Muutokset tulevat voimaan välittömästi.
Tämä menetelmä on ensimmäistä parempi: cPanel hoitaa syntaksin automaattisesti, eivätkä asetukset nollaudu WordPress-päivitysten yhteydessä.
3. Muokkaa php.ini-tiedostoa FTP:n kautta
Jos sinulla ei ole pääsyä cPaneliin tai palveluntarjoajasi ei tue MultiPHP INI Editoria, työskentele suoraan php.ini-tiedoston kanssa. Se hallitsee kaikkia PHP-asetuksia, ja sen muokkaaminen on luotettavin tapa nostaa rajoja.
Yhdistä palvelimelle FTP:n kautta ja siirry sivuston juurikansioon. Etsi php.ini-tiedosto. Jos sitä ei ole (käyttäjän php.ini puuttuu usein jaetulta hostingilta), luo uusi tekstitiedosto tällä nimellä:

Lisää tiedostoon seuraavat direktiivit:
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
Tallenna tiedosto. Jotta muutokset tulevat voimaan, jotkin hosting-palveluntarjoajat vaativat suPHP-direktiivin .htaccess-tiedostossa. Lisää tämä lohko .htaccess-tiedostoon:
1 <IfModule mod_suphp.c> 2 suPHP_ConfigPath /home/yourusername/public_html 3 </IfModule>
Korvaa yourusername omalla hosting-tilisi käyttäjätunnuksella. Jos sivusto kaatuu virheeseen tämän lohkon lisäämisen jälkeen, poista se: palvelimesi käyttää CGI:tä eikä vaadi suPHP:ta.
Paikallisilla palvelimilla php.ini-tiedoston polku riippuu alustasta: XAMPP (Windows): C:\xampp\php\php.ini; MAMP (macOS): /Applications/MAMP/conf/php/php.ini; LAMP (Linux): /etc/php/version/apache2/php.ini. Muokkauksen jälkeen käynnistä verkkopalvelin uudelleen.
4. Lisää direktiivejä.htaccess-tiedostoon
Kun hosting-palveluntarjoaja on estänyt pääsyn php.ini-tiedostoon eikä ini_set toimi, viimeinen puolustuslinja palvelintasolla on .htaccess-tiedosto. Sen avulla voit asettaa PHP-asetuksia tietylle sivustokansiolle php_value-direktiiveillä.
Yhdistä FTP:llä ja etsi .htaccess juurikansiosta. Lataa varmuuskopio tietokoneellesi (pakollinen!). Lisää sitten seuraavat rivit tiedoston loppuun:

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
Tallenna .htaccess ja päivitä sivusto. Jos sivuston tilalle ilmestyy 500 Internal Server Error, palvelimesi käyttää CGI:tä, eikä .htaccess-tiedoston php_value-direktiiviä tueta. Poista lisätyt rivit palauttaaksesi sivuston ja käytä menetelmää 3 (php.ini-tiedoston luominen).
Käsittelimme 500-virheen ja sen muunnelman 502 yksityiskohtaisesti WordPressin palvelinvirheiden korjausoppaassamme.
5. Lisää @ini_set teeman functions.php-tiedostoon
Tämä menetelmä on tilanteisiin, joissa kaikki aiemmat menetelmät eivät ole käytettävissä tai haluat säilyttää asetukset teeman repositoriossa. Lisää koodi lapsiteemasi functions.php-tiedostoon, joka suoritetaan jokaisen pyynnön yhteydessä ja ohittaa rajoitukset lennossa.
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');
Sijoita koodi functions.php-tiedoston loppuun, mutta ennen päättävää ?>-merkintää (jos sellainen on). Käytä lapsiteemaa: kun pääteema päivittyy, pääteeman functions.php-tiedostoon tehdyt muokkaukset nollautuvat, kun taas lapsiteema säilyy päivityksissä ilman menetyksiä.
Koodin lisäämisen jälkeen tarkista rajoitus WordPressin mediakirjastossa. Huomaa, että joillakin palvelimilla ini_set-funktion käyttö upload_max_filesize-arvolle on estetty PHP-tasolla (PHP_INI_SYSTEM-direktiivi ei salli arvon muuttamista ajonaikaisesti). Siinä tapauksessa @ini_set ohitetaan hiljaisesti, ja tarvitset menetelmää 3 tai 4.
Miksi rajoitus ei muuttunut: diagnostiikka
Noudatit kaikkia ohjeita, mutta rajoitus pysyi samana? Käy läpi tämä tarkistuslista:
post_max_sizeon pienempi kuin uusiupload_max_filesize. Tämä on yleisin syy:post_max_size-arvon on oltava vähintään yhtä suuri ja mieluiten 20-30% suurempi kuinupload_max_filesize: PHP-dokumentaatio edellyttää nimenomaisesti, ettäpost_max_size≥upload_max_filesize. Useiden tiedostojen erälataukset ja lomakekentät lasketaan mukaanpost_max_size-arvoon.- Tiedosto luotiin väärään kansioon. PHP etsii
php.ini-tiedostoa skriptin hakemistosta ja siirtyy sitten ylöspäin puurakenteessa palvelimen juureen. Sijoitaphp.inisivuston juureen (public_html), älä alikansioon. - PHP-välimuisti (OPcache) tallentaa vanhan konfiguraation. Jotkin palvelimet välimuistittavat
php.ini-tiedoston. Käynnistä PHP uudelleen hallintapaneelin kautta tai odota 5-10 minuuttia välimuistin vanhenemista. - Palvelin käyttää CGI/FastCGI:tä ja jättää
.htaccess-tiedoston huomiotta. Vaihda lähestymistapaa: käytäphp.ini-tiedostoa (menetelmä 3) taiuser.ini-tiedostoa FastCGI:lle. - Hosting-palveluntarjoaja on lukinnut rajoituksen. Erittäin halvoissa paketeissa latausrajoitus on kiinteä, eikä sitä voi muuttaa millään menetelmällä paitsi päivittämällä pakettia.
Jos mikään näistä kohdista ei auttanut, ota yhteyttä hosting-palveluntarjoajan tukeen. Ilmoita verkkotunnuksesi, menetelmä, jota käytit rajoituksen muuttamiseen, ja pyydä heitä tarkistamaan, salliiko pakettisi upload_max_filesize-arvon ohittamisen.
Video-opastus
Katso vaiheittainen prosessi tämän virheen korjaamiseksi diagnostiikasta lopulliseen varmennukseen tältä videolta:
⁉️🤔 Usein kysytyt kysymykset
Mikä upload_max_filesize-arvo minun kannattaa valita?
Useimmille sivustoille 64 Mt on riittävä, ja se kattaa teemojen, lisäosien ja korkearesoluutioisten kuvien lataukset. Jos käsittelet videotiedostoja tai suuria ZIP-arkistoja hallintapaneelin kautta, aseta se 128-256 Mt:iin. Älä tavoittele gigatavuja ilman syytä: mitä korkeampi raja, sitä enemmän muistia palvelin varaa jokaiselle latauspyynnölle.
Voinko ladata tiedoston rajoituksen ohi?
Kyllä, FTP:n kautta. FTP-asiakas yhdistää suoraan palvelimeen eikä kulje PHP-käsittelijän läpi, joten
upload_max_filesize-rajoitukset eivät koske sitä. Lataa tiedostowp-content/uploads-kansioon FTP:llä ja rekisteröi se sitten WordPressin mediakirjastoon Add From Server -lisäosalla.
Mitä eroa on upload_max_filesizella ja post_max_sizella?
upload_max_filesizeon yksittäisen tiedoston enimmäiskoko latauksessa.post_max_sizeon koko POST-pyynnön kokonaiskoko, mukaan lukien kaikki tiedostot, lomakekentät ja palveluotsikot. Jos lataat kolme 20 Mt:n tiedostoa,upload_max_filesize-arvon tulee olla ≥ 20 Mt, kun taaspost_max_size-arvon tulee olla ≥ 60 Mt plus puskuri lomakkeelle. Siksipost_max_sizeasetetaan aina suuremmaksi kuinupload_max_filesize.
Miksi rajoitukset palautuvat WordPress-päivitysten jälkeen?
WordPress ei koske PHP-palvelinasetuksiin päivitysten aikana, mutta jos muokkasit
wp-config.php-tiedostoa tai pääteemanfunctions.php-tiedostoa, ydin- tai teemapäivitykset ovat saattaneet korvata nuo tiedostot. Pidä mukautetut PHP-asetukset ainaphp.ini-tiedostossa, cPanelin MultiPHP INI Editorissa tai lapsiteemassa: nämä sijainnit eivät ole alttiita päivityksille.
Täytyykö palvelin käynnistää uudelleen php.ini-muutosten jälkeen?
Jaetuille hosting-palveluille ja cPanelille ei tarvitse: muutokset astuvat voimaan automaattisesti muutamassa minuutissa. VPS- ja dedikoiduille palvelimille, joissa on PHP-FPM, käynnistä palvelu uudelleen:
sudo systemctl restart php-fpm(taiphp8.3-fpm, versiosta riippuen). Apache mod_php:llä poimii muutokset yleensä ilman uudelleenkäynnistystä.
Mitä tehdä, jos raja ei vieläkään nouse
Edellä mainitut viisi menetelmää kattavat käytännössä minkä tahansa hosting-skenaarion. Perustason wp-config.php-tiedostosta lapsiteeman functions.php-tiedostoon olet käynyt läpi koko ketjun. Jos rehellisesti jokaisen vaiheen suorittamisen ja diagnostiikan ajamisen jälkeen raja pysyy muuttumattomana, syynä on hosting-palveluntarjoajan tiukka käytäntö, etkä voi kiertää sitä vaihtamatta palvelupakettia tai palveluntarjoajaa.
Ota yhteyttä tukeen ja kysy suoraan, sallitaanko upload_max_filesize-arvon ohittaminen palvelupaketissasi. Vastaus "ei" on syy harkita siirtymistä VPS:ään tai joustavampaan jaettuun palvelupakettiin, jossa hallitset PHP-asetuksia ilman huolta palvelimen naapureista. Sillä välin lataa suuret tiedostot FTP:n kautta: siellä ei ole kokorajoituksia, ja Add From Server liittää ne mediakirjastoon.



