Bantuan Alur Kerja Git Wordpress

17

Saya sedang mencari ide alur kerja yang ramping dan efisien untuk bekerja dengan Wordpress.

  1. Ingin memiliki lingkungan git di server saya sendiri secara internal, tidak menggunakan Github untuk menangani repo.
  2. Pembuatan subdomain secara otomatis pada pembuatan cabang git (development.domain.com, ryan.development.domain.com) - Mungkin beberapa kait skrip shell akan ideal untuk ini.
  3. Phing PHP / Shell script Penanganan migrasi db (sesuatu seperti ini http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) untuk menangani penggantian basis data serial setelah mendorong

Operasi mungkin akan berjalan seperti ini:

  1. mendapatkan versi wordpress terbaru saat ini dan cabang keluar, nama cabang mendapat entri subdomain (branchdevelopment.domain.com)
  2. submodule tema yang Anda inginkan jika tersedia (saya ingin membuat git repo saya sendiri untuk ini, karena saya menggunakan tesis saya ingin memiliki setup git repo tesis kosong untuk mengambil dari internal pada server yang sudah dibuat)
  3. checkout dan lakukan perubahan, ulasan klien, setelah didorong untuk aktif, skrip database kemudian akan secara otomatis mengubah nilai url berseri dari localhost (atau subdomain) ke url langsung

Apakah ini mungkin? Saya pernah mendengar Capistrano juga bagus untuk digunakan dengan ini tetapi tidak yakin bagaimana Capistrano sepenuhnya bekerja.

Saya menjalankan sekitar 200 situs di server saya sendiri dan ingin mulai mengimplementasikan situs-situs ini ke dalam lingkungan alur kerja git yang kuat sehingga saya dapat merampingkan pekerjaan saya dengan lebih baik. Sampai sekarang, pada dasarnya saya mengunduh gambar situs dan mengerjakannya secara lokal lalu mengunggah perubahan kembali ke server. Ini sangat membosankan di zaman sekarang ini.

Apakah ada yang punya solusi mengenai jenis alur kerja ini / saya telah bekerja dengan ini di masa lalu? Jika demikian, beberapa sumber / jawaban akan sangat dihargai.

Ryan Dennler
sumber
3
Mengapa tidak menggunakan bitbucket karena mereka memiliki repo tak terbatas secara gratis?
Brian Fegter
2
Cari ganti memiliki versi cli jika Anda checkout github repo, Anda dapat menggunakannya, meskipun saya tidak bisa mengomentari bagaimana Anda mendapatkan berbagai URL dan parameter untuk melewatinya
Tom J Nowell

Jawaban:

6

Pertanyaan Umum dijawab

Nr.1. Ingin memiliki lingkungan git di server saya sendiri secara internal, tidak menggunakan Github untuk menangani repo.

Hal pertama yang saya lakukan adalah memeriksa komposer dan cara kerjanya dengan WordPress , yang merupakan proyek oleh Andrey "@Rarst" Savchenko .

Nr.2. Pembuatan subdomain secara otomatis pada pembuatan cabang git ( development.example.com, ryan.development.example.com) - Mungkin beberapa hook script shell akan ideal untuk ini.

Ini adalah sesuatu yang di luar jangkauan untuk situs ini. Entah meminta bantuan di StackOverflow atau bertanya di hoster Anda. Beberapa hosters tidak mengizinkan untuk mengedit entri ini sendiri.

No. 3. Phing PHP / Shell script Penanganan migrasi db (sesuatu seperti ini http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) untuk menangani penggantian basis data serial setelah mendorong

Saya akan menyiapkan instalasi multisite / jaringan. Ini memungkinkan untuk mengelola semua tabel dengan mudah, menjaga pengguna di tempat sentral, dll.

WP Gear - sebuah proyek oleh Robert "@Wyck" Ellison - memiliki daftar skrip build alternatif. Termasuk WordPhing yang ditulis sendiri. @TomJNowells /Interconnect.it naskah sejauh ini tidak ada dalam daftar itu.

Pertanyaan Operasi dijawab

No. 1. mendapatkan versi wordpress terbaru saat ini dan cabut keluar, nama cabang mendapat entri subdomain (branchdevelopment.domain.com)

Tidak yakin mengapa seseorang ingin melakukan ini: Subdomain untuk setiap cabang. Ketika Anda melihat repositori WordPress GitHub yang disinkronkan dan daftar cabang , maka Anda akan melihat bahwa setiap cabang diberi nama X.Y-branch. Jadi subdomain Anda akan dinamai misalnya 3.6-branch. Saya tidak yakin apakah subdomain diizinkan untuk memulai dengan angka (seharusnya, tetapi tanyakan pada hoster Anda) dan kemudian ada masalah bahwa Anda akan mendapatkan sub-subdomain yang diberi nama 6-branch, yang memiliki sub-subdomain yang bernama 3dan satu lagi bernama 2. Dan tebak memasangkan cabang versi 2- dan 3 di subdomain bukan hal yang ingin Anda capai.

Singkatnya: Hanya checkout 3.6-branchjika Anda perlu berganti cabang.

Nr.2. submodule tema yang Anda inginkan jika tersedia (saya ingin membuat git repo saya sendiri untuk ini, karena saya menggunakan tesis saya ingin memiliki pengaturan git repo tesis kosong untuk mengambil dari internal pada server yang sudah dibuat)

Thomas "@toscho" Scholz telah menulis plugin yang bagus yang memungkinkan kami menggunakan subdomain untuk menangani tema di luar direktori WordPress. Anda dapat menemukannya di jawaban ini serta dalam satu ini . Bahkan pembaruan otomatis akan berfungsi untuk tema sejak WP 3.6.

Anda dapat melakukan hal yang sama untuk MU-Plugins dan Plugins hanya dengan mengatur konstanta berikut dalam wp-config.phpfile Anda :

define( 'WP_PLUGIN_DIR',   'path/to/your/plugins.dev/folder/plugins' );
define( 'WP_PLUGIN_URL',   'https://plugins.dev/plugins' );
define( 'WPMU_PLUGIN_DIR', 'path/to/your/plugins.dev/folder/mu-plugins' );
define( 'WPMU_PLUGIN_URL', 'https://plugins.dev/mu-plugins' );

Sekarang cukup letakkan semua plugin dan tema Anda di bawah kontrol versi dan dorong ke server Anda. Anda dapat dengan mudah menyediakan semuanya menggunakan plugins mu atau plugins default yang mengaktifkan jaringan.

Nr.3 checkout dan lakukan perubahan, ulasan klien, setelah didorong untuk aktif, skrip database kemudian akan secara otomatis mengubah nilai url berseri dari localhost (atau subdomain) ke url langsung

Jika skrip / plugin Toms tidak membantu Anda sejauh ini, maka diberitahukan bahwa ia menerima permintaan tarik di GitHub .

kaisar
sumber
2
Dalam 2 bulan saya menghadiri situs ini, saya mengerti bahwa "Saya akan membuat instalasi multisite / jaringan" adalah kalimat favorit Anda :)
gmazzap
@ GM hehe :) Ya, benar. Secara umum, saya bahkan tidak mengerti mengapa kami masih memiliki satu situs. Dengan jaringan instalasi, domain utama Anda / situs sebenarnya adalah persis sama dengan situs tunggal Anda install. Anda hanya mendapatkan banyak opsi dan kemungkinan di atasnya.
kaiser
Secara umum saya setuju. Alasan untuk memasang satu situs adalah: 1) akses server terbatas 2) sebagian besar kode yang ada (plugin, tema, cuplikan) tidak berfungsi dengan baik atau memiliki masalah dengan pemasangan karya baru. Jadi, jika Anda tidak / tidak bisa menulis kode sendiri dan Anda sebenarnya tidak memerlukan jaringan inslall, lebih baik menggunakan satu instalasi.
gmazzap
1
Jika skrip Toms tidak berfungsi, ada fitur lengkap Serialized parser di PHP userland tersedia yang disebut Serialized .
hakre
@ hasre Seperti biasa: Tolong edit saja pertanyaan saya :)
kaiser
3

Tidak ada waktu untuk menulis jawaban fitur lengkap (saya tahu agak lumpuh) tetapi mungkin layak untuk dibagikan (saya mungkin mengedit ini karena saya juga merencanakan posting blog di sini):

Itu berarti Anda dapat memiliki beberapa setup WP berbasis trunk / versi yang Anda dapat sepenuhnya hack termasuk. tema dan plugin.

Karena ini adalah satu repositori independen (lokal), Anda dapat mendorong ini melalui ssh ke repositori lain, misalnya satu:

  • Itu berada di host jarak jauh di mana situs harus ditempatkan di (bare repo).
  • Yang memiliki kait untuk membuat repositori lain pada host itu benar-benar menggabungkan perubahan yang baru saja Anda dorong.

Ini diuraikan dalam Alur kerja Git yang berfokus pada web (Nov 2008; oleh Joe Maller) .

Jika Anda memiliki pengalih konfigurasi yang memilih beton wp-config.phpberdasarkan sistem yang sedang berjalan, Anda bahkan dapat mengonfigurasi semua host secara terpusat (pengembangan, siaran langsung, pentas, teman, ...) di dalam repo.

Perubahan hulu di WP yang Anda lakukan hanya mengambil dan menggabungkan subtree.

Plugin yang baru saja Anda perbarui dan komit.

Penempatan adalah hal yang sederhana $ git push remote.

Jalankan backup harian pada host jarak jauh untuk git repos, database dan file yang diunggah dan ini murah, ramah pengembang dan fleksibel. Ini berfungsi baik untuk pengaturan pengembang tunggal maupun untuk tim kecil karena semua orang dapat checkout dari repro telanjang di remote.


Ada beberapa peringatan:


Sekarang dengan daftar periksa Anda dan pengaturan seperti diuraikan di atas:

1. Ingin memiliki lingkungan git di server saya sendiri secara internal, tidak menggunakan Github untuk menangani repo.

Github hanya menangani repo hulu di sini (Wordpress), bukan milik Anda sendiri.

2. Pembuatan subdomain secara otomatis pada pembuatan cabang git (development.domain.com, ryan.development.domain.com) - Mungkin beberapa kait skrip shell akan ideal untuk ini.

Pengaturan sebagaimana diuraikan adalah pendekatan modular dengan satu repo per situs. Ini dapat menangani sebanyak mungkin host pengembangan yang Anda inginkan, mungkin sama-sama berfungsi baik dengan instalasi multi-situs untuk menangani beberapa domain, tetapi itu akan dihitung sebagai satu pengaturan wordpress dalam pendekatan ini.

3. Phing PHP / Shell script Penanganan migrasi db (sesuatu seperti ini http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) untuk menangani penggantian basis data bersambung setelah mendorong

Ini tidak diperlukan di sini karena hanya kode di bawah kontrol versi, database independen antara pengembangan (, pementasan) dan produksi sebagaimana mestinya.

Anda mungkin sedang mencari skrip instal yang melakukan migrasi domain dengan benar, tetapi bahkan dengan kode yang lebih baik (yang tersedia) yang berhubungan dengan pencarian dan penggantian data serial, dalam pengaturan ini biasanya tidak diperlukan karena Anda hanya mendorong perubahan untuk hidup , untuk kasus uji, Anda dapat dengan cepat membuat konten dalam database pengembangan, yang biasanya merupakan masalah terkecil (dari pengalaman praktis saya, pengalaman Anda mungkin berbeda, tetapi saya juga menyarankan untuk menyimpan topik terkait migrasi-database seperti pada pertanyaan tentang itu) miliki di sini di situs - tetapi tanyakan kepada mereka).

Saya menjalankan sekitar 200 situs di server saya sendiri dan ingin mulai mengimplementasikan situs-situs ini ke dalam lingkungan alur kerja git yang kuat sehingga saya dapat merampingkan pekerjaan saya jauh lebih baik.

Saya tidak bisa membayangkan bagaimana situs tersebut akan berada di bawah lingkungan alur kerja string git. Mungkin skrip konfigurasi dan data konfigurasi yang Anda kelola di sini akan disimpan di bawah kontrol versi git. Itu bisa masuk akal. Kalau tidak, dengan banyaknya situs saya pikir tidak masuk akal sama sekali untuk menyimpan semuanya dalam satu git repo. Mungkin bukan salah satu dari itu karena apa yang saya uraikan di atas adalah untuk situs yang Anda kembangkan (termasuk kode inti WP), bukan hanya untuk tugas pemasangan. Jadi, Anda mungkin perlu pertama-tama membuat sendiri beberapa peta kecil dari 200 situs tersebut dan bagaimana mereka berinteraksi satu sama lain dan dari paket mana (WP core, Plugins, Themes) situs-situs tersebut terdiri. Hal pertama yang bisa dilakukan adalah membuat spreadsheet / matriks dan memasukkan semua situs.

Anda kemudian dapat menyimpannya sebagai CSV, meletakkannya di bawah kontrol versi dan membuat skrip penerapan melakukan pekerjaan berdasarkan file itu.

Dan jika saya telah mempelajari sesuatu dengan tugas otomatis: Ikuti filosofi Unix, gunakan alat yang ada dan berfungsi dengan baik (lebih baik menghabiskan setengah hari membaca tentang beberapa perintah kemudian mencoba mencari alternatif karena untuk sebagian besar pekerjaan, masalahnya adalah dipecahkan) dan fokus pada alat baris perintah. Mereka yang paling kuat.

hakre
sumber