it-swarm-eu.dev

open_basedir omezení platí i přes adresář souborů v kořenovém adresáři webu

Při pokusu o nahrání loga do podtému Zen 3.1 (Vzhled> Nastavení) se zobrazí následující chyba:

Warning: is_file(): open_basedir restriction in effect. File(/tmp/phpillr69) is not within the allowed path(s): (/home/testwww/web/) in image_get_info() (line 126 of /home/testwww/web/informator/includes/image.inc). 
Warning: realpath(): open_basedir restriction in effect. File(/tmp/phpillr69) is not within the allowed path(s): (/home/testwww/web/) in drupal_realpath() (line 2177 of /home/testwww/web/informator/includes/file.inc). 
Warning: getimagesize(): Filename cannot be empty in image_Gd_get_info() (line 349 of /home/testwww/web/informator/modules/system/image.Gd.inc). 
The specified file logo.gif could not be uploaded. Only JPEG, PNG and GIF images are allowed.  

Stává se to, i když mám cesty v Konfigurace> Média> Systém souborů nastaveny tak, aby byly uvnitř webového kořenového adresáře.

  • Cesta veřejného systému souborů: weby/[můj adresář]/soubory [oprávnění 775]
  • Dočasný adresář: sites/[můj adresář]/files/tmp [povolení 755]

Zdá se, že Drupal se snaží uložit dočasný soubor do/tmp/ačkoli dočasný adresář je nastaven na něco jiného.

Jak mohu problém vyřešit, abych mohl nahrát soubor?

6
Michał Pękała

Klíčem je, že PHP se pokouší vytvořit dočasný soubor ve veřejném adresáři. Pokud odkazujete na nastavení PHP, zjistěte, co je zadáno pro 'upload_tmp_dir'. Chcete-li to zobrazit, použijte volání phpinfo (), které je také dostupné ve zprávě o stavu kliknutím na číslo verze PHP. Tento adresář má zvláštní oprávnění, která open_basedir neblokuje. Do této cesty explicitně nastavte svůj adresář drupal temp a měl by fungovat.

4
codexmas