Obecnie rozwijam mój WordPress lokalnie, zatwierdzam mój kod do GitHub z Git, a następnie SSHing na mój serwer i wykonuję polecenie „git pull”, aby zaktualizować mój kod. Czy jest to dobra opcja do wdrożenia kodu na stronie WordPress (w tym przypadku mam oczywiście dostęp na poziomie root do mojego serwera). Znam takie rzeczy jak Capistrano, ale czy byłoby to przesadą w przypadku wdrożenia na stronie WordPress? Jak mogę w pełni wykorzystać Git / GitHub w tym przypadku?
deployment
git
github
Matt
źródło
źródło
Odpowiedzi:
Używam do tego git i uważam, że działa naprawdę dobrze. Kilka sugestii:
.gitignore
plików (wp-content / uploads) do swojego pliku..gitignore
pliku, aby zapobiec nadpisywaniu ustawień produkcji przez wordpress.Zastanów się nad dodaniem git
post-receive
hooka, aby automatycznie pobierać aktualizacje do katalogu, którego używasz do publikowania wordpress za pośrednictwem serwera WWW (np/var/www
.). Pozwala to tylko na sprawdzenie samych plików, unikając znalezienia metadanych git w drodze do katalogu głównego serwera WWW, a także oznacza, że możesz dodać wszelkie zmiany uprawnień do haka po odebraniu, aby Twoje uprawnienia pozostały spójne za każdym razem. Przykład znajduje się poniżej:źródło
unset GIT_INDEX_FILE
literówce?Zdecydowanie poleciłbym ustawienie Capistrano - za pierwszym razem jest to trochę praca z góry, ale potem możesz łatwo użyć go do nowych ustawień.
Główne zalety to
Dodaję zestaw skryptów capistrano, aby pokazać ci, jak to skonfigurować.
Capfile
deploy.rb
i na koniec przykładowy plik środowiska (jeśli używasz wielostopniowego klejnotu, możesz mieć jeden z nich dla każdego etapu środowiska, np. lokalnego, inscenizacji, produkcji)
config / local.rb
Te pliki mogą nie działać bez poprawek i będziesz potrzebować podstawowej wiedzy o Capistrano, ale mam nadzieję, że pomoże niektórym ludziom.
To był pierwszy samouczek, z którego skorzystałem, używając Capistrano i WordPress: http://theme.fm/2011/08/tutorial-deploying-wordpress-with-capistrano-2082/
źródło
git post-receive
hak jest do zrobienia!Właściwie zrobiłem prezentację WordCamp na ten temat. Zamiast się powtarzać, oto zrzut ekranu z niego i bardzo prosty skrypt wdrażania, który towarzyszy temu, o czym mówiłem.
Krótko mówiąc, używam GitHub do hostowania repozytorium i używam haka do wdrażania zmian w oparciu o git ref. Pozwala to korzystać z modelu rozgałęzienia git Vincenta Driessena i otwiera się na nieograniczoną liczbę głowic internetowych, serwerów pomostowych, serwerów testujących itp., Wszystkie z automatycznym wdrażaniem. Zajmuję się również utrzymywaniem wp-config.php pod kontrolą wersji, zachowując osobne wersje deweloperskie / produkcyjne (przez zmianę nazw plików i dowiązanie symboliczne).
źródło
Wiem, że to pytanie jest trochę starsze, ale ponieważ nie widziałem tego jako odpowiedzi, chciałbym podzielić się tym, co zwykle robię dla konfiguracji i wdrożeń opartych na git dla pojedynczej witryny i działa naprawdę dobrze, również z pracą z wieloma urządzenia, lokalizacje i wielu programistów (wszyscy mają swoje lokalne repozytoria, w których działają, jak to jest typowe dla git).
Mogę serdecznie zasugerować następującą konfigurację:
Jest on również opisany w (jeśli potrzebujesz drugiego zasobu, aby owinąć wokół niego głowę):
Zasadniczo działa (z co najmniej trzema repozytoriami) poprzez:
Po zakończeniu pracy naciskasz na zdalne repozytorium, z którego sklonowałeś. Nagie repo ma haczyki do synchronizacji z repozytorium na żywo (w kodach powyżej nazywanych prime ).
Jako specyficzne ustawienia Wordpress w repozytorium mam to
.gitignore
:Reszta wraz z konfiguracja wtyczki i motywu Kontroluję wersję / konfigurację. To pozwala mi łatwo śledzić zmiany i sprawdzać kod przed użyciem go na żywo. Mogę też łatwiej łączyć się ze zdalnymi drzewami z własnymi zmianami. Jest to szczególnie przydatne w przypadku rdzenia Wordpress, który jest dostępny na Github .
Działa to całkiem dobrze dla większości moich potrzeb Wordpress. Gołe repo zapobiega wypychaniu sprzecznych zmian. Synchronizuje także najpierw kopię zdalną przed aktualizacją witryny na żywo. Oznacza to, że aktualizacja strony na żywo jest zwykle dość szybka. Z powodu haków możesz nawet wywołać haki aktualizacji Wordpress, jeśli chcesz.
Jeśli nie eksperymentowałem, o ile można to poprawić za pomocą haków Github, ale zwykle nie potrzebuję ich, ponieważ kod jest pod lokalną kontrolą wersji, a nie Github.
Aby skonfigurować taki system po raz pierwszy, powinieneś poświęcić trochę czasu na sprawdzenie, czy masz wszystkie narzędzia dostępne na zdalnym hoście:
Pierwszy raz konfiguracja powinna być możliwa w ciągu dwóch godzin włącznie. całe środowisko i najpierw publikujesz push.
W zależności od hosta możesz także chcieć zabezpieczyć
.git
katalog przed dostępem do Internetu. Oto przykładowy.htaccess
kod, w którym Wordpress jest nawet umieszczony w podkatalogu, co pozostawia miejsce w repozytorium niepublikowanym online (przydatne):Krótko mówiąc, wszystko, co nie znajduje się w katalogu publicznym, nie jest w trybie online. W katalogu publicznym może znajdować się na przykład baza kodów Wordpress, ponieważ
.htaccess
wtedy potrzebujesz:Zapobiega to bezpośredniemu dostępowi do publicznego . Część tego .htaccess -foo można znaleźć tutaj: Żądania do .htaccess powinny zwrócić 404 zamiast 403 . W przypadku zmiennych środowiskowych musisz sprawdzić, czy to działa w twoim środowisku. Musisz także zdecydować, czy poddasz to kontroli wersji, czy nie.
Jeśli masz większą kontrolę nad hostingiem, możesz zrobić więcej rzeczy tutaj (i inaczej / bardziej zoptymalizować), powyższe przykłady są skierowane do typowych środowisk współdzielonego hostingu (które oferują GIT, niektórzy użytkownicy twierdzą, że możesz łatwo zainstalować go jako swój własny no cóż, zwykle proszę moich hostów o ich dostarczenie, ponieważ wolę, jeśli dbają o to, za co im płacę).
Z drugiej strony, ma to kilka typowych problemów opisanych również w innych odpowiedziach. Jedną z rzeczy, z których nie jestem dumny, ale to, co działa, to dać hostowi programistycznemu zmianę pliku hosta, aby serwer bazy danych wskazywał kopię programistyczną. Możesz więc zachować jedną konfigurację bazy danych. Niezbyt fajne esp. z powodu poświadczeń.
Automatyczne kopie zapasowe
Jednak zwykle nie dbam o to zbytnio, ale zamiast tego codziennie wykonuję kopie zapasowe w zdalnych systemach, które są przyrostowo, które następnie są przechowywane w innej zdalnej lokalizacji. Jest to łatwe i tanie i pozwala przywrócić zarówno instalację Wordpress, jak i przesyłanie plików, bazę danych i repozytorium git. Również dla moich poleceń tworzenia kopii zapasowych może nie być w porządku, ale te działają dla mnie:
Sugeruję tutaj, abyś nie korzystał z procesów związanych z instalacją Wordpress poza Wordpress. Muszą działać w określonym systemie, więc zwykle nie masz ich w aplikacji (np. Aplikacja może się zawiesić, ale musisz nadal działać).
Włączone dla pracy zespołowej
Kolejną zaletą jest to, że Twoja witryna ma już możliwość pracy zespołowej. Dzięki dodatkowemu repozytorium typu repozytorium nie można zrobić wiele źle, a nawet udostępniać zdalne oddziały poza oddziałem głównym lub działającym na żywo ze swoimi kolegami.
źródło