Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services
Gebruik Continue integratie en continue levering van Azure Pipelines (CI/CD) om uw PHP-projecten te bouwen, implementeren en testen.
Meer informatie over het maken van een PHP-pijplijn, het implementeren van een pijplijn met een voorbeeldproject in Azure App Service en het configureren van uw omgeving.
Zie Een PHP-web-app maken in Azure App Service voor meer informatie over Azure App Service.
Vereiste voorwaarden
Product | Eisen |
---|---|
Azure DevOps | - Een Azure DevOps-project. - Een vermogen om pijplijnen uit te voeren op agents die door Microsoft worden gehost. U kunt een parallelle taak aanschaffen of u kunt een gratis laag aanvragen. - Basiskennis van YAML en Azure Pipelines. Zie Uw eerste pijplijn maken voor meer informatie. - Machtigingen: - Om een pijplijn te maken: moet u zich in de groep Inzenders bevinden en moet de groep de machtiging Maak build-pijplijn ingesteld hebben op Toestaan. Leden van de groep Projectbeheerders kunnen pijplijnen beheren. - Als u serviceverbindingen wilt maken: u moet de rol Beheerder of Maker hebben voor serviceverbindingen. |
GitHub | - Een GitHub-account . - Een GitHub-serviceverbinding om Azure Pipelines te autoriseren. |
Azuur | Een Azure-abonnement. |
Product | Eisen |
---|---|
Azure DevOps | - Een Azure DevOps-project. - Een zelfgehoste agent. Om er een te maken, zie Zelfgehoste agents. - Basiskennis van YAML en Azure Pipelines. Zie Uw eerste pijplijn maken voor meer informatie. - Machtigingen: - Om een pijplijn te maken: moet u zich in de groep Inzenders bevinden en moet de groep de machtiging Maak build-pijplijn ingesteld hebben op Toestaan. Leden van de groep Projectbeheerders kunnen pijplijnen beheren. - Als u serviceverbindingen wilt maken: u moet de rol Beheerder of Maker hebben voor serviceverbindingen. |
GitHub | - Een GitHub-account . - Een GitHub-serviceverbinding om Azure Pipelines te autoriseren. |
Azuur | Een Azure-abonnement. |
Als u gaat implementeren in Azure App Service, moet u een web-app hebben gemaakt.
Code ophalen
Als u al een app hebt op GitHub die u wilt implementeren, kunt u een pijplijn voor die code maken. Maar als u een nieuwe gebruiker bent, kunt u beter beginnen met het gebruik van onze voorbeeldcode. In dat geval forkt u de volgende opslagplaats op GitHub:
https://github.com/Azure-Samples/basic-php-composer
Een pijplijn maken
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Ga naar pijplijnen en selecteer vervolgens Nieuwe pijplijn.
Selecteer uw bronlocatie (GitHub, Azure Repos Git, Bitbucket Cloud of andere Git-opslagplaatsen).
Selecteer de opslagplaats waar uw code zich bevindt.
Selecteer PHP op het tabblad Configureren .
Zorg ervoor dat de PHP-versie 8.3 is.
Bekijk de nieuwe pijplijn. Wanneer u klaar bent, selecteert u Opslaan en uitvoeren.
U wordt gevraagd een nieuw azure-pipelines.yml-bestand door te voeren naar uw opslagplaats. Selecteer Opslaan en opnieuw uitvoeren .
Als u de pijplijn in actie wilt bekijken, selecteert u de build-job.
U hebt nu een werkende YAML-pijplijn (azure-pipelines.yml) in uw opslagplaats die u kunt aanpassen.
Wanneer u wijzigingen wilt aanbrengen in uw pijplijn, selecteert u de pijplijn op de pagina Pijplijnen en bewerkt u het azure-pipelines.yml bestand.
Lees verder voor meer informatie over een aantal veelgebruikte manieren om uw pijplijn aan te passen.
Uitrollen naar App Service
Gebruik een pijplijn om een PHP-web-app te bouwen en te implementeren in Azure App Service. Azure App Service is een op HTTP gebaseerde service voor het hosten van webtoepassingen, REST API's en mobiele back-ends.
U kunt taken gebruiken om uw bestanden te archiveren, een build-artefact te publiceren en vervolgens de Azure Web App-taak te gebruiken om te implementeren in Azure App Service.
Deze pijplijn heeft twee fasen: Bouwen en implementeren. In de buildfase wordt PHP 8.3 geïnstalleerd met composer. De app-bestanden worden gearchiveerd en geüpload naar een pakket met de naam drop
. Tijdens de implementatiefase wordt het drop
pakket als web-app geïmplementeerd in Azure App Service.
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
Build-omgeving configureren
Gebruik Azure Pipelines om uw PHP-projecten te bouwen zonder infrastructuur in te stellen.
Een specifieke PHP-versie gebruiken
PHP is vooraf geïnstalleerd op door Microsoft gehoste agents, samen met veel algemene bibliotheken per PHP-versie. U kunt Linux-, macOS- of Windows-agents gebruiken om uw builds uit te voeren. Zie voor meer informatie en de exacte versies van PHP die vooraf worden geïnstalleerd, Microsoft-gehoste agents.
Op de Door Microsoft gehoste Ubuntu-agent worden meerdere versies van PHP geïnstalleerd. Er is een symlink bij /usr/bin/php
die verwijst naar de momenteel ingestelde PHP-versie, zodat deze wordt uitgevoerd wanneer u php
uitvoert.
Als u een andere PHP-versie dan de standaardversie wilt gebruiken, kan de symlink worden verwezen naar die versie met behulp van het update-alternatives
hulpprogramma. Stel de gewenste PHP-versie in door het volgende codefragment toe te voegen aan uw azure-pipelines.yml
bestand en de waarde van de phpVersion-variabele te wijzigen.
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)'
Afhankelijkheden installeren
Als u Composer wilt gebruiken om afhankelijkheden te installeren, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Testen met phpunit
Als u tests wilt uitvoeren met phpunit, voegt u het volgende codefragment toe aan uw azure-pipelines.yml
bestand.
- script: ./phpunit
displayName: 'Run tests with phpunit'
De PHP-app behouden met de buildrecord
Als u de artefacten van deze build wilt opslaan met de buildrecord, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
U kunt desgewenst de waarde van rootFolderOrFile aanpassen om de inhoud in het archief te wijzigen.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Een aangepaste locatie voor componisten gebruiken
Als uw composer.json zich in een submap bevindt in plaats van de hoofdmap, kunt u het --working-dir
argument gebruiken om aan te geven welke map moet worden gebruikt. Als composer.json zich bijvoorbeeld in de submap pkgs
bevindt
composer install --no-interaction --working-dir=pkgs
U kunt ook het absolute pad opgeven met behulp van de ingebouwde systeemvariabelen:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'