On Sat, 29 Jul 2006, KeRmiT wrote:
> Witam!
>
> Z tej strony Paweł.
> ZajmujÄ™ siÄ™ webmasteringiem strony http://jadwiga.kuria.lublin.pl/.
>
> Piszę ponieważ mam problem... Problem dotyczy wgrywania plików na serwer
> za pomocÄ… skryptu: http://jadwiga.kuria.lublin.pl/lubelska6/upload.php
> (kod: http://jadwiga.kuria.lublin.pl/lubelska6/upload.txt). Jest to
> przykładowy skrypt z "Vademecum...". Sprawdziłem go na 3 różnych
> serwerach, aby mieć pewność, że problem dotyczy tylko serwera kurialnego.
> Tylko na serwerze kurialnym pojawia się ten problem. Wygląda na to, że
> problem tkwi w funkcji: move_uploaded_file. Wcześniej ten problem nie
> występował.
> Czy mogę liczyć na pomoc w rozwiązaniu tego problemu?
> Wyjaśnienie, dlaczego teraz wgrywanie plików nie działa?
> Z góry dziękuję za pomoc.
Witam!
Sytuacja wyglÄ…da tak:
Każdy host www na _tym_ serwerze ma ustawione open_basedir. W Waszym
przypadku jest to:
php_admin_value open_basedir /home/[...]/www.jadwiga.kuria.lublin.pl/
W manualu php
(http://pl2.php.net/manual/pl/function.move-uploaded-file.php)
niby jest napisane, że (cokolwiek miałoby znaczyć pierwsze zdanie)
"Notatka: move_uploaded_file() jest świadomy tryb bezpieczny oraz
open_basedir. Jednak, ograniczenia nałożone są tylko na ścieżkę
przeznaczenie , ponieważ pozwala na przenoszenie uloadowanych plików w
których nazwa_pliku może kolidować z takimi ograniczeniami.
move_uploaded_file() zapewnia bezpieczeństwo tej operacji poprzez
zezwolenie na przeniesienie tylko tych plików, które były uploadowane
przez PHP."
...to jednak move_uploaded_file zwraca błąd przy próbie przenoszenia
plików z /tmp. Z tego powodu trzeba ustawić każdemu hostowi
upload_tmp_dir. Co właśnie w Waszym przypadku przed chwilą zrobiłem:
php_admin_value upload_tmp_dir /home/[...]/www.jadwiga.kuria.lublin.pl/tmp
(Proszę nie kasować katalogu tmp w katalogu głównym Waszego serwera.)
Problem wiąże się z bezpieczeństwem i możliwością uruchomienia "obcego"
kodu na prawach użytkownika http.
Mam nadzieję, że teraz wszystko będzie działać.
Pozdrawiam
Marcin Malessa