Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja... siebie :) Czyli problem z uprawnieniami
Forum PHP.pl > Forum > PHP
Szymon
Witam,


Wiec, bez owijania... smile.gif

Jest program, ktory jest umieszczony na linuxowym serwerze.
Program ma funkcje, ktora pobiera najnowsza wersje "siebie", zeby dokonac aktualizacji.

Od strony technicznej jest ok - laczy sie z serwerem, pobiera najnowsze pliki...
Na moim lokalnym serwerze /localhost/ pod windowsem, gdzie nie ma uprawnien plikow/katalogow, wszystko dziala pieknie, pliki sie aktualizuja, czyli nowe pliki zastepuja stare - nadpisuja je.


Problem pojawia sie pod Linuxem, gdzie pliki maja domyslne uprawnienia 0644, i przy ich usuwaniu/modyfikowaniu pojawia sie blad.
Funkcja chmod() nie dziala, pojawia sie blad.

Jakies pomysly, jak by to ominac? Probowalem nawet ftp_get(), ale nie zalatwia to sprawy...


Z gory dzieki!
klocu
no to tak. sprawdzaj uprawnienia na katalogi, pliki.
wlacz sobie error_reporting na E_ALL i powiedz cos wiecej...

a czy skrypt ktory nadpisuje ma uprawnienia do pracy na plikach? bo zapewne Ty wgrales pliki przez ftp a aktualizuja sie w usluci apache lub innego web serv. to zupelnie inne grupy userow.
Szymon
Witam,



Dzieki za odpowiedz. Sytuacja jest taka jak opisales, inna grupa, brak uprawnien, pliki 0644 bez uprawnien do zapisu, czyli sytuacja jest kiepska, wyglada wrecz na niemozliwa do rozwiazania smile.gif

Moze sa jakies skrypty, ktore samodzielnie sie aktualizuja i nie maja takich problemow?


Z gory dzieki...
klocu
pamiętaj że kładąc wszytsko w jednego php'ka możesz doprowadzić do zakręconej pętli. bo i ma sie wykonać i zapisać na siebie i znów i znów. lepiej jest zrobić moduł który sciągnie cały pakiet aktualizacji na serwer, zapisze i poczeka na usera. jak wyrzucisz mu komunikat jest nowa wersja instalujemy? to wtedy innym php'kiem wywolasz procedure aktualizacji. zakrecilem? starałem się możliwie przystępnie i czytelnie.

nie liczylbym na gotowe zreszta (jak dla mnie) nawet gotowe rozwiazania nie sa odpowiednie bo wymagaja wiecej pracy niz napisanie swojego projektu. tak wiec polecam Ci wziac do reki olowek albo dlugopis, 2 kartki papieru i rysowac, pisac, planowac. polecam tą metodę!
Szymon
Tak, masz racje, ale od logincznej/myslowej strony wszystko jest dograne na 100% - pod Windowsem, na localhoscie gdzie nia ma uprawnien, wlascicieli itd, wszystko dziala pieknie.

Problemy pojawaja sie juz na linuxowym serwerze, kiedy okazuje sie ze nowe pliki nie moga nadpisac starych plikow, bo brak im uprawnien...
klocu
jakie ja widze rozwiazanie?
1. sciagnac paczke z update'ami do jednego folderu
2. wylaczyc serwis (dodatkowa zmienna) z komunikatem o aktualizacji
3. przeniesc protokolem ftp pliki nowe i nadpisac je na stare
4. ustwic zmienna blokujaca (punkt 2) na off

jak dla mnie to najskuteczniejsze rozwiazanie w takiej sytuacji. a i nigdy nie polegaj na tym ze skoro pod windows to dziala to pod linuxem tez bedzie. absolutnie. czasem stosuj rozwiazania zakrecone, dziwne i niekonwencjonalne a osiagniesz sukces i Twoje app'y bedą dzialac bez ingerencji uzytkownika w kod i strukture plikow przez dlugi czas.
Szymon
Przez FTP, czyli masz na mysli - skrypt ktory jest na koncie, laczy sie z tym samym kontem przez FTP i kopiuje pliki, tak?
klocu
tak dokladnie cos takiego:

./aktualizacje/ (i tu pliki o takich samych nazwach jak aktualizowane)
aktualizuj.php

i to wlasnie ow php'ek bedzie wykonywac wszytskie procedury. wylaczyc tylko max time execution i poleci jesli masz zainstalowane "FTP" to bez problemu wtedy zadziala bo nie ma mozliwosci pomylki i roznicy uprawnien. zreszta nadgranie plikow robi sie automatycznie bo grzebac sie w uprawnieniach i reszcie szkoda czasu a automat musi dzialac...
Szymon
Tak, to najlepszy sposob, ale zeby bylo "tak proste jak tylko mozliwe", pasowaloby w jakis sposob ominac proces logowania na ten sam FTP smile.gif
Bo gdzies musialoby byc zapisane haslo i login do konta, a to juz sie robi niebezpieczne...

Jesli nie ma innego sposobu na ominiecie, moge zrobic po prostu szyfrowanie hasla i tez bedzie jakos dzialac, ale jakas inna mozliwosc tez by byla milewidziana smile.gif
klocu
ja szyfruje haslo wiem ze jest to troche podwazeniem bezpieczenstwa danych konta ale coz jakos trzeba bylo ten problem rozwiazac. chyba ze ktos woli za kazdym razem wpisywac haslo. a ja naleze z natury do ludzi leniwych wiec konstrukcja wrzutu ftp jest najlepsza dla mnie.
Szymon
Hehe, wiesz ze FTP to byla moja pierwsza mysl, a potem poszedlem inna droga, i teraz spowrotem do FTP smile.gif
Dzieki za czas i opinie! smile.gif
klocu
nie ma problemu jestem po to zeby pomagac. w razie watpliwosci pytaj...
"I jeszcze jeden zadowolony klient"
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.