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

Uyarı

Windows'ta PHP, Kasım 2022'de destek sonuna ulaştı. PHP yalnızca Linux üzerinde App Service için desteklenir. Bu makale yalnızca başvuru amaçlıdır.

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, bir PHP uygulamasının Windows'ta Azure App Service'e nasıl dağıtılacağı gösterilmektedir.

Cloud Shell'de Azure CLI'yi kullanarak web uygulamasını oluşturursunuz ve web uygulamasına örnek PHP kodu dağıtmak için Git'i kullanırsınız.

Azure'da çalışan örnek uygulama

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

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

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

Örneği yerel olarak indirin

  1. Bir terminal penceresinde aşağıdaki komutları çalıştırın. Örnek uygulamayı yerel makinenize kopyalar ve örnek kodu içeren dizine gider.

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

    git branch -m main
    

    Tavsiye

    Branch adı değişikliği App Service tarafından gerekli değildir. Ancak, birçok depo varsayılan şubelerini main olarak değiştirdiğinden, bu hızlı başlangıç kılavuzu size main'den bir deponun nasıl dağıtılacağını da gösteriyor.

Uygulamayı yerel olarak çalıştırma

  1. Uygulamayı yerel olarak çalıştırın, böylece Azure'a dağıttığınızda nasıl görünmesi gerektiğini görebilirsiniz. Bir terminal penceresi açın ve yerleşik PHP web sunucusunu php başlatmak için komutu kullanın.

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

    Sayfada görüntülenen örnek uygulamadan Merhaba Dünya! iletisini görürsünüz.

    Yerel olarak çalışan örnek uygulama

  3. Terminal pencerenizde, web sunucusundan çıkmak için Ctrl+C tuşlarına basın.

Azure Cloud Shell

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

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

Seçenek Örnek/Bağlantı
Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. Azure Cloud Shell için Deneyin örneğini gösteren ekran görüntüsü.
https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. Azure Cloud Shell'i başlatmak için Düğmesi.
Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. Azure portalında Cloud Shell düğmesini gösteren ekran görüntüsü

Azure Cloud Shell'i kullanmak için:

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

  2. Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.

  3. Kodu veya komutu Cloud Shell oturumuna yapıştırmak için Windows ve Linux'ta Ctrl+Shift+V seçeneğini veya macOS'ta Cmd+Shift+V seçeneğini kullanın.

  4. Kodu veya komutu çalıştırmak için Enter'ı seçin.

Dağıtım kullanıcısını yapılandırın

FTP ve yerel Git, Azure web uygulamasına dağıtım kullanıcısını kullanarak dağıtım yapabilir. Dağıtım kullanıcınızı yapılandırdıktan sonra, bunu 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ıdır.

Dağıtım kullanıcısını yapılandırmak için Azure Cloud Shell'de az webapp deployment user set komutunu çalıştırın. <Kullanıcı adını> ve <parolayı> dağıtım kullanıcı adı ve parolasıyla değiştirin.

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

JSON çıktısı parolayı şu şekilde nullgösterir: . 'Conflict'. Details: 409 hatası alırsanız kullanıcı adını değiştirin. Bir 'Bad Request'. Details: 400 hatası alırsanız, daha güçlü bir şifre kullanın.

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

Bir kaynak grubu oluşturun

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

Cloud Shell içinde az group create komutuyla bir kaynak grubu oluşturun. 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.

Azure App Service planı oluşturma

Cloud Shell’de, az appservice plan create komutuyla bir App Service planı oluşturun.

Aşağıdaki örnekte, Free fiyatlandırma katmanında 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ştur

  1. Cloud Shell'de myAppServicePlan App Service planında, az webapp create komutunu kullanarak bir web uygulaması 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ı olarak PHP|7.4ayarlanır. Desteklenen tüm çalışma zamanlarını görmek için komutunu çalıştırın az webapp list-runtimes.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --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 <URL>
     {
       "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şturdunuz.

    Uyarı

    Git uzak deposunun URL'si deploymentLocalGitUrl özelliğinde gösterilir. Bu URL’ye daha sonra ihtiyacınız olacağı için URL’yi kaydedin.

  2. Yeni oluşturduğunuz web uygulamanıza göz atın.

    Yeni web uygulamanızın nasıl görünmesi gerektiği aşağıda açıklanmıştır:

    Boş web uygulaması sayfası

Git üzerinden Azure'a gönderme

  1. tr-TR: main dalını dağıttığınızdan, App Service uygulamanız için varsayılan dağıtım dalını main olarak ayarlamanız gerekir. (Bkz. Dağıtım dalını değiştirme.) Cloud Shell'de DEPLOYMENT_BRANCH komutunu kullanarak az webapp config appsettings set uygulama ayarını belirleyin.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Yerel terminal penceresine geri dönün ve Azure uzaktaki bağlantıyı yerel Git deposuna ekleyin. <deploymentLocalGitUrl-from-create-step> değerini, Create a web app adımından kaydettiğiniz Git uzak URL’siyle değiştirin.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Aşağıdaki komutla uygulamanızı dağıtmak için Azure uzak deposuna push edin. Git Kimlik Bilgileri Yöneticisi sizden kimlik bilgilerini istediğinde, Azure portalında oturum açmak için kullandığınız kimlik bilgilerini değil, Yerel git dağıtımını yapılandırma bölümünde oluşturduğunuz kimlik bilgilerini girdiğinizden emin olun.

    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 <URL>
      cc39b1e..25f1805  main -> main
  

Uygulamaya göz atın

Web tarayıcınızı kullanarak dağıtılan uygulamaya göz atın.

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

Azure'da çalışan örnek uygulama

Tebrikler! İlk PHP uygulamanızı App Service'e dağıttınız.

Yerel olarak güncelleştirme ve kodu yeniden dağıtma

  1. Yerel bir metin düzenleyici kullanarak, dosyayı PHP uygulamasında açın index.php ve yanındaki echodize içindeki metinde küçük bir değişiklik yapın:

    echo "Hello Azure!";
    
  2. Yerel terminal penceresinde değişikliklerinizi Git'te uygulayın 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 at adımı sırasında açılan tarayıcı penceresine dönün ve sayfayı yenileyin.

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

Yeni Azure uygulamanızı yönetme

  1. Oluşturduğunuz web uygulamasını yönetmek için Azure portalına gidin. App Services'ı arayın ve seçin.

    App Services, Azure portal, PHP web uygulaması oluşturma için arama yapın

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

    Azure uygulamasına portal gezintisi

    Web uygulamanızın Genel Bakış sayfası görüntülenir. Burada Gözat, Durdur, YenidenBaş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 sunar.

Kaynakları temizle

Ö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.

Azure App Service, web barındırma için, yüksek düzeyde ölçeklenebilir ve kendi kendini güncelleyen bir hizmet sağlar. Bu hızlı başlangıçta, bir PHP uygulamasının Linux'ta Azure App Service'e nasıl dağıtılacağı gösterilmektedir.

Azure'da çalışan örnek uygulamanın ekran görüntüsü.

Bir Mac, Windows veya Linux makinesi kullanarak buradaki adımları takip edebilirsiniz. Önkoşullar yüklendikten sonra, adımların tamamlanması yaklaşık on dakika sürer.

Önkoşullar

  • Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
  • Git
  • PHP
  • Azure CLI, Azure kaynaklarını oluşturmak ve yapılandırmak amacıyla, herhangi bir kabukta komutları çalıştırmak için kullanılabilir.

Örnek depoyu indirin

Aşağıdaki adımlarda, Azure CLI kullanarak web uygulamasını oluşturacak ve ardından web uygulamasına örnek PHP kodu dağıtacaksınız.

Azure Cloud Shell'i kullanabilirsiniz.

  1. Bir terminal penceresinde, örnek uygulamayı yerel makinenize kopyalamak ve proje köküne gitmek için aşağıdaki komutları çalıştırın.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Uygulamayı yerel olarak çalıştırmak için, yerleşik PHP web sunucusunu başlatmak için komutu kullanın php .

    php -S localhost:8080
    
  3. Web tarayıcısında http://localhost:8080 konumundaki örnek uygulamayı görüntüleyin.

    Yerel olarak çalışan örnek uygulamanın ekran görüntüsü.

  4. Terminal pencerenizde, web sunucusundan çıkmak için Ctrl+C tuşlarına basın.

Uygulama kodunuzu Azure'a dağıtma

Azure kaynaklarını oluşturun ve uygulamayı ayrı Azure CLI komutlarıyla dağıtın.

Terminalde, <app-name> öğesini küresel olarak benzersiz bir adla değiştirin ve kaynak grubunu, Linux App Service planını ve PHP web uygulamasını oluşturun:

az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PHP:8.2"
  • Komut tanınmıyorsa az yüklü olduğundan emin olun.
  • --runtime "PHP:8.2" argümanı, bir PHP 8.2 web uygulaması oluşturur; --is-linux Linux üzerinde App Service'i seçer.
  • Argüman, --sku P0v3 ücretli Premium v3 planını seçiyor. eastus öğesini tercih ettiğiniz bölgeyle değiştirin. Mevcut bölgeleri listeleyebilirsiniz.az account list-locations

Kökünde, üst kapsayıcı dizin değil, php-docs-hello-world dizinindeki dosyaları içeren bir ZIP arşivi oluşturun. Linux veya macOS'ta, uygulama dizininden çalıştırın zip -r ../app.zip . -x '*/.git/*' '*/.env*' . Windows'ta, uygulama dizininden PowerShell'de Compress-Archive -Path * -DestinationPath ..\app.zip çalıştırın. Ardından dağıtıma alın:

az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip

Dağıtılan uygulamayı görmek için https://<app-name>.azurewebsites.net adresine giderek.

PHP örnek kodu bir Azure App Service'de çalışıyor.

Azure'da çalışan ve Merhaba Dünya'ü gösteren örnek uygulamanın ekran görüntüsü.

Tebrikler! Azure portal kullanarak ilk PHP uygulamanızı App Service'e dağıttınız.

Uygulamayı güncelleyin ve yeniden dağıtın

  1. php-docs-hello-world dizinini bulun ve yerel bir metin düzenleyici kullanarak index.php dosyasını açın. öğesinin echoyanındaki dizenin içindeki metinde küçük bir değişiklik yapın:

    echo "Hello Azure!";
    
  2. Değişikliklerinizi kaydedin, Uygulama kodunuzu Azure'a dağıtın bölümünde açıklandığı gibi uygulama dosyalarından ../app.zip dosyasını yeniden oluşturun ve yeniden dağıtın:

    az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip
    
  3. Dağıtım tamamlandıktan sonra, Uygulamaya göz at adımı sırasında açılan tarayıcı penceresine dönün ve sayfayı yenileyin.

    Azure'da çalışan güncelleştirilmiş örnek uygulamanın ekran görüntüsü.

Yeni Azure uygulamanızı yönetme

  1. Oluşturduğunuz web uygulamasını yönetmek için Azure portalına gidin. App Services'ı arayın ve seçin.

    Arama metin kutusuna yazılan uygulama hizmetleriyle Azure portal ekran görüntüsü.

  2. Açmak için Azure uygulamanızı seçin.

    Azure'daki Uygulama Hizmetleri listesinin ekran görüntüsü. Demo uygulama hizmetinin adı vurgulanır.

    Web uygulamanızın Genel Bakış sayfası görüntülenmelidir. Burada Gözat, Durdur, YenidenBaşlat ve Sil gibi temel yönetim görevlerini gerçekleştirebilirsiniz.

    Azure portal'da App Service genel bakış sayfasının ekran görüntüsü. Eylem çubuğunda, Gözat, Durdur, Takas, Yeniden Başlat ve Sil düğme grubu vurgulanır.

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

Kaynakları temizle

Örnek uygulamayla işiniz bittiğinde, ek ücretlerden kaçınmak ve Azure aboneliğinizi düzenli tutmak için uygulamanın tüm kaynaklarını Azure'dan kaldırabilirsiniz. Kaynak grubunu kaldırmak, kaynak grubundaki tüm kaynakları da kaldırır ve uygulamanız için tüm Azure kaynaklarını kaldırmanın en hızlı yoludur.

az group delete komutunu kullanarak kaynak grubunu silin .

az group delete --name myResourceGroup

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