İngilizce dilinde oku

Aracılığıyla paylaş


Öğretici: Azure Uygulaması Hizmetinde PHP ve MySQL için Azure Veritabanı - Esnek Sunucu uygulaması dağıtma

Azure Uygulaması Hizmeti, Linux işletim sistemini kullanarak yüksek oranda ölçeklenebilir, kendi kendine düzeltme eki uygulamalı bir web barındırma hizmeti sağlar.

Bu öğreticide, Azure Uygulaması Hizmetine örnek bir PHP uygulaması derleme ve dağıtma ve arka uçta MySQL için Azure Veritabanı Esnek Sunucu ile tümleştirme gösterilmektedir. Burada App Service uygulamasına bağlanmak için MySQL için Azure Veritabanı Esnek Sunucu örneğinde genel erişim bağlantısını (izin verilen IP adresleri) kullanacaksınız.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • MySQL için Azure Veritabanı esnek sunucu örneği oluşturma
  • PHP uygulamasını MySQL için Azure Veritabanı esnek sunucu örneğine bağlama
  • Uygulamayı Azure Uygulaması Hizmetine dağıtma
  • Uygulamayı güncelleştirme ve yeniden dağıtma

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Şu anda ücretsiz Azure hesabıyla 12 ay boyunca MySQL için Azure Veritabanı - Esnek Sunucu ücretsiz sürümünü deneyebilirsiniz. Daha fazla bilgi için bkz. Ücretsiz Azure hesabı kullanarak MySQL için Azure Veritabanı - Esnek Sunucuyu ücretsiz deneme.

Önkoşullar

MySQL için Azure Veritabanı Oluşturma - Esnek Sunucu

İlk olarak, genel erişim bağlantısına sahip MySQL için Azure Veritabanı esnek bir sunucu örneği sağlayın, uygulamanın sunucuya erişmesine izin vermek için güvenlik duvarı kurallarını yapılandırın ve bir üretim veritabanı oluşturun.

Bunun yerine özel erişim bağlantısını kullanmayı ve sanal ağdaki uygulama ve veritabanı kaynaklarını yalıtmayı öğrenmek için bkz. Öğretici: App Services Web uygulamasını MySQL için Azure Veritabanı - Sanal ağdaki Esnek Sunucu'ya bağlama.

Kaynak grubu oluşturma

Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir gruptur. Şimdi centralus konumundaki az group create komutunu kullanarak rg-php-demo adlı bir kaynak grubu oluşturalım.

  1. Komut istemini açın.

  2. Azure hesabınızda oturum açın.

    az login
    
  3. Azure aboneliğinizi seçin.

    az account set -s <your-subscription-ID>
    
  4. Kaynak grubunu oluşturun.

    az group create --name rg-php-demo --location centralus
    

MySQL için Azure Veritabanı Esnek Sunucu örneği oluşturma

  1. Genel erişim bağlantısına sahip bir MySQL için Azure Veritabanı Esnek Sunucu örneği oluşturmak için aşağıdaki az flexible-server create komutunu çalıştırın. Sunucu adı, yönetici kullanıcı adı ve parola değerlerini değiştirin.

    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>
    

    Şimdi CentralUS bölgesinde MySQL için Azure Veritabanı esnek bir sunucu örneği oluşturdunuz. Sunucu, 32 GB depolama alanı, 7 günlük yedekleme saklama süresi ve genel erişim bağlantısıyla yapılandırılan Seri Hale Dönüştürülebilir B1MS işlem SKU'sunu temel alır.

  2. Ardından, istemci bağlantılarına izin vermek üzere MySQL için Azure Veritabanı Esnek Sunucu örneğine yönelik bir güvenlik duvarı kuralı oluşturmak için aşağıdaki komutu çalıştırın. Hem başlangıç IP'si hem de bitiş IP'si 0.0.0.0 olarak ayarlandığında, yalnızca diğer Azure kaynakları (App Services uygulamaları, VM'ler, AKS kümesi vb.) MySQL için Azure Veritabanı Esnek Sunucu örneğine bağlanabilir.

    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. PHP uygulamasıyla kullanılacak yeni bir MySQL için Azure Veritabanı Esnek Sunucu üretim veritabanı sampledb oluşturmak için aşağıdaki komutu çalıştırın:

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

Uygulamanızı derleme

Bu öğreticinin amaçları doğrultusunda, bir ürün kataloğunu görüntüleyen ve yöneten örnek bir PHP uygulaması kullanacağız. Uygulama, katalogdaki ürünleri görüntüleme, yeni ürün ekleme, mevcut ürün fiyatlarını güncelleştirme ve ürünleri kaldırma gibi temel işlevler sağlar.

Uygulama kodu hakkında daha fazla bilgi edinmek için gitHub deposunda uygulamayı keşfedin. Bir PHP uygulamasını MySQL için Azure Veritabanı esnek sunucuya bağlamayı öğrenmek için bkz. MySQL için Azure Veritabanı - Esnek Sunucu ile PHP kullanma.

Bu öğreticide, kodlanmış örnek uygulamayı doğrudan kopyalayıp Azure Uygulaması Hizmeti'nde dağıtmayı öğreneceğiz.

  1. Örnek uygulama deposunu kopyalamak ve depo köküne geçmek için aşağıdaki komutları çalıştırın:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Varsayılan dalın olduğundan mainemin olmak için aşağıdaki komutu çalıştırın.

    git branch -m main
    

Azure Uygulaması Hizmeti Web Uygulaması oluşturma ve yapılandırma

Azure Uygulaması Hizmeti'nde (Web Apps, API Apps veya Mobile Apps) bir uygulama her zaman bir App Service planında çalışır. App Service planı, bir web uygulamasının birlikte çalıştırılacağı işlem kaynakları kümesini tanımlar. Bu adımda, örnek uygulamayı barındıracak bir Azure Uygulaması Service planı ve içinde bir App Service web uygulaması oluşturacağız.

  1. Ücretsiz fiyatlandırma katmanında bir App Service planı oluşturmak için aşağıdaki komutu çalıştırın:

    az appservice plan create --name plan-php-demo \
    --resource-group rg-php-demo \
    --location centralus \
    --sku FREE --is-linux
    
  2. FTP veya Yerel Git gibi dağıtım yöntemlerini kullanarak azure web uygulamasına bir uygulama dağıtmak istiyorsanız, kullanıcı adı ve parola kimlik bilgileriyle bir dağıtım kullanıcısı yapılandırmanız gerekir. Dağıtım kullanıcınızı yapılandırdıktan sonra, tüm Azure Uygulaması Hizmeti dağıtımlarınız için bundan yararlanabilirsiniz.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. PHP 8.0 çalışma zamanı ile app Service web uygulaması oluşturmak ve uygulamanızı yerel bilgisayarınızdaki bir Git deposundan dağıtmak üzere Yerel Git dağıtım seçeneğini yapılandırmak için aşağıdaki komutu çalıştırın. değerini genel olarak benzersiz bir uygulama adıyla değiştirin <your-app-name> (geçerli karakterler a-z, 0-9 ve -'dır).

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

    Önemli

    Azure CLI çıkışında Git uzak öğesinin URL'si deploymentLocalGitUrl özelliğinde biçiminde https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.gitgörüntülenir. Daha sonra gerek duyacağınız için bu URL'yi kaydedin.

  4. Daha sonra, Web Uygulaması'nda MySQL için Azure Veritabanı Esnek Sunucu veritabanı bağlantı ayarlarını yapılandıracağız.

    config.php Örnek PHP uygulamasındaki dosya, işlevini kullanarak getenv() ortam değişkenlerinden veritabanı bağlantı bilgilerini (sunucu adı, veritabanı adı, sunucu kullanıcı adı ve parola) alır. App Service'te ortam değişkenlerini Uygulama Ayarları (appsettings) olarak ayarlamak için aşağıdaki komutu çalıştırın:

    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"
    

    Alternatif olarak, App Service uygulaması ile MySQL için Azure Veritabanı esnek sunucu örneği arasında bağlantı kurmak için Hizmet Bağlayıcısı'nı kullanabilirsiniz. Daha fazla ayrıntı için bkz. MySQL için Azure Veritabanı esnek sunucuyu Hizmet Bağlayıcısı ile tümleştirme.

Uygulamanızı Yerel Git kullanarak dağıtma

Şimdi, Yerel Git dağıtım seçeneğini kullanarak örnek PHP uygulamasını Azure Uygulaması Hizmeti'ne dağıtacağız.

  1. Ana dalı dağıttığınızdan App Service uygulamanız için varsayılan dağıtım dalını main olarak ayarlamanız gerekir. Uygulama Ayarları altında DEPLOYMENT_BRANCH ayarlamak için aşağıdaki komutu çalıştırın:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Uygulama deposunun kök dizininde olduğunuzu doğrulayın.

  3. Yerel Git deponuza bir Azure uzak sunucusu eklemek için aşağıdaki komutu çalıştırın. değerini App Service web uygulaması oluşturma adımında kaydettiğiniz Git uzak öğesinin URL'si ile değiştirin<deploymentLocalGitUrl>.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Azure uzaktan kumandasına bir git push gerçekleştirerek uygulamanızı dağıtmak için aşağıdaki komutu çalıştırın. Git Kimlik Bilgileri Yöneticisi sizden kimlik bilgilerini istendiğinde, Dağıtım kullanıcısını yapılandırma adımında oluşturduğunuz dağıtım kimlik bilgilerini girin.

    git push azure main
    

Dağıtımın başarılı olması birkaç dakika sürebilir.

Uygulamanızı test edin

Son olarak, öğesine göz atarak uygulamayı test edin https://<app-name>.azurewebsites.netve ardından ürün kataloğuna öğe ekleyin, görüntüleyin, güncelleştirin veya silin.

Örnek Ürün Kataloğu PHP Web Uygulamasını gösteren ekran görüntüsü.

Tebrikler! Hizmeti Azure Uygulaması için örnek bir PHP uygulamasını başarıyla dağıttınız ve arka uçta MySQL için Azure Veritabanı Esnek Sunucu ile tümleştirdiniz.

Uygulamayı güncelleştirme ve yeniden dağıtma

Azure uygulamasını güncelleştirmek için gerekli kod değişikliklerini yapın, tüm değişiklikleri Git'te işleyin ve ardından kod değişikliklerini Azure'a gönderebilirsiniz.

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

git push tamamlandıktan sonra, yeni işlevselliği test etmek için Azure uygulamasına gidin veya uygulamayı yenileyin.

Kaynakları temizleme

Bu öğreticide, tüm Azure kaynaklarını bir kaynak grubunda oluşturdunuz. Bu kaynakların gelecekte gerekli olacağını düşünmüyorsanız, Cloud Shell’de aşağıdaki komutu çalıştırarak kaynak grubunu silin:

az group delete --name rg-php-demo