Jak zvýšit limit velikosti souboru pro nahrání souboru PHP
Pokud máte webovou aplikaci, která nahrává soubory na server skrze PHP skript, možná jste si všimli, že ve výchozím nastavení nelze nahrávat strašně velké soubory. Zde je postup, jak to změnit.
Důvodem, proč je limit nastaven na poměrně nízkou úroveň, je z důvodů stability a bezpečnosti - škodlivý skript nebo útočník by se mohl pokusit o váš server s velkými nahrávkami a dočasně ukončit aplikaci.
Chcete-li změnit hodnoty, musíte upravit soubor php.ini, který se běžně nachází na této cestě:
/etc/php.ini
Zde jsou nastavení, která chcete změnit:
post_max_size
Toto nastavení řídí velikost příspěvku HTTP a musí být nastaveno větší než nastavení upload_max_filesize.
upload_max_filesize
Tato hodnota nastavuje maximální velikost souboru pro nahrávání.
memory_limit
Budete se chtít ujistit, že limit paměti skriptu je nastaven na slušnou velikost, pravděpodobně větší než ostatní dvě nastavení.
Nastavení proměnných
Hodnoty můžete nastavit pomocí číselné hodnoty a následně M pro množství MB, které chcete přidělit pro každou proměnnou. Chcete-li například povolit nahrávání souborů o velikosti 20 MB, použijte něco podobného:
memory_limit = 64M
upload_max_filesize = 20M
post_max_size = 25M
Po dokončení této změny budete muset restartovat server Apache s tímto příkazem:
/etc/init.d/httpd restart
Nastavení velikosti odesílání podle aplikace
Toto nastavení můžete provést pro konkrétní webovou aplikaci vložením do souboru .htaccess v adresáři aplikace. Všimněte si, že to bude fungovat pouze v případě, že váš server povolí přepsání virtuálního hostitele nebo serveru.
Například můžete do souboru vložit následující:
php_value memory_limit = 64M
php_value upload_max_filesize = 20M
php_value post_max_size = 25M
Jakmile soubor uložíte, měly by být provedeny změny.