Öğ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.
- Git’i yükleyin.
- Azure Komut Satırı Arabirimi (CLI).
- Azure aboneliği 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.
İ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.
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.
Komut istemini açın.
Azure hesabınızda oturum açın.
az login
Azure aboneliğinizi seçin.
az account set -s <your-subscription-ID>
Kaynak grubunu oluşturun.
az group create --name rg-php-demo --location centralus
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.
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
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
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.
Ö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
Varsayılan dalın olduğundan
main
emin olmak için aşağıdaki komutu çalıştırın.git branch -m main
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.
Ü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
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>
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>.git
görüntülenir. Daha sonra gerek duyacağınız için bu URL'yi kaydedin.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 kullanarakgetenv()
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.
Şimdi, Yerel Git dağıtım seçeneğini kullanarak örnek PHP uygulamasını Azure Uygulaması Hizmeti'ne dağıtacağız.
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'
Uygulama deposunun kök dizininde olduğunuzu doğrulayın.
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>
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.
Son olarak, öğesine göz atarak uygulamayı test edin https://<app-name>.azurewebsites.net
ve ardından ürün kataloğuna öğe ekleyin, görüntüleyin, güncelleştirin veya silin.
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.
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.
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