Tutorial: Membangun PHP (Laravel) dan Azure Database for MySQL - Aplikasi Server Fleksibel di Azure App Service
BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel
Azure App Service menyediakan layanan hosting web yang sangat dapat diskalakan dan melakukan patch mandiri menggunakan sistem operasi Linux. Tutorial ini menunjukkan cara membuat aplikasi PHP aman di Azure App Service yang terhubung ke database MySQL (menggunakan server fleksibel Azure Database for MySQL). Setelah selesai, Anda akan memiliki aplikasi Laravel yang berjalan di Azure App Service di Linux.
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat aplikasi PHP dan MySQL yang aman secara default di Azure
- Mengonfigurasi rahasia koneksi ke MySQL menggunakan pengaturan aplikasi
- Menyebarkan kode aplikasi menggunakan GitHub Actions
- Memperbarui dan menyebarkan ulang aplikasi
- Menjalankan migrasi database secara aman
- Mengalirkan log diagnostik dari Azure
- Mengelola aplikasi di portal Microsoft Azure
Prasyarat
- Langganan Azure jika Anda belum memiliki langganan Azure, buat akun gratis Azure sebelum memulai. Saat ini, dengan akun gratis Azure, Anda dapat mencoba Azure Database for MySQL - Server Fleksibel gratis selama 12 bulan. Untuk informasi selengkapnya, lihat Coba Azure Database for MySQL - Server Fleksibel secara gratis.
Aplikasi sampel
Untuk mengikuti tutorial ini, kloning atau unduh aplikasi sampel dari repositori:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Jika Anda ingin menjalankan aplikasi secara lokal, lakukan hal berikut:
Di .env, konfigurasikan pengaturan database (seperti
DB_DATABASE
,DB_USERNAME
, danDB_PASSWORD
) menggunakan pengaturan di database server fleksibel Azure Database for MySQL lokal Anda. Anda memerlukan instans server fleksibel Azure Database for MySQL lokal untuk menjalankan sampel ini.Dari akar repositori, mulai Laravel dengan perintah berikut:
composer install php artisan migrate php artisan key:generate php artisan serve
1 - Membuat App Service dan sumber daya server fleksibel Azure Database for MySQL
Dalam langkah ini, Anda membuat sumber daya Azure. Langkah-langkah yang digunakan dalam tutorial ini membuat App Service dan konfigurasi server fleksibel Azure Database for MySQL yang aman secara default. Untuk proses pembuatan, Anda akan menentukan:
- Nama untuk aplikasi web. Ini adalah nama yang digunakan sebagai bagian dari nama DNS untuk aplikasi web Anda dalam bentuk
https://<app-name>.azurewebsites.net
. - Runtime untuk aplikasi. Di situlah Anda memilih versi PHP yang digunakan untuk aplikasi Anda.
- Resource Group untuk aplikasi. Grup sumber daya memungkinkan Anda mengelompokkan (dalam kontainer logika) semua sumber daya Azure yang diperlukan untuk aplikasi.
Masuk ke portal Microsoft Azure dan ikuti langkah-langkah ini untuk membuat sumber daya Azure App Service Anda.
Petunjuk | Cuplikan layar |
---|---|
Di portal Azure:
|
|
Di halaman Buat Apl Web + Database, isi formulir sebagai berikut.
|
|
Penyebaran membutuhkan waktu beberapa menit untuk diselesaikan, dan membuat sumber daya berikut:
|
2 - Menyiapkan konektivitas database
Wizard pembuatan menghasilkan pengaturan aplikasi untuk Anda gunakan untuk menyambungkan ke database, tetapi belum dalam format yang dapat digunakan untuk kode Anda. Dalam langkah ini, Anda mengedit dan memperbarui pengaturan aplikasi ke format yang dibutuhkan aplikasi Anda.
Petunjuk | Cuplikan layar | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Di halaman App Service, di menu sebelah kiri, pilih Konfigurasi. | |||||||||||
Di tab Pengaturan aplikasi halaman Konfigurasi , untuk setiap pengaturan berikut, klik Edit, perbarui bidang Nama dengan nilai baru dan klik OK.
|
|||||||||||
Buat pengaturan database baru MYSQL_ATTR_SSL_CA :
|
|||||||||||
Buat pengaturan aplikasi tambahan berikut dengan mengikuti langkah-langkah yang sama, lalu klik Simpan.
|
3 - Menyebarkan kode sampel
Dalam langkah ini, Anda akan mengonfigurasi penyebaran GitHub menggunakan GitHub Actions. Ini hanya salah satu dari banyak cara untuk menyebarkan ke App Service, tetapi juga cara yang bagus untuk memiliki integrasi berkelanjutan dalam proses penyebaran Anda. Secara default, setiap git push
repositori GitHub Anda akan memulai tindakan build dan deploy. Anda akan membuat beberapa perubahan pada basis kode Anda dengan Visual Studio Code langsung di browser, lalu membiarkan GitHub Actions menyebarkan secara otomatis untuk Anda.
4 - Membuat skema database
Wizard pembuatan menempatkan instans server fleksibel Azure Database for MySQL di belakang titik akhir privat, sehingga hanya dapat diakses dari jaringan virtual. Karena aplikasi App Service sudah terintegrasi dengan jaringan virtual, cara termudah untuk menjalankan migrasi database dengan database Anda adalah langsung dari dalam kontainer App Service.
Petunjuk | Cuplikan layar |
---|---|
Di halaman App Service:
https://<app-name>.scm.azurewebsites.net/webssh/host sebagai gantinya. |
|
Di terminal SSH:
|
5 - Mengubah akar situs
Sebagai gantinya, Siklus hidup aplikasi Laravel dimulai di direktori /publik. Kontainer PHP 8.0 default untuk App Service menggunakan Nginx, yang dimulai di direktori akar aplikasi. Untuk mengubah akar situs, Anda perlu mengubah file konfigurasi Nginx dalam kontainer PHP 8.0 (/etc/nginx/sites-available/default). Untuk kenyamanan Anda, repositori sampel berisi file konfigurasi kustom yang disebut default. Seperti disebutkan sebelumnya, jangan mengganti file ini menggunakan shell SSH, karena perubahan Anda akan hilang setelah aplikasi dimulai ulang.
6 - Menelusuri aplikasi
7 - Mengalirkan log diagnostik
Membersihkan sumber daya
Setelah selesai, Anda dapat menghapus semua sumber daya dari langganan Azure dengan menghapus grup sumber daya.
Tanya jawab umum
- Berapa biaya untuk penyiapan ini?
- Bagaimana cara menyambungkan ke database server fleksibel Azure Database for MySQL yang diamankan di belakang jaringan virtual?
- Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?
- Mengapa penyebaran GitHub Actions begitu lambat?
Berapa biaya untuk penyiapan ini?
Harga untuk buat sumber daya adalah sebagai berikut:
- Paket App Service dibuat di tingkat Premium V2 dan dapat ditingkatkan atau diturunkan. Lihat Harga App Service.
- Instans server fleksibel Azure Database for MySQL dibuat di tingkat B1ms dan dapat ditingkatkan atau diturunkan skalanya. Dengan akun gratis Azure, tingkat B1ms gratis selama 12 bulan, hingga batas bulanan. Lihat Harga server fleksibel Azure Database for MySQL.
- Jaringan virtual tidak dikenakan biaya kecuali Anda mengonfigurasi fungsionalitas tambahan, seperti peering. Lihat Harga Azure Virtual Network.
- Zona DNS privat dikenakan biaya kecil. Lihat Harga Azure DNS.
Bagaimana cara menyambungkan ke database server fleksibel Azure Database for MySQL yang diamankan di belakang jaringan virtual?
Untuk menyambungkan ke database server fleksibel Azure Database for MySQL, Anda dapat menggunakan beberapa metode berdasarkan alat dan lingkungan yang Anda inginkan:
- Akses alat baris perintah:
mysql
Gunakan perintah dari terminal SSH aplikasi untuk akses dasar.
- Alat desktop (misalnya, MySQL Workbench):
- Menggunakan penerowongan SSH dengan Azure CLI:
- Buat sesi SSH ke aplikasi web dengan menggunakan Azure CLI.
- Gunakan sesi SSH untuk membuat terowongan lalu lintas ke MySQL.
- Menggunakan VPN situs-ke-situs atau Azure VM:
- Komputer Anda harus menjadi bagian dari jaringan virtual.
- Pertimbangkan untuk menggunakan:
- Azure VM yang ditautkan ke salah satu subnet.
- Komputer di jaringan lokal yang memiliki koneksi VPN situs-ke-situs ke jaringan virtual Azure.
- Menggunakan penerowongan SSH dengan Azure CLI:
- Integrasi Azure Cloud Shell:
- Integrasikan Azure Cloud Shell dengan jaringan virtual untuk akses langsung.
Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?
Ambil file alur kerja yang dibuat secara otomatis dari App Service sebagai contoh, masing-masing git push
memulai eksekusi build dan penyebaran baru. Dari klon lokal repositori GitHub, Anda membuat pembaruan yang diinginkan mendorongnya ke GitHub. Contohnya:
git add .
git commit -m "<some-message>"
git push origin main
Mengapa penyebaran GitHub Actions begitu lambat?
File alur kerja yang dibuat secara otomatis dari App Service mendefinisikan eksekusi dua pekerjaan, build-then-deploy. Karena setiap pekerjaan berjalan di lingkungannya sendiri yang bersih, file alur kerja memastikan bahwa pekerjaan deploy
memiliki akses ke file dari pekerjaan build
:
- Di akhir pekerjaan
build
, unggah file sebagai artefak. - Di awal pekerjaan
deploy
, unduh artefak.
Sebagian besar waktu yang dibutuhkan oleh proses dua pekerjaan dihabiskan untuk mengunggah dan mengunduh artefak. Jika mau, Anda dapat menyederhanakan file alur kerja dengan menggabungkan dua pekerjaan menjadi satu, yang menghilangkan kebutuhan untuk langkah-langkah pengunggahan dan pengunduhan.
Ringkasan
Dalam tutorial ini, Anda mempelajari cara:
- Membuat aplikasi server fleksibel PHP dan Azure Database for MySQL yang aman secara default di Azure
- Mengonfigurasi rahasia koneksi ke server fleksibel Azure Database for MySQL menggunakan pengaturan aplikasi
- Menyebarkan kode aplikasi menggunakan GitHub Actions
- Memperbarui dan menyebarkan ulang aplikasi
- Menjalankan migrasi database secara aman
- Mengalirkan log diagnostik dari Azure
- Mengelola aplikasi di portal Microsoft Azure