Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ı, örnek bir projeyle işlem hattını Azure App Service'e dağıtmayı ve ortamınızı yapılandırmayı öğrenin.
Azure App Service hakkında daha fazla bilgi edinmek için bkz. Azure App Service'te PHP web uygulaması oluşturma.
Önkoşullar
Ürün | Gereksinimler |
---|---|
Azure DevOps | - Azure DevOps projesi. - Microsoft tarafından barındırılan ajanlarda pipeline'ları çalıştırma yeteneği. Paralel bir iş satın alabilir veya ücretsiz katman isteyebilirsiniz. - YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma. - İzinler: - İşlem hattı oluşturmak için Katkıda Bulunanlar grubunda olmanız ve grubun Derleme işlem hattı oluşturma izinlerinin İzin Ver olarak ayarlanması gerekir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir. - Hizmet bağlantıları oluşturmak için: |
GitHub | - GitHub hesabı. - Azure Pipelines'ı yetkilendirmek için bir GitHub hizmet bağlantısı . |
Gök mavisi | Bir Azure aboneliği. |
Ürün | Gereksinimler |
---|---|
Azure DevOps | - Azure DevOps projesi. - Şirket içinde barındırılan bir aracı. Bir aracı oluşturmak için bkz. Kendi kendine barındırılan aracılar. - YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma. - İzinler: - İşlem hattı oluşturmak için Katkıda Bulunanlar grubunda olmanız ve grubun Derleme işlem hattı oluşturma izinlerinin İzin Ver olarak ayarlanması gerekir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir. - Hizmet bağlantıları oluşturmak için: |
GitHub | - GitHub hesabı. - Azure Pipelines'ı yetkilendirmek için bir GitHub hizmet bağlantısı . |
Gök mavisi | Bir Azure aboneliği. |
Azure App Service'e dağıtım yapacaksanız bir web uygulaması oluşturmanız gerekir.
Kodu al
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. GitHub'da aşağıdaki depoyu çatallayın.
https://github.com/Azure-Samples/basic-php-composer
Bir işlem hattı oluştur
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'e tıklayın ve tekrar çalıştırın.
İşlem hattınızı çalışırken izlemek istiyorsanız yapı 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ğıtım yapın
PHP web uygulaması oluşturmak ve Azure App Service'e 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 App Service'e dağıtabilirsiniz.
Bu boru 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 drop
adlı bir pakete yüklenir. Dağıtım aşamasında, drop
paketi Azure App Service'e bir web uygulaması olarak 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-22.04'
# 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.
/usr/bin/php
'daki bir symlink, şu anda ayarlanmış PHP sürümünü işaret eder, böylece php
çalıştırdığınızda 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, update-alternatives
aracı kullanılarak bu sürüme 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-22.04'
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 azure-pipelines.yml
dosyanıza 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 azure-pipelines.yml
dosyanıza aşağıdaki kod parçacığını ekleyin.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Derleme kaydıyla PHP uygulamasını saklama
Bu derlemenin artefaktlarını derleme kaydıyla kaydetmek için aşağıdaki kod parçacığını azure-pipelines.yml
adlı dosyanıza 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 --working-dir
bağımsız değişkenini kullanabilirsiniz. Örneğin, composer.json, pkgs
alt klasörünün içindeyse
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'