Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services
Verwenden Sie azure Pipelines kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), um Ihre PHP-Projekte zu erstellen, bereitzustellen und zu testen.
Erfahren Sie, wie Sie eine PHP-Pipeline erstellen, eine Pipeline mit einem Beispielprojekt in Azure App Service bereitstellen und wie Sie Ihre Umgebung konfigurieren.
Weitere Informationen zu Azure App Service finden Sie unter Erstellen einer PHP-Web-App in Azure App Service.
Voraussetzungen
Produkt | Anforderungen |
---|---|
Azure DevOps | – Ein Azure DevOps-Projekt. – Eine Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agenten. Sie können entweder einen parallelen Auftrag erwerben oder eine kostenlose Stufe anfordern. - Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline. - Erlaubnisse: – Um eine Pipeline zu erstellen: Sie müssen sich in der Gruppe Mitwirkende befinden, und die Gruppe muss über die Berechtigung Buildpipeline erstellen auf "Zulassen" festgelegt sein. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten. – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen. |
GitHub (Englisch) | - Ein GitHub-Konto . – Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines. |
Azurblau | Ein Azure-Abonnement. |
Produkt | Anforderungen |
---|---|
Azure DevOps | – Ein Azure DevOps-Projekt. – Ein selbst gehosteter Agent. Um einen Agent zu erstellen, siehe selbstgehostete Agenten. - Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline. - Erlaubnisse: – Um eine Pipeline zu erstellen: Sie müssen sich in der Gruppe Mitwirkende befinden, und die Gruppe muss über die Berechtigung Buildpipeline erstellen auf "Zulassen" festgelegt sein. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten. – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen. |
GitHub (Englisch) | - Ein GitHub-Konto . – Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines. |
Azurblau | Ein Azure-Abonnement. |
Wenn Sie azure App Service bereitstellen möchten, müssen Sie eine Webapp erstellt haben.
Code abrufen
Wenn Sie bereits über eine App auf GitHub verfügen, die Sie bereitstellen möchten, können Sie eine Pipeline für diesen Code erstellen. Wenn Sie aber ein neuer Benutzer sind, erhalten Sie möglicherweise einen besseren Einstieg, indem Sie unseren Beispielcode verwenden. In diesem Fall, erstellen Sie einen "Fork" des folgenden Repositories auf GitHub:
https://github.com/Azure-Samples/basic-php-composer
Erstellen einer Pipeline
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie zu Ihrem Projekt.
Wechseln Sie zu Pipelines, und wählen Sie dann "Neue Pipeline" aus.
Wählen Sie Ihren Quellspeicherort aus (GitHub, Azure Repos Git, Bitbucket Cloud oder andere Git-Repositorys).
Wählen Sie das Repository aus, in dem sich Ihr Code befindet.
Wählen Sie PHP auf der Registerkarte "Konfigurieren" aus .
Stellen Sie sicher, dass die PHP-Version 8.3 ist.
Überprüfen Sie Ihre neue Pipeline. Wenn Sie fertig sind, wählen Sie "Speichern" und "Ausführen" aus.
Sie werden aufgefordert, eine neue azure-pipelines.yml Datei in Ihr Repository zu übernehmen. Wählen Sie Speichern und Ausführen erneut aus.
Wenn Sie Ihre Pipeline in Betrieb sehen möchten, wählen Sie den Build-Auftrag aus.
Sie haben nun eine funktionierende YAML-Pipeline (azure-pipelines.yml) in Ihrem Repository, die Sie anpassen können!
Wenn Sie Änderungen an Ihrer Pipeline vornehmen möchten, wählen Sie ihre Pipeline auf der Seite "Pipelines " aus, und bearbeiten Sie dann die azure-pipelines.yml Datei.
Lesen Sie weiter, um einige der gängigeren Möglichkeiten zum Anpassen Ihrer Pipeline zu erfahren.
Bereitstellen in App Service
Verwenden Sie eine Pipeline, um eine PHP-Web-App zu erstellen und in Azure App Service bereitzustellen. Azure App Service ist ein HTTP-basierter Dienst zum Hosten von Webanwendungen, REST-APIs und mobilen Back-Ends.
Sie können Aufgaben verwenden, um Ihre Dateien zu archivieren, ein Buildartefakt zu veröffentlichen und dann die Azure Web App-Aufgabe zum Bereitstellen in Azure App Service zu verwenden.
Diese Pipeline verfügt über zwei Phasen: Erstellen und Bereitstellen. In der Buildphase wird PHP 8.3 mit Composer installiert. Die App-Dateien werden archiviert und in ein Paket mit dem Namen drop
hochgeladen. Während der Bereitstellungsphase wird das drop
Paket als Web-App für Azure App Service bereitgestellt.
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
Konfigurieren der Buildumgebung
Verwenden Sie Azure Pipelines, um Ihre PHP-Projekte zu erstellen, ohne Infrastruktur einzurichten.
Verwenden einer bestimmten PHP-Version
PHP ist auf von Microsoft gehosteten Agents vorinstalliert, zusammen mit vielen gängigen Bibliotheken pro PHP-Version. Sie können Linux-, macOS- oder Windows-Agents verwenden, um Ihre Builds auszuführen. Weitere Informationen und die genauen Versionen von PHP, die vorinstalliert werden, finden Sie unter von Microsoft gehosteten Agents.
Auf dem von Microsoft gehosteten Ubuntu-Agent werden mehrere Versionen von PHP installiert. Ein Symlink bei /usr/bin/php
zeigt auf die aktuell eingestellte PHP-Version, sodass bei der Ausführung von php
die festgelegte Version ausgeführt wird.
Um eine andere PHP-Version als die Standardversion zu verwenden, kann der Symlink auf diese Version mit dem update-alternatives
Tool verwiesen werden. Legen Sie die gewünschte PHP-Version fest, indem Sie der Datei den folgenden Codeausschnitt azure-pipelines.yml
hinzufügen und den Wert der phpVersion-Variablen ändern.
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)'
Installieren von Abhängigkeiten
Um Composer zum Installieren von Abhängigkeiten zu verwenden, fügen Sie der Datei den folgenden Codeausschnitt hinzu azure-pipelines.yml
.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Testen mit phpunit
Um Tests mit phpunit auszuführen, fügen Sie der Datei den folgenden Codeausschnitt hinzu azure-pipelines.yml
.
- script: ./phpunit
displayName: 'Run tests with phpunit'
Speichern der PHP-App mit dem Builddatensatz
Um die Artefakte dieses Builds mit der Build-Aufzeichnung zu speichern, fügen Sie den folgenden Codeausschnitt in Ihre azure-pipelines.yml
Datei ein.
Passen Sie optional den Wert von rootFolderOrFile an, um zu ändern, was im Archiv enthalten ist.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Verwenden eines benutzerdefinierten Speicherorts für die Composerdatei
Wenn sich Ihr composer.json in einem Unterordner anstelle des Stammverzeichnisses befindet, können Sie das --working-dir
Argument verwenden, um dem Komponisten mitzuteilen, welches Verzeichnis verwendet werden soll. Beispiel für eine „composer.json“-Datei, die sich im Unterordner pkgs
befindet:
composer install --no-interaction --working-dir=pkgs
Sie können auch den absoluten Pfad mithilfe der integrierten Systemvariablen angeben:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'