Pengembangan WordPress Lokal dengan Lando (atau Docker menjadi mudah)
Diterbitkan: 2019-11-22Awal tahun ini saya menulis panduan tentang cara menggunakan Docker untuk berkembang di WordPress. Saya sangat menikmati mengerjakan posting itu, dan sepertinya Anda juga menyukainya (terima kasih atas semua komentar dan email Anda). Jika Anda tidak membaca posting, berikut adalah pengingat cepat:
Docker adalah program yang memungkinkan Anda untuk mengemas perangkat lunak dalam wadah dan menjalankannya di atas mesin virtual. Keuntungan utama Docker adalah containernya berjalan menggunakan lingkungan virtualisasi yang disediakan oleh sistem operasi host, menghasilkan container yang cepat dan ringan .
Masalah utama yang dimiliki Docker adalah konfigurasinya yang rumit . Misalnya, untuk membuat lingkungan pengembangan WordPress, kita perlu memulai dua (setidaknya) layanan: layanan database dan server webapp.
Di pos yang berkomentar di awal, kami melihat alat, Docker Compose , yang memungkinkan untuk menentukan semua layanan yang harus kami jalankan untuk proyek tertentu. Dengan Docker Compose , kami berhasil mendefinisikan dalam satu file docker-compose.yml semua dependensi proyek kami dan memulainya dengan satu perintah.
Atau itulah yang awalnya saya janjikan, karena saya menutup posting dengan menjelaskan cara mengkonfigurasi layanan Docker lain yang memungkinkan Anda menggunakan nama domain yang indah di instalasi WordPress Anda. Jika Anda ingat, dengan file docker-compose.yml asli, dev env WordPress kami akan dapat diakses melalui http://localhost:8080 . Tetapi jika kami ingin menggunakan sesuatu seperti http://myplugin.local kami harus menyiapkan proxy yang dapat menyelesaikan nama domain dan menambahkan lebih banyak pengaturan ke docker-compose.yml kami …
Saya tahu, saya tahu—cukup rumit untuk menyiapkan dan menjalankannya! Tetapi setelah Anda mengatur semuanya dengan benar, itu cukup mudah, bukan? Bagaimanapun, saya telah memutuskan untuk memperkenalkan Anda teman baru saya: Lando. Dia akan membantu Anda menyiapkan lingkungan pengembangan baru dalam hitungan detik.
Masuk Lando
Saya pikir cara terbaik untuk memperkenalkan diri Anda ke Lando adalah dengan menggunakan kalimat dari dokumentasinya:
Lando adalah untuk pengembang yang ingin menghindari masokisme buildt secara langsung menggunakan
dokumen Landodockerataudocker-compose.
Yup, tampaknya menggunakan docker dan docker-compose adalah untuk masokis… Jadi mari kita lihat bagaimana kita dapat menentukan dengan cepat dan tanpa komplikasi semua layanan yang kita perlukan untuk mengerjakan proyek WordPress baru.
Memasang Lando
Hal pertama yang harus Anda lakukan untuk dapat menggunakan Lando adalah (kejutan, kejutan!) menginstalnya di komputer Anda. Proses instalasi sangat sederhana dan didokumentasikan dengan sangat baik, tetapi kami dapat meringkasnya dalam langkah-langkah berikut:
- Lando membutuhkan Docker. Jika Anda menggunakan Linux, instal Docker Community Edition terlebih dahulu. Jika Anda menggunakan Mac atau Windows, penginstal Lando sendiri akan menginstal Docker jika belum tersedia.
- Unduh penginstal Lando yang sesuai untuk sistem operasi Anda. Dalam kasus saya, misalnya, saya mengunduh file
lando-v3.0.0-rc.22.deb(saya menggunakan Linux) dan menginstalnya dengandpkg. Untuk Mac, gunakan file.dmgdan, untuk Windows,.exe. - Jalankan penginstal dan ikuti langkah-langkahnya.
Dan itu saja!
Cara Membuat Proyek WordPress baru di Lando
Hal pertama yang harus kita lakukan adalah pergi ke folder proyek yang ingin kita kerjakan (atau buat yang baru untuk itu). Dalam kasus saya, saya akan membuat WordPress dev env baru untuk mengembangkan plugin Nelio A/B Testing kami, jadi saya akan cd ke folder tempat saya mengunduh proyek: ~/dev/plugins/nelio-ab-testing .
Sesampai di sana, kita harus membuat file konfigurasi Lando. File ini mirip dengan docker-compose.yml , tetapi jauh lebih sederhana. Sebagai permulaan, Anda bahkan tidak perlu menulisnya—Lando dapat melakukannya untuk Anda! Cukup gunakan lando init untuk membuat lingkungan pengembangan baru:
lando init \ --recipe wordpress --source remote --remote-url https://wordpress.org/latest.tar.gz --webroot wordpress --name "Nelio AB Testing" # name the project as you wantMari kita lihat apa yang dilakukan instruksi sebelumnya:
- Pertama, kami memberi tahu Lando bahwa kami ingin membuat file konfigurasi baru di direktori saat ini menggunakan
lando init. - Parameter pertama (
--recipe wordpress) memberitahu Lando bahwa kita ingin membuat proyek WordPress. Ini akan membantu Lando mengetahui layanan yang harus disiapkan (basis data, server web, dll). - Kemudian kami menunjukkan bahwa kami ingin Lando mengunduh WordPress dari WordPress.org.
- Dengan
--webroot wordpresskami memberi tahu Lando di mana WordPress akan dipasang. Karena kami baru saja menentukan bahwa WordPress harus diunduh dari WordPress.org dan zip yang akan diunduh Lando akan membuat folderwordpresssetelah membuka ritsleting, itulah lokasi yang kami gunakan untuk Lando. - Terakhir, kami menentukan nama proyek kami (Lando akan menggunakannya untuk menghasilkan domain URL yang ramah).
Setelah menjalankan perintah sebelumnya, Anda akan melihat bagaimana Lando menginstal semuanya dan menyambut Anda dengan info berikut:
NOW WE'RE COOKING WITH FIRE!!! Your app has been initialized! Go to the directory where your app was initialized and run `lando start` to get rolling. Check the LOCATION printed below if you are unsure where to go. Oh... and here are some vitals: NAME my-site LOCATION /tmp/plugin RECIPE wordpress DOCS https://docs.devwithlando.io/tutorials/wordpress.html Daftar semua file di folder saat ini dan Anda akan melihat Lando membuat file tersembunyi bernama .lando.yml dengan konten berikut:

name: my-site recipe: wordpress config: webroot: wordpress Sangat sederhana, bukan? Sekarang mulai layanan Anda menggunakan lando start dan Anda siap melakukannya:
BOOMSHAKALAKA!!! Your app has started up correctly. Here are some vitals: NAME my-site LOCATION /tmp/plugin SERVICES appserver, database APPSERVER URLS https://localhost:32781 http://localhost:32782 http://nelio-ab-testing.lndo.site https://nelio-ab-testing.lndo.siteSelamat! Anda sekarang memiliki instalasi WordPress baru dan berjalan. Jika sekarang kita pergi ke salah satu URL Lando yang terdaftar di awal, Anda akan melihat bahwa Anda hanya perlu mengikuti langkah-langkah untuk menyelesaikan instalasi WordPress:

Menyelesaikan Instalasi WordPress dengan Cepat
Jelas Anda dapat menyelesaikan instalasi WordPress menggunakan penginstal dari layar sebelumnya. Tetapi ada solusi yang lebih baik lagi: gunakan WP-CLI, yang juga tersedia di Lando.
Untuk menginstal WordPress dengan WP-CLI kita harus terlebih dahulu membuat wp-config.php di direktori wordpress . Untuk membuat file itu, kami memerlukan beberapa informasi tentang database kami: di mana itu, nama pengguna dan kata sandinya, dll. Semua informasi ini dapat ditemukan melalui lando info , yang mengembalikan JSON berikut:
[ { service: 'appserver', urls: [ 'https://localhost:32781', 'http://localhost:32782', 'http://nelio-ab-testing.lndo.site', 'https://nelio-ab-testing.lndo.site' ], //... }, { service: 'database', //... creds: { database: 'wordpress', password: 'wordpress', user: 'wordpress', }, //... } ] Karena hasilnya adalah string JSON, kita dapat menggunakan alat jq Unix untuk mengambil nilai spesifik yang kita minati. Misalnya, jika kita ingin mengetahui pengguna database kita, jalankan saja ini:
$ lando info --service database --format json | jq -r ".[0].creds.user" wordpressSekarang, mari manfaatkan perintah ini dan ambil semua data relevan yang kita perlukan untuk membuat file konfigurasi menggunakan WP-CLI:
# Find WordPress' directory (webroot entry in .lando.yml) WEBROOT=`grep webroot .lando.yml | cut -d: -f2 | xargs` # Retrieve database credentials using lando info DBNAME=`lando info --service database --format json | jq -r ".[0].creds.database"` DBUSER=`lando info --service database --format json | jq -r ".[0].creds.user"` DBPASS=`lando info --service database --format json | jq -r ".[0].creds.password"` DBHOST=`lando info --service database --format json | jq -r ".[0].hostnames[0]"` # Create WordPress' config file lando wp config create \ --dbname=$DBNAME \ --dbuser=$DBUSER \ --dbpass=$DBPASS \ --dbhost=$DBHOST \ --path=$WEBROOTSetelah file dibuat, kita dapat meluncurkan perintah instalasi:
# Get WordPress' project name from .lando.yml PROJECT_NAME=`grep name .lando.yml | cut -d: -f2 | xargs` SITE_NAME=`echo "$PROJECT_NAME" | sed -e "s/-/ /g" | sed "s/\b[az]/\u&/g"` # Get one of the possible WordPress' URLs ando created (https) URL=`lando info --service appserver --format json | jq -r ".[0].urls" | grep -vw localhost | grep https: | cut -d'"' -f2` # Extract the domain from the previous URL (removing https) DOMAIN=`echo "$URL" | sed -e "s/^https:\/\///"` # Install WordPress lando wp core install --url=$URL --title="$SITE_NAME" --admin_user=admin --admin_password=password --admin_email=admin@$DOMAIN --path=$WEBROOTSelesai! Kami sudah menginstal dan menjalankan WordPress.
Cara memasukkan proyek kami ke WordPress
Jika sekarang kita masuk ke WordPress dan melihat plugin yang tersedia, kita akan melihat bahwa plugin kita (Pengujian A/B Nelio, dalam contoh saya) tidak ada di sana. Itu karena Nelio A/B Testing tidak ada di wordpress/wp-content/plugins/ . Untuk memperbaikinya, kita hanya perlu membuat tautan lunak di direktori ini yang menunjuk ke akar proyek kita:
cd wordpress/wp-content/plugins/ ln -s ../../../ nelio-ab-testing cd -Dan itu saja!
Sekarang terserah Anda untuk memutuskan pendekatan yang lebih sesuai dengan kebutuhan Anda. Jika Anda ingin membuat instalasi WordPress untuk setiap proyek, cukup ikuti langkah-langkah yang telah saya jelaskan. Sebaliknya, jika Anda menginginkan satu instalasi WordPress dengan semua tema dan plugin Anda di dalamnya, maka cukup buat folder baru, init Lando di sana, dan tambahkan semua plugin Anda di wordpress/wp-content/plugins/ .
Saya harap Anda menyukai posting dan alat ini seperti saya. Dan saya harap itu membuat pekerjaan Anda lebih mudah dan lebih lucu. Sejak menggunakan Lando, saya benar-benar menjauh dari Docker.
Gambar unggulan oleh Victoire Joncheray di Unsplash.
