2008-09-16 11 views
5

Mamy różne projekty php opracowane na Windows (xampp), które należy wdrożyć na mieszankę serwerów linux/windows.Wdrażanie PHP na serwerach Windows/Unix

W przeszłości używaliśmy capistrano do wdrażania z systemu Windows na serwerach Linux, ale ostatnie zmiany w architekturze i serwerach Windows pozostawiły starą konfigurację niedziałającą. Przepis działa dobrze na wdrożenie Linux-a, ale konfiguracja serwerów Windows wymaga więcej czasu niż teraz. Pomysły na przepis Capistrano są poprawnymi odpowiedziami. oczywiście serwery Windows/Linux nie dzielą się użytkownikami, więc komplikuje to odrobinę (dla założenia capistrano o tej samej nazwie użytkownika/haśle wszędzie).

Obecnie używamy aktualizacji svn dla serwerów Windows, której nie lubię, ponieważ pozostawia wszystkie pliki svn wiszące na serwerach produkcyjnych. (i wciąż musimy ręcznie zaktualizować je w Windows) i ręczną aktualizację plików za pomocą winscp i synchronizację katalogów z ich odpowiednikami linuksowymi.

Moje pytanie brzmi, jakie narzędzia/setup pan proponuje, aby zautomatyzować ten scenariusz Wdrożenie: "Różne programistów php Windows/Linux rozmieszczających do 2+ mieszane maszyny Windows/Linux"

(PS: mamy żadnych problemów z używaniem narzędzi linuxowych lub cokolwiek innego, co działa przez cygwin, musimy po prostu wdrożyć prostą jednoetapową operację)

Edycja: Obecnie nie możemy pracować na środowisku All-Linux, musimy wdrożyć do obu serwer Linux i Windows. Możemy rozpocząć wdrażanie z dowolnego miejsca, ale wolelibyśmy to zrobić z dowolnego środowiska.

Odpowiedz

4

używam 4 różne podejścia w zależności od środowiska klienckiego:

  1. Kapistrana i podobnych narzędzi (skuteczne, ale kompleks)
  2. rsync od + do Windows, Linux Mac (proste, nie wymusza dyscyplinę)
  3. svn od + do Windows, Linux, Mac (proste, nie wymusza dyscyplinę)
  4. On-serwer (skrypty uruchamiane za pośrednictwem przeglądarki, kompleks)

Istnieją pewne wymagania, które jeżdżą co trzeba:

  • Ile dyscyplina chcesz wymusić
  • Jeśli potrzebujesz bazy danych (lub konfiguracji) migracje (góra i/lub dół)
  • Jeśli chcesz statyczny „jesteśmy w dół” strona
  • Kto może dokonać aktualizacji
  • różnic konfiguracyjnych pomiędzy serwerami

Zdecydowanie sugeruję wymuszenie wystarczającej dyscypliny, aby uchronić się przed samym: wdrożenie na serwerze programistycznym, zezwolenie na migracje w górę i proste przywracanie bazy danych oraz ograniczenie, kto może zaktualizować serwer na żywo do niewielkiej liczby odpowiedzialnych administratorów (gdzie serwer programisty jest otwarty dla większej liczby programistów). Rozważ także przesuwanie za pośrednictwem zadania cron (do serwera programistycznego), aby uzyskać codzienne migawki swoich przyrostowych zmian.

Większość czasu, uważam, że albo svn lub rsync konfiguracje są wystarczające, z kilku skryptów po stronie serwera, zwłaszcza gdy zestaw Administrator jest ograniczony do kilku deweloperów.

0

Capistrano to najpiękniejsze narzędzie wdrożeniowe, jakie widziałem. Czy zmiany w architekturze uniemożliwiają naprawienie konfiguracji, aby działała ponownie?

1

To będzie prawdopodobnie brzmieć głupio, ale ... Kiedyś miałem tego rodzaju problemu przez cały czas, aż w końcu zdecydował, że jeśli jestem zawsze stosującego na Linuksie, ja naprawdę powinien przynajmniej spróbować rozwijanie w systemie Linux. Zrobiłem. To było bezbolesne. Nigdy nie wróciłem.

Teraz. Nie sugeruję, że to jest dla wszystkich. Ale jeśli zainstalujesz VirtualBox, możesz uruchomić instalację Linux jako lokalny serwer w oknie Windows. Udostępniaj folder na maszynie wirtualnej i możesz używać całego swojego znanego i zaufanego oprogramowania i technik systemu Windows, aby mieć pewność, że wszystko działa dobrze na docelowej platformie.

Ponadto będziesz mógł wrócić do Capistrano (dobry wybór) do wdrożenia.

Co najważniejsze, jeśli myślisz, że znasz Linuksa/Uniksa, poczekaj, aż użyjesz go codziennie na pulpicie!Kto wie, może nawet podoba :)

0

Dlaczego nie można już używać capistrano?

Dlaczego nie lubisz aktualizacji svn?

Co w twojej aplikacji wymaga specjalnego wdrożenia?

0

Można ustawić svn:ignore nieruchomość w plikach konfiguracyjnych, dzięki czemu svn update nie je usunąć, a następnie użyj svn export /target/path/ pozbyć .svn plików w repozytorium Subversion.

Powiązane problemy