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:
- umieszczenie strony internetowej na hoście na żywo pod git,
- utwórz nowe repozytorium git git na hoście na żywo.
- A następnie przejdź z gołego repozytorium do lokalnych repozytoriów git repo.
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
:
# uploads are data, excluded from source tree
wp-content/uploads/
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:
- Dostęp SSH
- GIT
- Prywatny katalog, w którym można umieszczać pliki i podkatalogi (np. Do samego repozytorium git)
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):
Options -Indexes
# fix trailing slash for .git / make it disappear + .gitignore and similar files.
RedirectMatch 404 ^/\.git(.*)$
# mask 403 on .ht* as 404
<Files ~ "^\.ht">
Order Deny,Allow
Allow from all
Satisfy All
Redirect 404 /
</Files>
RewriteEngine On
RewriteBase /
# map everything into public and set environment var
# to tag the request being valid
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule ^(.*)$ /public/$1 [E=sitealias:set,L]
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:
RewriteEngine On
# mask as 404 if directly accessed
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule .* - [L,R=404]
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:
mysql: mysqldump --host=%s -u %s --password=%s %s| gzip > %s
git : git gc
git bundle
files: tar --force-local -czf %s %s
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.