Advertisement
  1. Code
  2. WordPress

Menjalankan WordPress di OpenShift Bagian 2

by
Read Time:25 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Dean Ramadhan (you can also view the original English article)

Dalam tutorial ini, kita akan mempelajari lebih dalam tentang OpenShift untuk memahami proses pembangunan dan penyebaran kustom. Kami juga akan mempelajari command-line tool untuk mencatat dan mengatasi masalah saat aplikasi kami tidak aktif.

Kami juga akan membahas beberapa tips bonus untuk memanfaatkan fitur SSH yang ditawarkan oleh OpenShift. Selain itu, kita akan melihat cara menyinkronkan lingkungan lokal kita dengan lingkungan remote termasuk basis data, file sumber, dan file media.

Bagian pertama dari seri ini memberikan gambaran umum singkat tentang OpenShift. Kami membahas cara membuat aplikasi, mendapatkan URL server, nama akun kami, dan menyiapkan domain khusus.

Kami melakukan hampir semua tugas itu menggunakan antarmuka web yang bagus dan sangat nyaman; Namun, selain dasbor, OpenShift menawarkan alat klien yang kuat untuk dipanggil rhc client. Kita dapat memintanya dari command line untuk melakukan administrasi dan pemeliharaan OpenShift. Setelah Anda menginstal alat, Anda dapat membuat aplikasi, menambahkan kartrid, dan menambah roda gigi dengan cepat. Ini pisau tentara Swiss. Anda mungkin tidak membutuhkannya tetapi sangat berguna.

Instal Klien Command Line OpenShift

Dokumen OpenShift sangat jelas tentang menginstal pustaka klien ini. Perpustakaan ditulis dalam Ruby jadi pastikan Anda telah menginstal Ruby. Pada dasarnya, Anda hanya perlu menginstal getm rhc di Mac atau Linux. Anda memiliki peluang besar bahwa Git dan Ruby sudah diinstal sehingga Anda hanya perlu menjalankan:

Kemudian atur dengan nama pengguna dan kata sandi Anda. Kapan Anda diminta untuk Menghasilkan token sekarang? Ketik Ya.

Sekarang kita telah menginstal utilitas, mari kita bermain dengannya.

Hal pertama yang perlu diperhatikan adalah bahwa perintah rhc akan memberi Anda daftar perintah yang tersedia. Anda dapat belajar dari sana dengan rhc help. Ini menunjukkan gambaran singkat dari setiap perintah. rhc help command_name akan menunjukkan kepada Anda bagaimana menggunakan perintah tertentu.

Untuk perintah yang berinteraksi dengan aplikasi, Anda harus menentukan nama aplikasi dengan -a appname atau hanya menambahkan nama aplikasi; namun, jika Anda menjalankan perintah di dalam repositori Git yang Anda kloning sebelumnya, Anda dapat menghilangkannya. Nama aplikasi dapat dilihat dengan perintah rhc app. Contoh dengan aplikasi demo2 saya sebelumnya. Daripada mengetikkan seluruh nama akun dan nama server ke SSH ke dalamnya, saya bisa menggunakan perintah ini:



Terkadang, berguna untuk memicu penyebaran tanpa dorongan apa pun. Katakanlah kita ingin menggunakan WordPress dari komit Git tertentu atau branch khusus.

Lihat contoh berikut:


Atau tampilkan informasi aplikasi:


Anda juga dapat menyimpan snapshot dari aplikasi saat ini:

Atau Anda dapat menambahkan beberapa kartrid:

Tentu saja, silakan bereksperimen dengan sejumlah perintah yang berbeda. Ini relatif lurus ke depan dan mudah dipahami, dan karena semuanya di bawah kendali sumber, mudah untuk mengembalikan perubahan Anda.

Apa yang Terjadi Ketika Anda Push ke Repositori Anda?

Pada artikel pertama, kami melihat bahwa setiap kali git push untuk menyebarkan branch dipicu, aplikasi akan digunakan. Menurut dokumen OpenShift, berikut adalah rincian dari apa yang terjadi:

  1. Anda menjalankan git push di komputer Anda, perubahan Anda dikirim ke aplikasi OpenShift Anda
  2. Aplikasi dimatikan
  3. Perubahan Anda disalin di server ke lokasi yang benar
  4. OpenShift memanggil build hook Anda - file skrip yang Anda tempatkan di repositori Git Anda
  5. Aplikasi Anda dimulai

Langkah 4 ditangani oleh file skrip di .openshift /action_hooks Anda. OpenShift akan mengeksekusi file skrip tersebut diperiksa ke dalam repositori Git Anda pada titik tertentu selama proses penyebaran.

Jika file skrip yang sesuai tidak ada, proses penyebaran akan berlanjut secara normal. Sekali lagi, semua hook harus ditempatkan di direktori .openshift/action_hooks/ di repositori aplikasi Anda. Fase individu dari setiap build adalah:

  1. Pre-Receive. Selama push Anda, OpenShift memeriksa untuk memastikan bahwa aplikasi Anda dalam keadaan konsisten. Tidak ada hook untuk langkah ini.
  2. Pre-Build. Ini terjadi setelah aplikasi dihentikan dan direktori repo baru telah digunakan tetapi sebelum membangun. jalankan skrip .openshift/action_hooks/pre_build
  3. Build. Ini membangun aplikasi Anda, mengunduh ketergantungan yang diperlukan, mengeksekusi skrip .openshift/action_hooks/build dan menyiapkan segalanya untuk penyebaran. Dalam lingkup WordPress, kami tidak menggunakan langkah ini karena WordPress hanya perlu masuk ke root dokumen dan dijalankan oleh server web, tidak ada persyaratan membangun khusus. Kami biasanya menggunakan hook ini untuk Mengunduh WordPress dan mengekstraknya ke lokasi yang benar di OpenShift.
  4. Deploy. Langkah ini terjadi tepat sebelum aplikasi dikeluarkan permulaan. Pekerjaan persiapan apa pun yang diperlukan untuk menyiapkan aplikasi agar dimulai harus dilakukan di hook .openshift/action_hooks/deploy. Dalam lingkup WordPress, kami menggunakan hook ini untuk menyalin data build di atas ke dalam root dokumen, menyalin plugin dan tema (.openshift/themes dan .openshift/plugin) ke lokasi yang benar.
  5. Post-Deploy. Beberapa aplikasi mungkin perlu berinteraksi dengan aplikasi yang sedang berjalan untuk menyelesaikan proses penyebaran. Setelah aplikasi dimulai, hook .openshift/action_hooks/post_deploy akan dieksekusi.

Anda benar-benar dapat menyesuaikan skrip ini untuk keperluan Anda sendiri. Skrip build dijalankan secara langsung, artinya Anda dapat menulisnya dalam bahasa apa pun tidak peduli itu Bash, Ruby, atau Python selama Anda memasukkan shebang yang benar seperti jika Anda menggunakan bash.

Atau Ruby

Saya lebih suka menulis skrip Bash sederhana untuk tujuan pembuatan dan saya akan menggunakannya dalam tutorial ini. Bash ada di mana-mana dan sintaksinya sangat mudah sehingga Anda tidak perlu tahu Bash untuk memahami beberapa skrip sebenarnya.

Sehubungan dengan WordPress, kami tidak melakukan banyak tugas dalam proses pembangunan karena PHP tidak membutuhkan pembangunan; Namun, kami memanfaatkan proses pembuatan itu untuk mempersiapkan beberapa data. The .openshift/action_hooks/build memeriksa apakah WordPress dibuat di OpenShift, jika tidak akan mengunduh WordPress dari WordPress.org, membuat direktori yang diperlukan, mengekstrak dan menyalin konten file sumber WordPress ke lokasi yang benar. Sejak penyebaran kedua, skrip pembangun itu hampir tidak menghasilkan apa-apa karena WordPress telah diinstal. Untuk mengkustomisasi skrip build ini, kita harus mengetahui variabel lingkungan.

Variabel Lingkungan OpenShift

Selama proses membangun dan mendokumentasikan, kita perlu mengetahui beberapa informasi OpenShift seperti jalur root dokumen, jalur data, dan nama aplikasi. Informasi ini tersedia dalam variabel lingkungan yang daftar lengkapnya dapat diakses di sini.

Beberapa variabel yang akan sering kita gunakan adalah sebagai berikut:

  1. OPENSHIFT_HOMEDIR. jalur direktori home. Di mesin lokal Anda, Linux Anda akan memiliki direktori home pengguna /home/username atau di Mac OS X itu adalah /Users/username. Direktori home adalah folder tempat Anda akan berada di sana ketika Anda mengakses jarak jauh melalui SSH. Ini /var/lib/openshift/user_account_id. Sebagai contoh, saya sendiri adalah /var/lib/openshift/532bd7655004468bcf0000e1.
  2. OPENSHIFT_REPO_DIR$OPENSHIFT_HOMEDIR/app-root/runtime/repo/. Repositori yang berisi versi yang saat ini digunakan (aplikasi). Persis sama dengan apa pun yang Anda miliki di dalam repositori di komputer lokal Anda dengan pengecualian bahwa folder php sekarang adalah titik tautan simbolis ke root dokumen; oleh karena itu, $OPENSHIFT_REPO_DIR/php dapat digunakan dalam membangun skrip untuk referensi ke root dokumen.
  3. OPENSHIFT_DATA_DIR$OPENSHIFT_HOMEDIR/app-root/data/
  4. OPENSHIFT_APP_UUID. Id unik aplikasi Anda di OpenShift. UUID bisa sangat berguna ketika Anda mulai men-generate.

Kami mengakses variabel ini dalam skrip build kami dengan $variable_name.

Proses Penyebaran dan Build Kustom

Mari kita lihat kembali struktur repositori kami saat ini:

Kami akan mulai dengan tindakan Hello World sehingga kami dapat mengetahui apa yang akan dihasilkan, kapan dan bagaimana kami menyesuaikan skrip build.

Hello World Build Anda

Biarkan menambahkan ini echo "Hello world. This is invoked before building." ke dalam ./openshift/pre_build Anda

Push ke repositori dan Anda akan melihat output seperti ini:
Seperti yang Anda lihat, pesan kami muncul selama proses pembuatan. Sekarang, mari kita lakukan hal yang nyata untuk menyalin file selama proses pembangunan.

Menyalin File ke Root Dokumen

Jika Anda mengingat langkah sebelumnya, file dalam .openshift/themes dan .openshift/plugins disalin ke wp-content/themes dan wp-content/plugins. Katakanlah kita ingin melakukan hal yang sama untuk menyalin file ke root dokumen.

Anda ingin membuat sub folder yang dipanggil resume dan meletakkan file resume/my_resume.txt dan membuatnya mengakses melalui demo2-tutsplus.rhc-cloud.com/resume/my_resume.txt. Mari kita buat direktori untuk menyimpan data yang akan kita salin ke dalam dokumen root. Kami membuat panggilan folder docroot di dalam .openshift dan apa pun di dalamnya akan disalin.

Mari kita buka .openshift/action_hooks/deploy, perhatikan baris 49 (saya membuatnya tebal)

Kami menambahkan perintah ini setelah itu.

Baris dengan # adalah komentar, untuk referensi kami sendiri. echo garis hanya untuk menunjukkan beberapa output. Perintah sebenarnya yang kami gunakan adalah cp untuk menyalin semua file dan folder secara rekursif.

Sekarang, mari letakkan sesuatu di .openshift/docroot dan gunakan.


Latihan Anda

Gunakan folder php di repositori Anda sebagai cara untuk menyimpan konten ini, daripada memperkenalkan .openshift/docroot.

Petunjuk

app-deployments/current/repo memiliki salinan repositori yang persis sama. Apa pun yang Anda miliki di komputer lokal Anda akan ada di sini.

Memecahkan masalah dan Memelihara

Di bagian sebelumnya, Anda tahu cara akses rremote ke aplikasi Anda dengan SSH. Setelah Anda masuk, Anda dapat menggunakan perintah Linux.

Namun, rhc datang dengan perintah ssh memungkinkan Anda untuk terhubung ke suatu aplikasi. Cepat dan mudah diingat.


Dari ini, Anda selalu dapat menggunakan help untuk menampilkan perintah yang tersedia.

  1. tail_all: tail semua log Anda. Anda dapat melihat logging secara real time dengan perintah ini untuk semua roda gigi di sistem: seperti log akses Apache, log kesalahan MySQL.
  2. mysql membuat anda memakai ke dalam shell MySQL. Sangat berguna membandingkan dengan mengetikkan perintah mysql yang panjang dengan nama host, string pengguna dan kata sandi.
  3. export menunjukkan semua variabel lingkungan saat ini. Selama bekerja dengan skrip build, Anda dapat menggunakan perintah ini untuk melihat daftar variabel lingkungan yang tersedia.
  4. gear untuk mengontrol gear Anda: mulai, berhenti, restart. Seperti Anda dapat me-restart apache, hentikan mysql.
  5. snapshot snapshot mengambil backup penuh dari WordPress Anda saat ini dengan semua file, database dump, dan data media. Cara yang sangat baik untuk memiliki backup penuh situs Anda.
  6. quota menunjukan kuota disk Anda. Berguna saat Anda tidak dapat mengunggah ke WordPress lagi, Anda mungkin kehabisan ruang.

Mengambil Snapshot

rhc snapshot-save demo2 dump basis data Anda, kompres file media, dan kode sumber, kumpulkan file tar dan unduh untuk Anda.

Secara default, file tar dengan nama yang sama dengan aplikasi Anda dibuat. Simpan di suatu tempat untuk Anda santap. Setelah snapshot disimpan, Anda juga dapat memulihkannya.

Memeriksa Status Gear

Perintah gear mengontrol status kartrid, mulai / berhenti. Seperti Anda mendapatkan kesalahan batas waktu saat mengunjungi domain Anda, atau kesalahan 404, 503, atau kesalahan basis data. Anda harus SSH ke aplikasi Anda dan memeriksa status gear:

Jika dikatakan CLIENT_RESULT Application is either stopped or inaccessible, saya harus memulainya dengan:

Langkah selanjutnya adalah berkonsultasi dengan file log Anda.

Log

tail_all menunjukkan Anda log yang selesai semua kartrid secara real time. Namun, jika Anda ingin melihat log individual, berikut adalah daftarnya:

  1. akses php/logs dan log kesalahan dari Apache dan MySQL
  2. mysql/log logMySQL

Port Forwarding

Perintah rch port-forward dapat membantu Anda membuat koneksi lokal ke layanan yang di-host (server Web, server Database ...). OpenShift secara otomatis memeriksa port yang tersedia pada sistem lokal Anda dan meneruskan satu ke port remote layanan yang berjalan. Melalui port forwarding, Anda dapat bekerja pada mesin lokal tetapi koneksi diteruskan ke mesin remote.

Mari kita coba dengan MySQL.

Saya memiliki port 8080 dan 3306 untuk berbagai aplikasi saya. Karena itu, OpenShift mengambil 3307 untuk MySQL. Sekarang saya bisa menggunakan kredensial MySQL untuk terhubung dengannya dengan Sequel Pro. Jika Anda lupa kata sandi, Anda bisa mendapatkannya lagi di dashboard OpenShift atau SSH ke server, dan masalah:

Menggunakan Sequel Pro untuk terhubung dengannya.

Dengan port forwarding, Anda dapat terhubung ke aplikasi dengan mudah menggunakan program GUI

Sinkronisasi Lingkungan Lokal dan Langsung

Semua orang suka mengembangkan pada mesin lokal daripada mengunggah ke server untuk menguji atau mengevaluasi fitur. Anda dapat mengekspor data dari host langsung dan mengimpor pada mesin lokal untuk tujuan itu seperti dalam tutorial ini. Namun, proses ekspor itu menyebalkan. Data bisa besar, lebih lama dan lebih lama untuk ekspor/impor. Memperbaiki bug juga lebih sulit. Jika bug hanya terjadi pada posting/halaman tertentu di situs langsung, tanpa memproduksi ulang konten posting/halaman yang tepat, akan sulit untuk melakukan debug pada lingkungan lokal.

Atau jika Anda adalah tim remote, dan tim Anda membuat banyak pos pengujian pada area staging/testing (hosting di OpenShift), akan lebih baik jika Anda memiliki cara yang baik untuk hanya menyinkronkan semuanya kembali, khususnya data gambar .

Oleh karena itu, saya mengusulkan metode untuk mencapainya dengan: port forwarding dan mengedit file host. Menggunakan port forwarding seperti yang kita lihat di atas, kita dapat mengakses MySQL dengan mudah dari mesin lokal. Dengan bantuan mengedit file host, kita dapat mengarahkan domain openshift.axcoto.com ke mesin lokal, alih-alih ke OpenShift. Dalam repositori clone kami, kami memiliki folder php kosong. Saat menyebarkan, folder itu diganti dengan tautan simbolis ke root dokumen Apache. Sekarang, kita akan menggunakan folder itu sebagai root dokumen pada mesin lokal kita. Ingat struktur repositori lagi, di komputer saya.

Perhatikan bahwa, untuk berhasil pada metode ini, Anda harus menambahkan apa pun yang Anda miliki di wp-content/plugins (default WordPress 3.8.1 plugins) dan wp-content/themes (default WordPress 3.8.1 themes) di OpenShift ke dalam repositori Git Anda. Anda dapat mengunduhnya melalui scp atau SFTP seperti yang kita bahas di artikel sebelumnya, atau Anda dapat mengunduh yang default dari WordPress.

Pastikan repositori .openshift/themes dan .openshift/plugins Anda memiliki hal yang sama dengan folder wp-content/themes dan folder wp-content/plugins dari aplikasi WordPress di OpenShift.

Langkah 1: Port Forwarding

Menggunakan perintah rhc port-forward demo2, dengan demo2 adalah aplikasi saya. Ubah ke nama aplikasi Anda.

Langkah 2: Host Virtual

Menggunakan Apache, kami akan menambahkan satu lagi entri untuk titik domain kami, tahan folder WordPress kami. Tergantung pada OS Anda, Anda mungkin memiliki lokasi berbeda untuk konfigurasi Apache. Itu bisa /etc/apache2 atau /etc/httpd.

Sebagai contoh, di Mac saya, ini /etc/apache2. Saya akan menambahkan kode di bawah ini ke /etc/apache2/httpd.conf saya, atau /etc/apache2/extra/httpd-vhosts.conf bergantung pada OS Anda, atau di tempat yang Anda inginkan.

Jika Anda tidak terbiasa dengan Apache dan Virtual host, beberapa artikel akan membantu:
  1. https://code.tutsplus.com/articles/apache-2-basic-configuration-on-unix-like-systems--net-26607
  2. http://code.tutsplus.com/articles/how-to-setup-a-wordpress-development-environment-for-windows--wp-2...
  3. http://code.tutsplus.com/tutorials/wordpress-development-and-deployment-with-mamp-git-and-dropbox--w...

Langkah 3: Variabel lingkungan

Saat berjalan di mesin lokal Anda, Anda tidak akan memiliki variabel lingkungan yang tersedia. Kita harus mendefinisikan di suatu tempat. Untuk permulaan yang sederhana, saya lebih suka menempatkan variabel ini langsung di file konfigurasi Apache dengan arah SetEnv.

Entri host virtual kami menjadi:

Saya ambil variabel lingkungan OpenShift dan memasukkannya ke file konfigurasi kami. Tetapi saya mengubah host MySQL menjadi 127.0.0.1 dan MySQL Port ke 3307 karena kami melakukan port forwarding sebelumnya.

Langkah 4: Mengubah Host File

openshift.axcoto.com dikonfigurasi untuk mengarah ke OpenShift. Namun, kita dapat menimpanya dengan secara langsung mengedit /etc/hosts. Buka file itu dengan editor favorit Anda dan tambahkan

Konfirmasikan bahwa itu menunjuk ke mesin lokal kami.

Jika Anda ingin mengunjungi aplikasi nyata di OpenShift, komentari baris itu di /etc/hosts. Beri "#" untuk dikomentari:

Maka openshift.axcoto.com akan menunjuk ke situs langsung lagi.

Langkah 5: Tarik File Inti WordPress dan Sinkronkan Media Dari Situs Live

Akhirnya, kita harus menyalin file media dan WordPress ke lingkungan lokal kita. Kami juga membuat tautan simbolis untuk mengarahkan php/wp-content/themes ke .openshift/theme. Konsep yang sama berlaku untuk plugin, php/wp-content/plugins menunjuk ke .openshift/plugins. Dengan cara ini kita dapat bekerja pada .openshift/themes dan .openshift/plugins dan dapat menyegarkan browser untuk melihat perubahan kita.

Pertama kali Anda ingin menyinkronkan data, Anda menjalankan perintah ini; Namun, sejak kedua kalinya, kami tidak ingin menarik semua file karena sebagian file ada di sana. Pilihan yang lebih baik hanya menyinkronkan file unggahan. Kita dapat melakukannya dengan scp:

Atau dengan rsync. Rsync jauh lebih baik karena hanya mengunduh file yang tidak ada. File yang sama tidak akan diunduh lagi.

Anda dapat melangkah lebih jauh, memasukkan perintah-perintah ini ke dalam skrip shell dan melacaknya dengan repositori Git Anda juga. Aku akan meninggalkan bagian itu untukmu :)

Anda mungkin ingin mengabaikan file di dalam php karena file itu hanya untuk pengujian/berjalan di komputer lokal. Tidak perlu melacaknya.

Langkah 6: Administrasi melalui SSL (Opsional)

wp-config.php, yang dihasilkan OpenShift, didefinisikan untuk melayani administrator melalui SSL

Di komputer Anda, Anda biasanya tidak memiliki sertifikat SSL. Anda dapat mengedit wp-config.php dan mengatur FORCE_SSL_ADMIN menjadi false. Jika Anda ingin tantangan, dan ingin mencobanya untuk menjalankan koneksi SSL maka inilah instruksinya.

Menghasilkan sertifikat SSL

Ini adalah sertifikat tanda tangan yang berarti peramban tidak akan mempercayainya. Tidak apa-apa karena kami masih mengerjakan lokal dan Anda bisa menambahkan pengecualian ketika browser memberikan peringatan yang tidak dipercaya.

Kami membuat folder /etc/apache2/ssl, kemudian menghasilkan sertifikat dan kunci ke folder itu. Kami akan mengkonfigurasi titik apache ke dua file ini nanti.

Mendefinisikan Entri Virtual Host

Buka /etc/apache/httpd.conf Anda (sekali lagi, file konfigurasi Apache Anda dapat berada di folder yang berbeda, seperti /etc/httpd), temukan baris Listen 80 dan tambahkan Listen 443

Di atas /etc/apache2/extra/httpd-vhost.conf Anda, temukan baris NameVirtualHost *: 80 dan tambahkan

Selanjutnya, kami mendefinisikan satu entri lagi di virtual host untuk port 443. Kami hanya menduplikasi definisi sebelumnya dengan port 80, tapi kali ini, kami menambahkan beberapa definisi SSL.


Perhatikan path file sertifikat SSL. Restart Apache dengan sudo apachectl restart. Sekarang, Anda dapat mengakses dasbor Anda melalui SSL. Ini adalah instalasi WordPress saya, berjalan sepenuhnya lokal dengan database yang sama dari situs live, dan data media disinkronkan.

Kesimpulan

Sepanjang seri ini, kami memperoleh banyak pengetahuan tentang OpenShift. Anda seharusnya tidak dapat dengan mudah menginstal dan mengkonfigurasi WordPress di OpenShift. Dengan bantuan rhc client, Anda dapat dengan cepat mengkonfigurasi atau melihat informasi aplikasi dari terminal.

Kami juga membahas skrip pembuatan dan penyebaran sehingga Anda dapat menyesuaikan aplikasi Anda dengan kebutuhan Anda seperti menunjukkan spanduk khusus, dan dorongan ke HipChat selama penyebaran. Anda bahkan dapat menyinkronkan data antara komputer lokal Anda dan OpenShift. Saya harap Anda menikmati tutorial dan OpenShift ini.

Meninggalkan komentar agar kami tahu kabar Anda. Jika Anda mengalami masalah, beri tahu saya di komentar, saya ingin membantu.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.