Saya tahu pertanyaan ini sedikit lebih tua tetapi karena saya belum melihat ini sebagai jawaban di sini, saya ingin berbagi apa yang biasanya saya lakukan untuk setup dan penyebaran berbasis git situs tunggal dan itu bekerja dengan sangat baik, juga dengan bekerja dari banyak perangkat, lokasi, dan dengan banyak pengembang (semua memiliki repo lokal mereka sendiri, mereka beroperasi seperti biasa untuk git).
Saya dengan hangat menyarankan pengaturan berikut:
Ini juga diuraikan dalam (jika Anda membutuhkan sumber daya kedua untuk membungkus kepala Anda di sekitarnya):
Ini pada dasarnya bekerja (dengan setidaknya tiga repo) oleh:
- menempatkan situs web di live-host di bawah git,
- buat repositori bare git baru di host langsung.
- Dan kemudian bercabang dari repositori kosong ke repositori git pengembangan lokal Anda.
Ketika pekerjaan selesai Anda mendorong repo telanjang yang Anda kloning. Repo telanjang memiliki kait untuk disinkronkan dengan repo langsung (dalam kode di atas disebut prime ).
Sebagai pengaturan khusus Wordpress di repo saya punya ini .gitignore
:
# uploads are data, excluded from source tree
wp-content/uploads/
Sisanya termasuk. plugin dan konfigurasi tema saya simpan di bawah kontrol versi / konfigurasi. Ini memungkinkan saya untuk dengan mudah melacak perubahan dan meninjau kode sebelum menggunakannya secara langsung. Saya juga bisa lebih mudah bergabung dengan pohon jarak jauh dengan perubahan saya sendiri. Itu sangat berguna terhadap inti Wordpress yang tersedia di Github .
Ini berfungsi cukup baik untuk sebagian besar kebutuhan Wordpress saya. Repo kosong mencegah Anda mendorong perubahan yang bertentangan. Ini juga disinkronkan ke salinan jarak jauh terlebih dahulu sebelum memperbarui situs langsung. Itu berarti, memperbarui situs langsung biasanya cukup cepat. Karena kait, Anda bahkan dapat menghubungi kait pembaruan Wordpress sesudahnya jika mau.
Jika belum bereksperimen berapa banyak ini dapat ditingkatkan dengan kait Github, tapi saya biasanya tidak membutuhkannya karena kode berada di bawah kontrol versi lokal, bukan Github.
Untuk mengatur sistem seperti itu untuk pertama kalinya, Anda harus meluangkan waktu untuk mengevaluasi jika Anda memiliki semua alat yang tersedia di host jarak jauh Anda:
- Akses SSH
- GIT
- Direktori pribadi tempat Anda memasukkan file dan sub-direktori (mis. Untuk repo telanjang Anda)
Waktu setup untuk pertama kalinya harus mungkin dalam satu dua jam termasuk. seluruh lingkungan dan Anda pertama kali mempublikasikan push.
Tergantung pada host Anda, Anda mungkin juga ingin melindungi .git
direktori dari akses web. Berikut adalah beberapa contoh .htaccess
kode yang bahkan menempatkan Wordpress di dalam sub-direktori, yang membuat ruang dalam repo tidak dipublikasikan secara online (berguna):
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]
Singkatnya, semua yang tidak ada di dalam direktori publik tidak online. Di dalam direktori publik dapat berupa basis kode wordpress misalnya, untuk .htaccess
itu Anda memerlukannya:
RewriteEngine On
# mask as 404 if directly accessed
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule .* - [L,R=404]
Ini mencegah akses langsung ke publik . Bagian dari .htaccess -foo ini dapat Anda temukan diuraikan di sini: Permintaan untuk .htaccess harus mengembalikan 404 alih-alih 403 . Untuk variabel lingkungan, Anda perlu menguji apakah itu berfungsi di lingkungan Anda. Anda juga perlu memutuskan apakah Anda meletakkannya di bawah kontrol versi atau tidak.
Jika Anda memiliki kontrol lebih besar pada hosting, Anda dapat melakukan lebih banyak hal di sini (dan berbeda / lebih dioptimalkan), contoh di atas ditargetkan untuk lingkungan shared hosting yang umum (yang menawarkan GIT, beberapa pengguna mengatakan Anda dapat dengan mudah menginstalnya sendiri sebagai baik, saya biasanya meminta hoster saya untuk menyediakan seperti itu karena saya lebih suka jika mereka menjaga itulah yang saya bayar untuk mereka).
Di sisi negatif, ini memiliki beberapa masalah umum yang juga dijabarkan dalam jawaban lainnya. Satu hal yang saya tidak banggakan tetapi yang berhasil adalah memberi host pengembangan perubahan ke file host itu untuk memiliki titik server database ke salinan pengembangan. Jadi, Anda dapat menyimpan satu konfigurasi basis data. Tidak benar-benar keren esp. karena kredensial.
Cadangan Otomatis
Namun saya biasanya tidak terlalu peduli di sini tetapi sebagai gantinya memiliki cadangan harian dijalankan pada sistem jarak jauh yang secara bertahap disimpan di lokasi lain yang jauh. Itu mudah dan murah dan memungkinkan Anda untuk memulihkan baik instalasi Wordpress maupun file-upload, database dan repo git. Juga untuk perintah cadangan saya, saya mungkin tidak sepenuhnya baik-baik saja, tetapi itu berfungsi untuk saya:
mysql: mysqldump --host=%s -u %s --password=%s %s| gzip > %s
git : git gc
git bundle
files: tar --force-local -czf %s %s
Apa yang saya sarankan di sini adalah bahwa Anda menjaga proses di sekitar instalasi Wordpress Anda dari Wordpress. Mereka perlu dijalankan pada sistem tertentu, sehingga Anda biasanya tidak memilikinya di dalam aplikasi (mis. Aplikasi bisa turun tetapi Anda harus terus menjalankannya).
Diaktifkan untuk Kerja Tim
Manfaat bagus lainnya adalah situs Anda sudah diaktifkan untuk kerja tim. Berkat repo bare tambahan Anda tidak bisa berbuat banyak salah dan Anda bahkan dapat berbagi cabang jarak jauh selain dari master atau cabang langsung dengan kolega Anda.