[php] Problem z funkcja chmod()

0

pracuje na serwerze apache na linuxie
kiedy moj skrypt próbuje użyć funkcji chmod() parser wyświetla:

Warning: chmod(): Operation not permitted in ...

w php.ini mam

; Safe Mode
;
safe_mode = Off

więc jeżeli nie chodzi o safe mode to o co może chodzić?

0

Notatka: Bieżący użytkownik to użytkownik pod którym działą PHP. Prawdpodobnie nie jest to ten sam użytkownik, którego używasz normalnie przy dostępie do shell'a lub FTP. W większości systemów, prawa mogą być zmienione jedynie przez właściciela pliku.

Notatka: Ta funkcja nie będzie działać dla zdalnych plików, ponieważ przetwarzany plik musi być dostępny poprzez system plików serwera. 

Notatka: Kiedy włączony jest tryb bezpieczny, PHP sprawdza czy pliki lub katalogi na których mają zostać wykonane operacje posiadają taki sam UID (właściciela) jak skrypt, który jest wykonywany. W dodatku, nie możesz ustawić SUI, SGID i bitów lepkości (sticky bits). 

Mozesz tez sprobowac prawa ustawic ftepem :)

0

Działa prawie zawsze: Total Commander -> Pliki -> Zmień atrybuty

0

Jeżeli dobrze Cię zrozumiałem Valarius, to muszę za pomocą komendy chown lub chmod lub obydwu ustawić dostęp do wszystkich plików, na których chce używać funkcji chmod(). Jak mam to zrobic? Jaki powinien być właściciel pliku, żeby mój skrypt mógł nadawać mu prawa?

Valarius napisał(a)

Notatka: Ta funkcja nie będzie działać dla zdalnych plików, ponieważ przetwarzany plik musi być dostępny poprzez system plików serwera.
Czy to znacza ze musze wywolywac ten plik z pelna sciezka? np. /home/borys/www/myweb/index.php
Jeżeli tak to właśnie tak go wywołuje...

Jeżeli to ma jakieś znaczenie to nie mam skonfigurowanego ftp'a u siebie na serwerze, zresztą nie potrzebuje.

wowo napisał(a)

Działa prawie zawsze: Total Commander -> Pliki -> Zmień atrybuty
:| Jest Total Commander pod linuxa?

0

Odnośnie skryptu nadającego prawa - żeby to działało, właścicielem pliku musi być użytkownik, z którego odpalany jest serwer. Może to być użytkownik www, albo coś takiego, jeśli to Twój serwer, to powinieneś wiedzieć :)
Jeśli masz dostęp do serwera fizycznie/przez shella, to Ci FTP nie potrzebny. Tylko i wyłącznie chmod/chown pod shellem. Total Commander pod Linuxa potrzebny nie jest, bo wystarczy Ci konsola i - jak pisałem wyżej - chown i chmod. TC jest wygodny, jeśli łączysz się z serwerem przez FTP, ale równie dobrze sprawdza się w tej roli każdy inny klient FTP wspierający wysyłanie komend.

0

zmieniłem w konfiguracji serwera nazwę użytkownika i juz wszystko działa ;]

Stokrotne dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1