Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zdalna aktualizacja skryptu
Forum PHP.pl > Forum > PHP
kiler129
Myślę, że ten temat powinien pojawić się w PHP Pro i być dłuższą dyskusją dot. sposobu zdalnej aktualizacji webaplikacji.
Obecnie zastanawiam się właśnie nad tą kwestią. Po dłuższych przemyśleniach i kilku filiżankach kawy doszedłem do następujących wniosków:

1. Sprawdzanie czy aktualizacja jest dostępna po zalogowaniu do panelu admina (ale nie częściej niż 1x/dzień)
2. Aktualizacja wysyłana w pełnej formie jeśli wersja różni się więcej niż 1 (jeśli to aktualizacja np. z 1.1 do 1.2 to używamy paczki różnicowej)
3. Plik update spakowany np. pharem [ogólnie czymś co standardowo mamy w PHP wszędzie]
4. Plik update powinien być podpisany aby uniemożliwić przez jakiś bug łatwej podmiany całej aplikacji
5. Sprawdzanie sum plików przed update czy zgadzają się z sumami dla posiadanego realase (myślę, że dobrze takiego pliku nie trzymać u usera tylko zdalnie), jeśli są inne zapytać usera co zrobić (nadpisać plikami nowego realase, nie dotykać tych plików, pokazać różnie, anulować update, zgłosić błąd)
6. Przed update spakować wszystkie pliki które mają być zmodyfikowane i utworzyć plik .php który po podaniu klucza wygenerowanego podczas update (unikalny) pozwoli cofnąć zmiany "nagle i bez winy usera" cała strona padnie smile.gif
7. Brak mi pomysłu na zmiany w sqlu

Dziękuję za cierpliwe przeczytanie i proszę o porady smile.gif
Fifi209
Jeżeli spakowane pharem to przecież wystarczy paczkę podmienić i po sprawie.

Samą aplikację albo jej części pakujesz pharem i potem tylko podmieniasz paczki a stare możesz archiwizować. (gdyby użytkownik coś zmienił...)

Co do mysql - zależy jakie zmiany.
kiler129
Myślałem nad podmianą całej paczki ale to odetnie możliwość zmodyfikowania pliku co często jest potrzebne. Paczke phar (czy jakąkolwiek inna) chciałbym użyć tylko do przesyłu serwer update>server klienta.

Jeśli chodzi o baze danch to różne - nie jestem w stanie w wersji 1.0 przewidzieć co stanie się w 7.0 smile.gif Dodawanie wierszy do tabeli ustawień to nie problem ale jeśli zmieni się np. format zapisu uprawnień to już się robi problem z konwersją.
CuteOne
Temat ciekawy chociaż nie ma nad czym dyskutować smile.gif Z tego co widzę twój pomysł wygląda "prawie" identycznie jak wgrywanie pluginu. Tak więc jeżeli chcesz gdybać jak rozwiązać problem bazy to zapraszam na obchód wordpressa biggrin.gif
Mephistofeles
Do zmian w bazie możesz wykorzystać np. Doctrine Migrations.
kiler129
@CuteOne - właśnie muszę zobaczyć jak to WP ma zrobione chociaż bardziej liczę, że ktoś zaznajomiony ze źródłami tego CMSu podpowie conieco. Jeśli chodzi o porównanie do pluginu to nie za bardzo [chyba, że masz na myśli plugin zmieniający pliki CMSu].
Ogólnie zamysł jest prosty - dostarczyć tak pathi [to sie odmienia?] aby każda kopia po nich działała a dodatkowo w razie padu dało się wszystko odkręcić. Coś na wzór aktualizacji serwera LiteSpeed.

@Mephistofeles - zainteresuję się, jak się domyślam to coś do różnicowego kopiowania bazy.
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.