Azure App Service'de PHP web uygulaması oluşturma

Azure App Service, yüksek oranda ölçeklenebilen, kendi kendine düzeltme eki uygulayan bir web barındırma hizmeti sunar. Bu hızlı başlangıç öğreticisi, bir PHP uygulamasını Azure App Service dağıtmayı Windows.

Azure App Service, yüksek oranda ölçeklenebilen, kendi kendine düzeltme eki uygulayan bir web barındırma hizmeti sunar. Bu hızlı başlangıç öğreticisinde, Linux’ta Azure App Service’e bir PHP uygulamasının nasıl dağıtılacağı gösterilmektedir.

Cloud Shell’de Azure CLI kullanarak web uygulamasını oluşturabilir ve örnek PHP kodunu web uygulamasına dağıtmak için Git kullanabilirsiniz.

Azure'da çalışan örnek uygulama

Mac, Windows veya Linux makinesi kullanarak buradaki adımları izleyebilirsiniz. Önkoşullar yüklendikten sonra adımların tamamlanması yaklaşık olarak beş dakika sürer.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Bu hızlı başlangıcı tamamlamak için:

Örnekleri yerel makineye indirme

  1. Bir terminal penceresinde aşağıdaki komutları çalıştırın. Bu işlem, örnek uygulamanın yerel makinenize kopyalanmasını ve örnek kodu içeren dizine gitmenizi sağlar.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Varsayılan dal'ın olduğundan emin main olun.

    git branch -m main
    

    İpucu

    Dal adı değişikliği, dal adı değişikliği App Service. Ancak, birçok depo varsayılan dallarını olarak değiştirmektedir. Bu hızlı başlangıçta, 'den main bir depoyu dağıtmayı da main bulabilirsiniz.

Uygulamayı yerel olarak çalıştırma

  1. Azure'a dağıttığınızda nasıl görüneceğini görmek için uygulamayı yerel olarak çalıştırın. Yerleşik PHP web sunucusunu başlatmak için bir terminal penceresi açın ve php komutunu kullanın.

    php -S localhost:8080
    
  2. Bir web tarayıcısı açın ve http://localhost:8080 konumundaki örnek uygulamaya gidin.

    Sayfada gösterilen örnek uygulamada Merhaba Dünya! iletisini görürsünüz.

    Yerel olarak çalışan örnek uygulama

  3. Terminal pencerenizde Ctrl+C tuşlarına basarak web sunucusundan çıkın.

Azure Cloud Shell kullanma

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell’i barındırır. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell’in önceden yüklenmiş komutlarını kullanabilirsiniz.

Azure Cloud Shell’i başlatmak için:

Seçenek Örnek/Bağlantı
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin. Deneyin seçeneği belirlendiğinde, kod otomatik olarak Cloud Shell’e kopyalanmaz. Azure Cloud Shell için Deneyin örneği
Cloud Shell’i tarayıcınızda açmak için https://shell.azure.com bölümüne gidin veya Cloud Shell’i Başlat düğmesini seçin. Cloud Shell’i yeni bir pencerede başlatma
Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. Azure portaldaki Cloud Shell düğmesi

Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:

  1. Cloud Shell’i başlatın.

  2. Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.

  3. Windows ve Linux sisteminde Ctrl+Shift+V tuşlarını kullanarak veya macOS’de Cmd+Shift+V tuşlarını kullanarak kodu Cloud Shell oturumuna yapıştırın.

  4. Kodu çalıştırmak için Enter tuşuna basın.

Dağıtım kullanıcısı yapılandırma

FTP ve yerel git, bir dağıtım kullanıcısı kullanarak bir Azure Web uygulamasına dağıtabilir. Dağıtım kullanıcısını yapılandırdıktan sonra tüm Azure dağıtımlarınız için kullanabilirsiniz. Hesap düzeyinde dağıtım Kullanıcı adınız ve parolanız, Azure aboneliği kimlik bilgilerinizden farklı.

Dağıtım kullanıcısını yapılandırmak için, Azure Cloud Shell bölümünde az WebApp Deployment User set komutunu çalıştırın. <username>Ve öğesini <password> bir dağıtım kullanıcısı Kullanıcı adı ve parolasıyla değiştirin.

  • Kullanıcı adı Azure içinde benzersiz olmalıdır ve yerel git gönderimleri için ' @ ' sembolünü içermemelidir.
  • Parola en az sekiz karakter uzunluğunda olmalıdır ve şu üç öğeden ikisi vardır: harfler, rakamlar ve semboller.
az webapp deployment user set --user-name <username> --password <password>

JSON çıktısı parolayı olarak gösterir null . 'Conflict'. Details: 409 hatası alırsanız kullanıcı adını değiştirin. 'Bad Request'. Details: 400 hatası alırsanız daha güçlü bir parola kullanın.

Web uygulamalarınızı dağıtmak için kullanmak üzere Kullanıcı adınızı ve parolanızı kaydedin.

Kaynak grubu oluşturma

Kaynak grubu , Web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.

Cloud Shell, komutuyla bir kaynak grubu oluşturun az group create . Aşağıdaki örnek Batı Avrupa konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Ücretsiz katmanda App Service için desteklenen tüm konumları görüntülemek için az appservice list-locations --sku FREE komutunu çalıştırın.

az group create --name myResourceGroup --location "West Europe"

Genellikle kaynak grubunuzu ve kaynakları kendinize yakın bir bölgede oluşturursunuz.

Komut tamamlandığında, bir JSON çıkışı size kaynak grubu özelliklerini gösterir.

Kaynak grubu oluşturma

Kaynak grubu , Web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.

Cloud Shell, komutuyla bir kaynak grubu oluşturun az group create . Aşağıdaki örnek Batı Avrupa konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Temel katmanda Linux üzerinde App Service için desteklenen tüm konumları görüntülemek için az appservice list-locations --sku B1 --linux-workers-enabled komutunu çalıştırın.

az group create --name myResourceGroup --location "West Europe"

Genellikle kaynak grubunuzu ve kaynakları kendinize yakın bir bölgede oluşturursunuz.

Komut tamamlandığında, bir JSON çıkışı size kaynak grubu özelliklerini gösterir.

Azure App Service planı oluşturma

Komut Cloud Shell ile bir App Service planı az appservice plan create oluşturun.

Aşağıdaki örnekte, Ücretsiz fiyatlandırma katmanı kullanılarak myAppServicePlan adlı bir App Service planı oluşturulmaktadır:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux

App Service planı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir:

{ 
  "freeOfferExpirationTime": null,
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Web uygulaması oluşturma

  1. Aşağıdaki Cloud Shell komutuyla App Service web uygulaması myAppServicePlan az webapp create oluşturun.

    Aşağıdaki örnekte <app-name> kısmını genel olarak benzersiz bir uygulama adıyla değiştirin (geçerli karakterler a-z, 0-9 ve - şeklindedir). Çalışma zamanı PHP|7.4 olarak ayarlanmıştır. Desteklenen tüm çalışma zamanlarını görmek için az webapp list-runtimes çalıştırın.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|7.4' --deployment-local-git
    

    Web uygulaması oluşturulduğunda Azure CLI aşağıda yer alan çıktıdaki gibi bilgiler gösterir:

     Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
     {
       "availabilityState": "Normal",
       "clientAffinityEnabled": true,
       "clientCertEnabled": false,
       "cloningInfo": null,
       "containerSize": 0,
       "dailyMemoryTimeQuota": 0,
       "defaultHostName": "<app-name>.azurewebsites.net",
       "enabled": true,
       < JSON data removed for brevity. >
     }
     

    Git dağıtımı etkinleştirilmiş boş bir yeni web uygulaması oluşturdunız.

    Not

    Git uzak URL’si deploymentLocalGitUrl özelliği içinde https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git biçiminde gösterilir. Bu URL’ye daha sonra ihtiyacınız olacağı için URL’yi kaydedin.

  2. Yeni oluşturduğunuz web uygulamasına göz atın. < uygulama-adı> önceki adımda oluşturduğunuz benzersiz uygulama adınızla değiştirin.

    http://<app-name>.azurewebsites.net
    

    Yeni web uygulamanız aşağıdaki gibi görünmelidir:

    Boş web uygulaması sayfası

Git üzerinden Azure'a gönderme

  1. Dalı dağıtıyorsanız, App Service uygulamanızın varsayılan dağıtım dalını olarak main main ayarlamalısınız (bkz. Dağıtım dalını değiştirme). Komut Cloud Shell uygulama DEPLOYMENT_BRANCH ayarını komutuyla az webapp config appsettings set ayarlayın.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Yerel terminal penceresine dönüp yerel Git deponuza bir Azure uzak deposu ekleyin. yerine <deploymentLocalGitUrl-from-create-step> Web uygulaması oluşturma sayfasından kaydedilen Git uzak url'sini yazın.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Aşağıdaki komutla uygulamanızı dağıtmak için Azure uzak deposuna gönderin. Git Kimlik Bilgileri Yöneticisi sizden kimlik bilgileri istendiğinde, dağıtım kullanıcısını yapılandırma'da oluşturduğunuz kimlik bilgilerini, kullanıcı arabiriminde oturum a açma için değil , kimlik bilgilerini Azure portal.

    git push azure main
    

    Bu komutun çalıştırılması birkaç dakika sürebilir. Çalıştırıldığında, aşağıdaki örneğe benzer bilgiler görüntüler:

  Counting objects: 2, done.
  Delta compression using up to 4 threads.
  Compressing objects: 100% (2/2), done.
  Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done.
  Total 2 (delta 1), reused 0 (delta 0)
  remote: Updating branch 'main'.
  remote: Updating submodules.
  remote: Preparing deployment for commit id '25f18051e9'.
  remote: Generating deployment script.
  remote: Running deployment command...
  remote: Handling Basic Web Site deployment.
  remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot'
  remote: Copying file: '.gitignore'
  remote: Copying file: 'LICENSE'
  remote: Copying file: 'README.md'
  remote: Copying file: 'index.php'
  remote: Ignoring: .git
  remote: Finished successfully.
  remote: Running post deployment command(s)...
  remote: Deployment successful.
  To https://<app-name>.scm.azurewebsites.net/<app-name>.git
      cc39b1e..25f1805  main -> main
  

Uygulamaya göz atma

Web tarayıcınızı kullanarak, dağıtılan uygulamanın konumuna gidin.

http://<app-name>.azurewebsites.net

PHP örnek kodu bir Azure App Service web uygulamasında çalışıyor.

Azure'da çalışan örnek uygulama

Tebrikler! App Service’e ilk PHP uygulamanızı dağıttınız.

Kodu yerel makinede güncelleştirme ve yeniden dağıtma

  1. Bir yerel metin düzenleyicisi kullanarak index.php dosyasını PHP uygulaması içinde açın ve echo öğesinin yanındaki dizenin içinde bulunan metinde küçük bir değişiklik yapın:

    echo "Hello Azure!";
    
  2. Yerel terminal penceresinde, değişikliklerinizi Git’e işleyin ve ardından kod değişikliklerini Azure’a gönderin.

    git commit -am "updated output"
    git push azure main
    
  3. Dağıtım tamamlandıktan sonra Uygulamaya göz atma adımında açılan tarayıcı penceresine dönüp sayfayı yenileyin.

    Azure'da çalışan güncelleştirilmiş örnek uygulama

Yeni Azure uygulamalarınızı yönetme

  1. Oluşturduğunuz web uygulamasını yönetmek için Azure portalına gidin. Uygulama Hizmetleri için arama ve seçme.

    Uygulama Hizmetleri için arama Azure portal PHP web uygulaması oluşturma

  2. Azure uygulamanın adını seçin.

    Azure uygulamasına portal gezintisi

    Web uygulamanıza genel bakış sayfası görüntülenir. Burada Gözat, Durdur, Yeniden Başlat ve Sil gibi temel yönetim görevlerini gerçekleştirebilirsiniz.

    Azure portalında App Service sayfası

    Web uygulaması menüsü, uygulamanızı yapılandırmak için farklı seçenekler sağlar.

Kaynakları temizleme

Önceki adımlarda, bir kaynak grubunda Azure kaynakları 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 myResourceGroup

Bu komutun çalıştırılması bir dakika sürebilir.

Sonraki adımlar