Oznámení

Provoz fóra byl ukončen

Špatná práce s obrázky při open_basedir

před 13 lety

finwe
Člen | 54

Když se pokusím vložit pomocí Texy obrázek (ať už pomocí texy! syntax nebo jako smajlík) a na serveru je nastaven open_basedir, obrázek se zobrazí, ale Texy vyhodí např. takovýto warning:

Warning: is_file() [function.is-file]: open_basedir restriction in effect. File(/img/PF2007th.jpg) is not within the allowed path(s):
(/var/www/_includes:/usr/share/pear:/tmp:/home/finwe/www) in /var/www/_includes/texy/modules/tm-image.php on line 348

Přitom obrázek je uvnitř /home/finwe/www.

Napadlo mě, že by Texy mohl mást linuxový filesystém, který se snaží obrázek, uvedený se src="/img/PF2007.jpg" najít v adresářové struktuře natvrdo jako /img/PF2007.jpg, ale znejistěl jsem, když jsem zjistil, že stejná chyba se objeví, když je u smajlíků nastavený $texy->smiliesModule->root = '../img/smilies/';

Editoval finwe (31. 12. 2006 10:27)

před 13 lety

David Grudl
Nette Core | 6806

Tak zkus do $texy->smiliesModule->root vložit absolutní cestu, něco odvozeného od dirname(__FILE__)

pozn.: ve verzi Texy 2 použijte $texy->emoticonModule->root

před 13 lety

finwe
Člen | 54

Jakmile vložím absolutní cestu, smajlík se nepřevede, bez jakéhokoliv warningu či erroru. A to jak natvrdo, tak s použitím všech dirname, realpath ap.

Možná jsem zapomněl poznamenat, že Texy! je umístěná v /var/www/_includes, tudíž kontrola is_file probíhá napříč adresáři z open_basedir