Bagikan melalui


Tutorial: Menyebarkan PHP 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 membangun dan menyebarkan contoh aplikasi PHP ke Azure App Service, dan mengintegrasikannya dengan server fleksibel Azure Database for MySQL di ujung belakang. Di sini Anda akan menggunakan konektivitas akses publik (alamat IP yang diizinkan) di instans server fleksibel Azure Database for MySQL untuk menyambungkan ke aplikasi App Service.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat instans server fleksibel Azure Database for MySQL
  • Menyambungkan aplikasi PHP ke instans server fleksibel Azure Database for MySQL
  • Menyebarkan aplikasi ke Azure App Service
  • Memperbarui dan menyebarkan ulang aplikasi

Jika Anda tidak 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.

Prasyarat

Membuat Server Fleksibel Azure Database for MySQL

Pertama, kita akan menyediakan instans server fleksibel Azure Database for MySQL dengan konektivitas akses publik, mengonfigurasi aturan firewall untuk memungkinkan aplikasi mengakses server, dan membuat database produksi.

Untuk mempelajari cara menggunakan konektivitas akses privat sebagai gantinya dan mengisolasi sumber daya aplikasi dan database di jaringan virtual, lihat Tutorial: Menyambungkan aplikasi Web App Services ke instans server fleksibel Azure Database for MySQL di jaringan virtual.

Buat grup sumber daya

Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola. Mari membuat grup sumber daya rg-php-demo menggunakan perintah az group create di lokasi centralus.

  1. Buka perintah.
  2. Masuk menggunakan akun Azure Anda.
    az login
    
  3. Pilih langganan Azure Anda.
    az account set -s <your-subscription-ID>
    
  4. Membuat grup sumber daya.
    az group create --name rg-php-demo --location centralus
    

Membuat instans server fleksibel Azure Database for MySQL

  1. Untuk membuat instans server fleksibel Azure Database for MySQL dengan konektivitas akses publik, jalankan perintah az flexible-server create berikut. Ganti nilai Anda untuk nama server, nama pengguna admin, dan kata sandi.

    az mysql flexible-server create \
    --name <your-mysql-server-name> \
    --resource-group rg-php-demo \
    --location centralus \
    --admin-user <your-mysql-admin-username> \
    --admin-password <your-mysql-admin-password>
    

    Sekarang Anda telah membuat instans server fleksibel Azure Database for MySQL di wilayah CentralUS. Server didasarkan pada SKU komputasi Burstable B1MS, dengan penyimpanan 32 GB, periode retensi cadangan 7 hari, dan dikonfigurasi dengan konektivitas akses publik.

  2. Selanjutnya, untuk membuat aturan firewall untuk instans server fleksibel Azure Database for MySQL Anda untuk mengizinkan koneksi klien, jalankan perintah berikut. Saat IP awal dan IP akhir diatur ke 0.0.0.0, hanya sumber daya Azure lainnya (seperti aplikasi App Services, VM, kluster AKS, dll.) yang dapat terhubung ke instans server fleksibel Azure Database for MySQL.

    az mysql flexible-server firewall-rule create \
     --name <your-mysql-server-name> \
     --resource-group rg-php-demo \
     --rule-name AllowAzureIPs \
     --start-ip-address 0.0.0.0 \
     --end-ip-address 0.0.0.0
    
  3. Untuk membuat sampledb database produksi server fleksibel Azure Database for MySQL baru untuk digunakan dengan aplikasi PHP, jalankan perintah berikut:

    az mysql flexible-server db create \
    --resource-group rg-php-demo \
    --server-name <your-mysql-server-name> \
    --database-name sampledb
    

Bangun aplikasi Anda

Untuk tujuan latihan ini, kita akan menggunakan contoh aplikasi PHP yang menampilkan dan mengelola katalog produk. Aplikasi ini menyediakan fungsionalitas dasar seperti melihat produk di katalog, menambahkan produk baru, memperbarui harga barang yang ada, dan menghapus produk.

Untuk mempelajari selengkapnya tentang kode aplikasi, lanjutkan dan jelajahi aplikasi di Repositori GitHub. Untuk mempelajari cara menyambungkan aplikasi PHP ke server fleksibel Azure Database for MySQL, lihat Mulai Cepat: Menyambungkan menggunakan PHP.

Dalam tutorial ini, kita akan langsung mengkloning aplikasi sampel berkode dan mempelajari cara menyebarkannya di Azure App Service.

  1. Untuk mengkloning repositori aplikasi sampel dan mengubah ke root repositori, jalankan perintah berikut:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Jalankan perintah berikut untuk memastikan bahwa cabang defaultnya adalah main.

    git branch -m main
    

Membuat dan mengonfigurasi Aplikasi Web Azure App Service

Di Azure App Service (Aplikasi Web, API Apps, atau Mobile Apps), aplikasi selalu berjalan dalam paket App Service. Paket App Service menentukan satu set sumber daya komputasi untuk dijalankan aplikasi web. Pada langkah ini, kami akan membuat paket Azure App Service dan aplikasi web App Service di dalamnya, yang akan menghosting aplikasi sampel.

  1. Untuk membuat paket App Service di tingkat harga Gratis, jalankan perintah berikut:

    az appservice plan create --name plan-php-demo \
    --resource-group rg-php-demo \
    --location centralus \
    --sku FREE --is-linux
    
  2. Jika Anda ingin menyebarkan aplikasi ke aplikasi web Azure menggunakan metode penyebaran seperti FTP atau Git Lokal, Anda perlu mengonfigurasi pengguna penyebaran dengan informasi masuk nama pengguna dan kata sandi. Setelah mengonfigurasi pengguna penyebaran, Anda dapat memanfaatkannya untuk semua penyebaran Azure App Service.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Untuk membuat aplikasi web App Service dengan waktu proses PHP 8.0 dan untuk mengonfigurasi opsi penyebaran Git Lokal untuk menyebarkan aplikasi Anda dari repositori Git di komputer lokal Anda, jalankan perintah berikut. Ganti <your-app-name> dengan nama aplikasi unik secara global (karakter yang valid adalah a-z, 0-9, and -).

    az webapp create \
    --resource-group rg-php-demo \
    --plan plan-php-demo \
    --name <your-app-name> \
    --runtime "PHP|8.0" \
    --deployment-local-git
    

    Penting

    Dalam output Azure CLI, URL remote Git ditampilkan di properti deploymentLocalGitUrl, dengan format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Simpan URL ini, karena Anda akan membutuhkannya nanti.

  4. Selanjutnya kita akan mengonfigurasi pengaturan koneksi database server fleksibel Azure Database for MySQL di Aplikasi Web.

    File config.php dalam contoh aplikasi PHP mengambil informasi koneksi database (nama server, nama database, nama pengguna dan kata sandi server) dari variabel lingkungan menggunakan fungsi getenv(). Di App Service, untuk mengatur variabel lingkungan sebagai Pengaturan Aplikasi (appsettings), jalankan perintah berikut:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DB_HOST="<your-server-name>.mysql.database.azure.com" \
    DB_DATABASE="sampledb" \
    DB_USERNAME="<your-mysql-admin-username>" \
    DB_PASSWORD="<your-mysql-admin-password>" \
    MYSQL_SSL="true"
    

    Atau, Anda dapat menggunakan Konektor Layanan untuk membuat koneksi antara aplikasi App Service dan instans server fleksibel Azure Database for MySQL. Untuk detail selengkapnya, lihat Mengintegrasikan server fleksibel Azure Database for MySQL dengan Konektor Layanan.

Menyebarkan aplikasi Anda menggunakan Git Lokal

Sekarang, kami akan menyebarkan sampel aplikasi PHP ke Azure App Service menggunakan opsi penyebaran Git Lokal.

  1. Karena Anda menyebarkan cabang utama, Anda perlu mengatur cabang penyebaran default untuk aplikasi App Service Anda ke main. Untuk mengatur DEPLOYMENT_BRANCH di bagian Pengaturan Aplikasi, jalankan perintah berikut:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Verifikasi bahwa Anda berada di direktori root repositori aplikasi.

  3. Untuk menambahkan remote Azure ke repositori Git lokal Anda, jalankan perintah berikut. Ganti <deploymentLocalGitUrl> dengan URL pengendali Git yang Anda simpan di langkah Buat aplikasi web App Service.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Untuk menyebarkan aplikasi Anda dengan melakukan git push ke remote Azure, jalankan perintah berikut. Saat Git Credential Manager meminta informasi masuk Anda, masukkan informasi masuk penyebaran yang Anda buat di langkah Mengonfigurasi pengguna penyebaran.

    git push azure main
    

Perlu beberapa menit untuk menyelesaikan penyebaran.

Menguji aplikasi Anda

Terakhir, uji aplikasi dengan menelusuri ke https://<app-name>.azurewebsites.net, lalu tambahkan, lihat, perbarui, atau hapus item dari katalog produk.

Cuplikan layar memperlihatkan contoh Aplikasi Web PHP Katalog Produk.

Selamat! Anda telah berhasil menyebarkan contoh aplikasi PHP ke Azure App Service dan mengintegrasikannya dengan server fleksibel Azure Database for MySQL di ujung belakang.

Memperbarui dan menyebarkan ulang aplikasi

Untuk memperbarui aplikasi Azure, buat perubahan kode yang diperlukan, terapkan semua perubahan di Git, lalu dorong perubahan kode ke Azure.

git add .
git commit -m "Update Azure app"
git push azure main

Setelah git push selesai, buka aplikasi Azure dan uji fungsionalitas yang baru.

Membersihkan sumber daya

Dalam tutorial ini, Anda membuat semua sumber daya Azure dalam grup sumber daya. Jika Anda tidak membutuhkan sumber daya ini di masa mendatang, hapus grup sumber daya dengan menjalankan perintah berikut ini di Cloud Shell:

az group delete --name rg-php-demo

Langkah berikutnya