Saat ini saya sedang mengembangkan WordPress saya secara lokal, melakukan kode saya ke GitHub dengan Git dan kemudian SSHing ke server saya dan melakukan "git pull" untuk memperbarui kode saya. Apakah ini pilihan yang baik untuk penyebaran kode ke situs WordPress (saya jelas memiliki akses tingkat root ke server saya dalam kasus ini.) Saya tahu hal-hal seperti Capistrano, tetapi apakah itu terlalu banyak untuk penyebaran ke situs WordPress? Bagaimana saya bisa memaksimalkan Git / GitHub dalam hal ini?
deployment
git
github
Mat
sumber
sumber
Jawaban:
Saya menggunakan git untuk ini dan ternyata berfungsi dengan sangat baik. Beberapa saran:
.gitignore
file Anda ..gitignore
file Anda untuk mencegah pengaturan pengembangan wordpress Anda menimpa yang produksi Anda.Pertimbangkan untuk menambahkan git
post-receive
hook untuk checkout pembaruan Anda secara otomatis ke direktori yang Anda gunakan untuk mempublikasikan wordpress melalui server web Anda (misalnya/var/www
). Ini memungkinkan Anda untuk hanya memeriksa file sendiri, menghindari metadata git yang menemukan jalan masuk ke root dokumen server web Anda, dan juga berarti Anda dapat menambahkan perubahan izin apa pun ke dalam kiriman pasca-terima sehingga izin Anda tetap konsisten setiap saat. Contohnya termasuk di bawah ini:sumber
unset GIT_INDEX_FILE
salah ketik?Saya akan sangat menyarankan pengaturan Capistrano - ini adalah sedikit pekerjaan dimuka pertama kali, tetapi setelah itu Anda dapat dengan mudah menggunakannya untuk pengaturan baru.
Keuntungan utamanya adalah
Saya menambahkan satu set script capistrano untuk menunjukkan kepada Anda bagaimana saya mengatur semuanya.
Capfile
deploy.rb
dan akhirnya, file lingkungan sampel (jika Anda menggunakan permata multistage, maka Anda dapat memiliki salah satunya untuk setiap tahap lingkungan Anda, misalnya lokal, pementasan, produksi)
config / local.rb
File-file ini mungkin tidak berfungsi tanpa mengutak-atik, dan Anda akan membutuhkan pengetahuan dasar Capistrano, tetapi mudah-mudahan akan membantu beberapa orang.
Ini adalah tutorial pertama yang saya gunakan untuk membuat saya menggunakan Capistrano dan WordPress: http://theme.fm/2011/08/tutorial-deploying-wordpress-with-capistrano-2082/
sumber
git post-receive
kait adalah cara untuk pergi!Saya benar-benar melakukan presentasi WordCamp tentang topik ini. Daripada mengulangi diri saya sendiri, inilah screencast-nya dan inilah skrip penerapan yang sangat sederhana untuk menemani apa yang saya diskusikan.
Singkatnya, saya menggunakan GitHub untuk meng-host repo, dan menggunakan webhook untuk menyebarkan perubahan berdasarkan pada git ref. Ini memungkinkan Anda untuk menggunakan model percabangan git Vincent Driessen dan membuka Anda hingga memiliki webhead tanpa batas, server pentas, server pengujian, dll., Semuanya dengan penyebaran otomatis. Saya juga mencakup menjaga wp-config.php di bawah kontrol versi sambil mempertahankan versi dev / produksi yang terpisah (dengan mengganti nama file dan symlinking).
sumber
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:
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
: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:
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):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: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:
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.
sumber