PHP uygulamaları oluşturma ve test etme
Azure DevOps Services
PHP projelerinizi derlemek, dağıtmak ve test etmek için Azure Pipelines sürekli tümleştirme ve sürekli teslim (CI/CD) kullanın.
PHP işlem hattı oluşturmayı, Azure Uygulaması Hizmeti'ne örnek bir projeyle işlem hattı dağıtmayı ve ortamınızı yapılandırmayı öğrenin.
Azure Uygulaması Hizmeti hakkında daha fazla bilgi edinmek için bkz. Azure Uygulaması Hizmetinde PHP web uygulaması oluşturma.
Önkoşullar
Aşağıdaki öğelere sahip olduğunuzdan emin olun:
Depo oluşturabileceğiniz bir GitHub hesabı. Ücretsiz bir tane oluşturun.
Bir Azure DevOps kuruluşu. Ücretsiz bir tane oluşturun. Ekibinizde zaten varsa kullanmak istediğiniz Azure DevOps projesinin yöneticisi olduğunuzdan emin olun.
Microsoft tarafından barındırılan aracılarda işlem hatlarını çalıştırma olanağı. Microsoft tarafından barındırılan aracıları kullanmak için Azure DevOps kuruluşunuzun Microsoft tarafından barındırılan paralel işlere erişimi olmalıdır. Paralel bir iş satın alabilir veya ücretsiz izin isteyebilirsiniz.
Azure hesabı. Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
İpucu
Bu konuda yeniyseniz, kullanmaya başlamanın en kolay yolu hem Azure Pipelines kuruluşunun hem de Azure aboneliğinin sahibiyle aynı e-posta adresini kullanmaktır.
- Azure Uygulaması Hizmeti'ne dağıtım yapacaksanız bir web uygulaması oluşturmanız gerekir.
Kodu alma
GitHub'da dağıtmak istediğiniz bir uygulamanız zaten varsa bu kod için bir işlem hattı oluşturabilirsiniz. Ancak yeni bir kullanıcıysanız örnek kodumuzu kullanarak daha iyi bir başlangıç elde edebilirsiniz. Bu durumda GitHub'da aşağıdaki deponun çatalını oluşturun:
https://github.com/Azure-Samples/basic-php-composer
İşlem hattı oluşturma
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'na gidin ve Yeni işlem hattı'na tıklayın.
Kaynak konumunuzu (GitHub, Azure Repos Git, Bitbucket Cloud veya diğer Git depoları) seçin.
Kodunuzun bulunduğu depoyu seçin.
Yapılandır sekmesinde PHP'yi seçin.
PHP sürümünün 8.3 olduğundan emin olun.
Yeni işlem hattınızı inceleyin. Hazır olduğunuzda Kaydet ve çalıştır'ı seçin.
Deponuza yeni bir azure-pipelines.yml dosyası işlemeniz istenir. Kaydet'i seçin ve yeniden çalıştırın .
İşlem hattınızın nasıl çalıştığını izlemek istiyorsanız derleme işini seçin.
Artık deponuzda özelleştirmeniz için hazır çalışan bir YAML işlem hattı (azure-pipelines.yml) var!
İşlem hattınızda değişiklik yapmak istediğinizde İşlem Hatları sayfasında işlem hattınızı seçin ve ardından azure-pipelines.yml dosyasını düzenleyin.
İşlem hattınızı özelleştirmenin en yaygın yollarından bazılarını öğrenmek için daha fazla bilgi edinin.
App Service’e dağıtma
PHP web uygulaması oluşturmak ve Azure Uygulaması Hizmeti'ne dağıtmak için işlem hattı kullanın. Azure Uygulaması Hizmeti web uygulamalarını, REST API'leri ve mobil arka uçları barındırmaya yönelik HTTP tabanlı bir hizmettir.
Görevleri kullanarak dosyalarınızı arşivleyebilir, derleme yapıtı yayımlayabilir ve ardından Azure Web App görevini kullanarak Azure Uygulaması Hizmeti'ne dağıtabilirsiniz.
Bu işlem hattının iki aşaması vardır: Derleme ve Dağıtma. Derleme aşamasında PHP 8.3 oluşturucu ile birlikte yüklenir. Uygulama dosyaları arşivlenir ve adlı drop
bir pakete yüklenir. Dağıtım aşamasında paket, drop
web uygulaması olarak Azure Uygulaması Hizmetine dağıtılır.
trigger:
- main
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'subscription-id'
# Web app name
webAppName: 'web-app-name'
# Agent VM image name
vmImageName: 'ubuntu-latest'
# Environment name
environmentName: 'environment-name'
# Root folder under which your composer.json file is available.
rootFolder: $(System.DefaultWorkingDirectory)
stages:
- stage: Build
displayName: Build stage
variables:
phpVersion: '8.3'
jobs:
- job: BuildJob
pool:
vmImage: $(vmImageName)
steps:
- script: |
sudo update-alternatives --set php /usr/bin/php$(phpVersion)
sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)
php -version
workingDirectory: $(rootFolder)
displayName: 'Use PHP version $(phpVersion)'
- script: composer install --no-interaction --prefer-dist
workingDirectory: $(rootFolder)
displayName: 'Composer install'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(rootFolder)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
displayName: 'Upload package'
artifact: drop
- stage: Deploy
displayName: 'Deploy Web App'
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeploymentJob
pool:
vmImage: $(vmImageName)
environment: $(environmentName)
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Deploy Azure Web App'
inputs:
azureSubscription: $(azureSubscription)
appName: $(webAppName)
package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
Derleme ortamını yapılandırma
Altyapıyı ayarlamadan PHP projelerinizi oluşturmak için Azure Pipelines'ı kullanın.
Belirli bir PHP sürümünü kullanma
PHP, Php sürümü başına birçok ortak kitaplıkla birlikte Microsoft tarafından barındırılan aracılara önceden yüklenmiştir. Derlemelerinizi çalıştırmak için Linux, macOS veya Windows aracılarını kullanabilirsiniz. Daha fazla bilgi ve php'nin önceden yüklenmiş tam sürümleri için bkz . Microsoft tarafından barındırılan aracılar.
Microsoft tarafından barındırılan Ubuntu aracısında, PHP'nin birden çok sürümü yüklenir. şu anda ayarlanmış PHP sürümünü işaret eden bir symlink /usr/bin/php
, böylece çalıştırdığınızda php
ayarlanan sürüm yürütülür.
Varsayılan sürüm dışında bir PHP sürümü kullanmak için symlink aracı kullanılarak bu sürüme update-alternatives
işaret edilebilir. Dosyanıza azure-pipelines.yml
aşağıdaki kod parçacığını ekleyerek istediğiniz PHP sürümünü ayarlayın ve phpVersion değişkeninin değerini değiştirin.
pool:
vmImage: 'ubuntu-latest'
variables:
phpVersion: 8.2
steps:
- script: |
sudo update-alternatives --set php /usr/bin/php$(phpVersion)
sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)
sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)
sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)
php -version
displayName: 'Use PHP version $(phpVersion)'
Bağımlılıkları yükleme
Bağımlılıkları yüklemek için Composer'ı kullanmak için dosyanıza azure-pipelines.yml
aşağıdaki kod parçacığını ekleyin.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
phpunit ile test edin
Phpunit ile testleri çalıştırmak için dosyanıza azure-pipelines.yml
aşağıdaki kod parçacığını ekleyin.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Derleme kaydıyla PHP uygulamasını koruma
Bu derlemenin yapıtlarını derleme kaydıyla kaydetmek için dosyanıza azure-pipelines.yml
aşağıdaki kod parçacığını ekleyin.
İsteğe bağlı olarak, arşive eklenenleri değiştirmek için rootFolderOrFile değerini özelleştirin.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Özel bir oluşturucu konumu kullanma
composer.json kök dizin yerine bir alt klasördeyse, oluşturucuya hangi dizinin kullanılacağını söylemek için bağımsız değişkenini --working-dir
kullanabilirsiniz. Örneğin, composer.json alt klasörün içindeyse pkgs
composer install --no-interaction --working-dir=pkgs
Yerleşik sistem değişkenlerini kullanarak mutlak yolu da belirtebilirsiniz:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'