2010-10-21 9 views
5

Niedawno uruchomiłem usługę, co oznacza, że ​​nie mogę już pracować bezpośrednio w witrynie, lub robię to na ryzyko.Najlepszy/lepszy/optymalny sposób konfiguracji serwera pomostowego/programistycznego

Nie mogłem znaleźć żadnego "standardowego" lub "najlepszego" sposobu na stworzenie serwera programistycznego. Dwie rzeczy, które widziałem są

a) Korzystanie z GIT lub SVN gospodarzem dane (nie całkiem rozwiązać mój problem, muszę być w stanie rozwijać się gdzieś, korzystnie nie mój domowy komputer)

b) Capistrano (dla Rails, jest tam coś dla PHP?)


Obecne rozwiązanie patrzę wprowadza kompletną kopię serwera na „development.domain.com”, które następnie pozwól mi pracować nad wszystkim i mogę po prostu skopiować pliki do głównej sekcji.

Czy to możliwe do zrealizowania rozwiązanie? Jakie jest optymalne rozwiązanie? (Oddzielny serwer, narzędzia specjalne, etc.)


EDIT Ten system jest opracowany przez wielu deweloperów. Ustawienia serwera zostały znacznie zmodyfikowane, aby umożliwić pełną funkcjonalność i bezpieczeństwo systemu. Opracowanie na moim komputerze nie jest rozwiązaniem praktycznym, ani w systemie typu intranet, ponieważ żaden z naszych programistów nie znajduje się w tym samym miejscu.

Szukam rozwiązania na serwerze.

+6

Jeśli nie używasz kontroli źródła, jesteś "viva la vida loca". Innymi słowy, zawsze używaj kontroli źródła. Bez względu na to, co robisz dla dev/staging itp. Użyj kontroli źródła. Zrób to dla własnego dobra lub pewnego dnia będzie ci bardzo przykro. –

+0

Czułem, że kontrola źródła jest bardziej odpowiednia dla systemu, który ludzie instalują na swoich stronach, skryptach, modułach itp. Domyślam się, że jestem w błędzie ?. Chodzi o to, że system, jak jest (ma mnóstwo funkcji), ma już 70mbs, jest zintegrowany z blogami itd. Itd. –

Odpowiedz

3

trzy propozycje:

1) Jesteś na właściwej drodze z upewniając się, że kod źródłowy jest w jakiejś formy kontroli źródła (git i svn są zarówno doskonałe wyborów). To powinno być priorytetem nr 1.

2) Miej wszystko, co odbiegło od standardowej konfiguracji, w jakiejś formie kontroli źródła. Oznacza to konfigurację apache, plik php.ini, konfigurację bazy danych itp. Następnie, konfigurując serwery testowe i dev, możesz być (stosunkowo) pewien, że wszystko jest takie samo na wszystkich serwerach, w przeciwnym razie po prostu zgadujesz.

3) Zajrzyj do skryptów budujących, mrówka, phing, lub czegokolwiek, czego możesz użyć do niezawodnego budowania swojego środowiska od zera na dowolnym komputerze.

Istnieje wiele innych rzeczy, które możesz zrobić, ale jeśli zastosujesz te trzy, będziesz na dobrej drodze do łatwej konfiguracji serwera dev/staging. Zapewni to także dodatkową korzyść związaną z zapewnieniem, że wszyscy programiści mają podobne środowisko, gdy wykonują swój rozwój.

0

Zacząłem używać repozytorium git jako punktu początkowego. Główny rozwój odbywa się na moim lokalnym macu. W pewnym momencie popycham zmiany i przeciągam je na serwer programistyczny, gdzie wykonywane są dalsze testy. Jeśli wszystko jest w porządku, przeciągam rzeczy na serwer programistyczny. To mniej więcej tak, jak sądzę, działa capistrano. Napisałem skrypt centralny do tych zadań, więc mogę zaktualizować serwery rozwojowe lub produkcyjne za pomocą jednego polecenia.

+0

Biorąc pod uwagę to, że rozwój ten nie będzie sam, nie mogę odtworzyć ustawień serwera (przynajmniej nie jest to możliwe) –

+0

Wykorzystanie systemu obsługującego środowiska wirtualne i współdzielonego repozytorium źródeł może łatwo zarządzać ustawieniami. Wszystkie ustawienia są lokalne lub mogą być aktualizowane za pomocą skryptu. Użyłem MAMP lub WAMP do opracowania bardzo złożonego oprogramowania. Chcesz, aby zależność od ustawień była niska. Twórz skrypty, aby skonfigurować swoje środowisko, aby ludzie je uruchomili. Jest tego warte! – TheJacobTaylor

+0

Wykonaj swoją część projektu lokalnie za pomocą MAMP (lub cokolwiek innego) i sprawdź je na serwerze programistycznym (sprawdź tutaj, czy wszystko działa poprawnie). Serwer programistyczny powinien być mniej lub bardziej (im więcej, tym lepiej) identycznych z serwerem produkcyjnym, na którym będzie działał ostateczny system. Jeśli rozwijasz się w zespole, działa to dobrze, przynajmniej w naszym zespole. Git jest do tego idealny. –

2

http://www.wampserver.com/ do okien

lub

www.mamp.info dla mac

lub

obciążenia aż VM

Osobiście robię mój programowania na komputerze Mac uruchomienie VMWare z suse lub redhat dla środowiska testowego serwera. Używałem mampa w przeszłości i działa dobrze; ale czasami lubię pracować w prawdziwym systemie operacyjnym.

To lub skonfiguruj fizyczny serwer testowy. PHP/(wybór DB) teraz działa na cokolwiek (mac, windows, linux)

W zależności od tego, jak chcesz to zrobić, możesz zainstalować VMWare bezpośrednio na serwerze produkcyjnym i dev tam; to znaczy, jeśli sam uruchamiasz serwer. Jeśli Twój kolokacja lub udostępnianie hostingu, prawdopodobnie nie możesz tego zrobić.

-Mario

+0

Wszystko jest hostowane na bardzo bezpiecznym/potężnym serwerze - próba skopiowania ustawień na moim komputerze może być prawie niemożliwa. –

+0

Definicja bezpiecznej i potężnej i osobistej opinii każdego. Taka definicja nie istnieje. – lsiunsuex

+0

naciśnij enter, zanim mogłem skończyć. Jeśli nie możesz odtworzyć ustawień serwera na innym komputerze; jak poradzisz sobie z awarią serwera? Awaria dysku twardego? Naruszenie bezpieczeństwa? MUSISZ móc odtworzyć serwer. Jeśli obawiasz się kontroli kodu źródłowego, możliwość odtworzenia serwera w przypadku katastrofy jest równie ważna, jeśli nie ważniejsza. – lsiunsuex

1

Twój rozwój, pomostowego, a środowisko produkcyjne powinny być dokładnie takie same, w przeciwnym razie istnieje ryzyko zmiany coś bombardowania jak poruszać się pomiędzy środowiskami. Oczywiście twoje środowisko programistyczne będzie miało ustawienia programistyczne (np.PHP wyświetla display_errors, być może zdalny debugger itp.), Ale poza tym powinny być tak identyczne, jak to tylko możliwe.

Jak wszyscy wspominali, jeśli nie używasz kontroli wersji, pytasz o kłopoty. Jest to nie tylko dobra praktyka dla rozwoju, ale także ułatwia wdrażanie między różnymi środowiskami. Jest to szczególnie ważne, gdy wielu programistów pracuje nad projektem.

+0

Twierdzę, że istnieje potrzeba niemal identycznego środowiska testowego i produkcyjnego, podczas gdy środowisko programistyczne może być zupełnie inne. – meagar

Powiązane problemy