Pracuję z taką konfiguracją, więc mogę dać ci kilka wskazówek, jak to zrobić. Robiłem to już od jakiegoś czasu, pracując nad tym, co się stało, i mam wrażenie, że to konfiguracja, którą mogę uczciwie powiedzieć, jest całkiem cholernie produktywna.
Mała uwaga: pracuję na OSX, więc konkretne aplikacje mogą być nieco inne od ciebie, jeśli jesteś użytkownikiem systemu Linux/Windows.
Prowadzę "serwer" produkcyjny na moim Macu, używając MAMP (www.mamp.info), aby łatwo dostarczyć mi serwer Apache z PHP i MySQL. Możesz użyć podobnego narzędzia, na przykład XAMPP lub zainstalować wszystko ręcznie, to naprawdę zależy od Ciebie.
Następnie mam swoje serwery na żywo, na których hostowane są moje witryny i witryny klientów. Dla każdego nowego projektu strony internetowej (przyjmijmy abc.com jako przykład) tworzę subdomenę o nazwie staging.abc.com, na której testuję. Zawsze dobrze jest przetestować rzeczy na tym samym sprzęcie i oprogramowaniu, zanim zaczną działać.
Używam Subversion (lub w skrócie SVN) do moich potrzeb związanych z wersjonowaniem, z dodaną premią, którą mogę łatwo dodać "hooks", aby automatycznie aktualizować mój serwer produkcyjny online za każdym razem, gdy wysyłam moją zaktualizowaną wersję do serwera SVN.SVN pozwala również łatwo pracować z więcej niż jedną osobą w tym samym projekcie. Aby uzyskać więcej informacji na temat SVN i jak z niego korzystać, proponuję świetną (i darmową) książkę online znalezioną tutaj: http://svnbook.red-bean.com/
Krótko: pracuję lokalnie z MAMP, dostarczając mi lokalnego, działającego serwera. Następnie testuję online w lokalizacji staging.abc.com, aby sprawdzić, czy wszystko działa dobrze, i, aby umożliwić innym osobom zobaczenie projektu (na przykład, jeśli chcesz, aby klient zobaczył, co się dzieje) i potem faktycznie opublikuję projekt, umieszczając go na rzeczywistej domenie.
Istnieje wiele innych rzeczy, które można zrobić, aby zoptymalizować przepływ pracy, ale powinno to zacząć.
Mam nadzieję, że to pomoże!
-Dave
Dlaczego rsync, jeśli możesz wyewidencjonować bieżącą wersję z SVN na serwerze? –
Jak śledzić zmiany w bazie danych? Próbuję dodać zmiany jako sql w oddzielnym katalogu/sql, ale czasami zapominam o tym; co zostawia mnie z "złamanym" zatwierdzeniem. – bouke
@bouke - zobacz pięć części serii powiązanych w tym poście http://www.codinghorror.com/blog/archives/001050.html – aleemb