S chybou Missing a temporary folder se většinou u sdílených webhostingů nesetkáte, spíše se objeví u vašich prvních pokusů o ovládnutí VPS 🙂 I když existují případy, kdy si uživatel smazal adresář i ze svého webhostingu (ne)úmyslně.
Takže situace je následující. Chcete nahrát obrázek do WordPress a v administraci se objeví:
Missing a temporary folder.
S největší pravděpodobností se vám podařilo smazat adresář, kam se ukládají dočasné soubory. Popřípadě jste mu přidělili taková práva, která znemožňují skriptu do něj zapisovat.
Na sdíleném webhostingu většinou máte v nejvyšším adresáři, kam vám povolí přístup následující adresáře:
session/ tmp/ www/
Pokud jste si adresář tmp smazali anebo u něj změnili atributy pro oprávnění zápisu a čtení, tak jej zde znovu vytvořte a přidělte mu práva 777. Zkuste nahrát opět nějaký obrázek jestli vše funguje.
Nepomohlo anebo nevím jak dál
Nejdříve zkontrolujte soubor php.ini. Právě v něm totiž najdete přesné umístění tohoto adresáře. Popřípadě si můžete vytvořit dočasný soubor neco.php a do něj vložte:
phpinfo();
Ten nahrajte do adresáře, kde máte instalaci WordPress. Pak jej zavolejte přes URL v prohlížeči (například doména.cz/neco.php). Objeví se vám velký výpis konfigurace apache, php a nainstalovaných modulů. To co potřebujte je najít hodnotu upload_tmp_dir. Právě u ní je cesta, kde se má adresář nacházet.
Běžte na místo, kde se má nacházet a vytvořte jej.
upload_tmp_dir tam není
Ok, tak tohle už bude náročnější. Běžte do adresáře, kde se nachází php.ini. U Linuxu je to v 90 %
/etc/php5/apache2/php.ini
Pokud máte nějakou domácí instalaci LAMP, tak je to většinou v adresář:
/Program Files(x86)/nazev_instalace_lamp/PHP/php.ini
Vyeditujte si php.ini a najděte řádek upload_tmp_dir. Někdy může být zakomentovaný:
;upload_tmp_dir
To znamená, že je neaktivní. Odstraňte ; vložte adresu adresáře pro dočasné soubory například:
upload_tmp_dir = /home/uzivatel/www/tmp/
Teď je třeba ještě restartovat službu serveru. Záleží co používáte. U Apache:
apache2ctl restart
U Nginx
service nginx restart
Takže teď už PHP ví, kde se má nacházet adresář pro dočasné soubory. Stále je třeba jej tam ale ručně vytvořit a nastavit mu oprávnění, aby do něj mohl skript zapisovat.