Missing a Temporary folder

Dneska se podíváme jak se dá opravit chyba Missing a Temporary folder, která se objevuje při nahrávání souborů.

Proč se chyba zobrazuje #

Při nahrávání souborů se nejdříve uloží soubor do dočasného adresáře /tmp. Ten se většinou nachází v adresáři public_html:

/home/uzivatel/public_html/tmp

Poté, co je soubor kompletně nahrán v tomto adresáři, je přesunut do adresáře, kam jste jej nahrávali. U WordPress je to /wp-content/…

Jestliže z nějakého důvodu není možné do dočasného adresáře tmp soubor nahrát (například neexistuje), dojde k vypsání chybové hlášky: Missing a Temporary folder

Možné příčiny #

V podstatě jsou dva možné důvody proč došlo k této chybě. Jedním z nich je, že adresář /tmp opravdu neexistuje. Pokud to tak je, nezbývá než jej vytvořit. Vytvořte tedy adresář /tmp, aby cesta k dočasným souborům vypadala nějak následovně:

/home/uzivatel/public_html/tmp

Místo uzivatel bude pravděpodobně označení vašeho webhostingu. Pokud si nejste jistí, můžete použít PHP funkci sys_get_temp_dir(). Vytáhne se hodnota z nastavení php.ini. Nezapomeňte adresáři /tmp, přiřadit práva 777.

Druhou příčinou je špatně nastavená hodnota upload_tmp_dir v php.ini. Tato hodnota říká serveru, na kterém běží PHP, kde se má nacházet právě adresář pro ukládání dočasných souborů.

Vypadat by měla nějak následovně

upload_tmp_dir = /home/uzivatel/public_html/tmp

Dávejte si pozor na středník, ten se používá před komentáři. Tedy jestli není náhodou hodnota zakomentovaná. Je třeba také brát ohled na velká a malá písmena. Pokud používáte PHP jako modul Apache je nutný jeho restart. To samé platí i o PHP-FPM (FastCGI Process Manager).