maniak11
12.12.2008, 10:43:24
Witam wszystkich, mam problem co do rozwiązania pewnego zadania. Pracuje nad projektem, który będzie wgrany na wiele serwerów i chce zamieścić na jednym - głównym pliki na których będę pracował, rozwijał i aktualizował. Chciałbym zaimplementować taką funkcję, abym w prosty sposób użytkownik, który zaloguje się na którymś z pozostałych serwerów widział napis że jest nowa wersja. Po kliknięciu skrypt powinien pobrać nowe wersje, określonych plików i wgrać je nadpisując stare. Ma ktoś może pomysł jak to zrobić??
Pozdrawiam
Apocalyptiq
12.12.2008, 12:43:57
Możesz pokombinowac z funkcją system() - poczytaj o niej na php.net. Można w niej bodajże wykonywac operacje za pomocą języka C (chociaż nie jestem pewnien, nie wtajemniczalem sie w to). Z tego co czytałem, można za jego pomocą m.in. uploadowac pliki na serwer.
erix
12.12.2008, 14:12:04
Jeśli chodzi o PHP, to jaki problem?

Najprościej przecież sprawdzić przez HTTP zawartość pliku, który generujesz/umieszczasz na serwerze zawierającym aktualizacje. Najprostsze rozwiązania są najlepsze, po co tak kombinować? ;p
SirZooro
13.12.2008, 10:39:25
Nie napisałeś czy na serwerze "wzorcowym" planujesz pracować (tzn. bezpośrednio na nim modyfikować pliki), czy tylko ma stać on jako serwer z którego inni będą pobierać nowe wersje plików do siebie. Jeżeli zamierzasz na nim też normalnie pracować, to bardzo szybko ktoś sobie pobierze plik nad którym właśnie pracujesz i zacznie narzekać że nie działa. W ten sposób można nawet wyłożyć całą aplikację, jeżeli będziesz w trakcie zmian w jakimś krytycznym pliku.
Ja bym proponował coś takiego:
- po zakończeniu pewnego etapu pracy tworzysz (ręcznie lub automatycznie) pakiet, w którym jest plik z numerem wersji, plik z listą zmienionych plików, ew. wszystkie zmienione pliki, i dodatkowo skrypt SQL do modyfikacji struktury bazy danych (jeżeli każdy serwer ma swoją)
- w skryptach umieszczasz kawałek kodu który łączy się z Twoim serwerem, pobiera plik z numerem wersji i wyświetla komunikat jeżeli dostępna jest nowa wersja;
- piszesz też skrypt, który najpierw pobierze plik z listą zmienionych plików, a potem pobierze i wrzuci zmienione pliki w odpowiednie miejsca. Dodatkowo jeżeli trzeba to pobierze skrypt SQL aktualizujący bazę danych i uruchomi go.
maniak11
14.12.2008, 23:08:22
SirZooro masz absolutną akcję, już się zagłębiłęm w temat i najlepiej pobieranie plików wykonywać łącząć się w php przez ftp, ot choćby funkcją ftp_connect(). Robię coś takiego pierwszy raz więc pewnie trochę się przy tym pomęczę:) Dzięki wszystkim za odpowiedź, pozdrawiam
Hmm, jeszcze jedno pytanie, czysto teoretyczne. Zrobiłem już upload plików z innego serwera, teraz tylko zastanawiam się nad systemem sprawdzania wersji poszczególnych plików.
Co wg Was jest lepsze, baza gdzie bedą w rekordach zapisane nazwa pliku i wersja, czy pliki, np .ini + funkcja parse_ini_file() lub xml.
Wg mnie baza jest chyba najlepsza, bo oprócz porównania wersji musi nastapić po wgraniu nowych plików aktualizacja, wpisów o aktualnych wersjach. Proszę o jakies praktyczne pomysły/przykłady. Dzięki z góry wielkie
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.