PHP-alkalmazások létrehozása és tesztelése
Azure DevOps Services
A PHP-projektek létrehozásához, üzembe helyezéséhez és teszteléséhez használja az Azure Pipelines folyamatos integrációját és folyamatos kézbesítését (CI/CD).
Megtudhatja, hogyan hozhat létre PHP-folyamatot, helyezhet üzembe egy folyamatot mintaprojekttel a Azure-alkalmazás Szolgáltatásban, és hogyan konfigurálhatja a környezetet.
A Azure-alkalmazás szolgáltatásról további információt a PHP-webalkalmazások létrehozása Azure-alkalmazás Szolgáltatásban című témakörben talál.
Előfeltételek
Győződjön meg róla, hogy rendelkezik az alábbi elemekkel:
Egy GitHub-fiók, ahol adattárat hozhat létre. Hozzon létre egyet ingyen.
Egy Azure DevOps-szervezet. Hozzon létre egyet ingyen. Ha a csapatának már van ilyenje, győződjön meg arról, hogy Ön a használni kívánt Azure DevOps-projekt rendszergazdája.
Folyamatok futtatásának lehetősége a Microsoft által üzemeltetett ügynökökön. A Microsoft által üzemeltetett ügynökök használatához az Azure DevOps-szervezetnek hozzáféréssel kell rendelkeznie a Microsoft által üzemeltetett párhuzamos feladatokhoz. Vásárolhat párhuzamos feladatot, vagy ingyenes támogatást kérhet.
Egy Azure-fiók. Ha még nem rendelkezik fiókkal, ingyen létrehozhat egyet.
Tipp.
Ha most ismerkedik ezzel, a legegyszerűbben úgy kezdheti meg az első lépéseket, ha ugyanazt az e-mail-címet használja, mint az Azure Pipelines-szervezet és az Azure-előfizetés tulajdonosa.
- Ha Azure-alkalmazás szolgáltatásban szeretné üzembe helyezni az üzembe helyezést, létre kell hoznia egy webalkalmazást.
A kód letöltése
Ha már van egy üzembe helyezni kívánt alkalmazása a GitHubon, létrehozhat egy folyamatot a kódhoz. Ha azonban ön új felhasználó, a mintakód használatával jobban kezdheti. Ebben az esetben fork a következő adattárat a GitHubon:
https://github.com/Azure-Samples/basic-php-composer
Folyamat létrehozása
Jelentkezzen be az Azure DevOps-szervezetbe, és nyissa meg a projektet.
Lépjen a folyamatokhoz, majd válassza az Új folyamat lehetőséget.
Válassza ki a forráshelyet (GitHub, Azure Repos Git, Bitbucket Cloud vagy más Git-adattárak).
Válassza ki azt az adattárat, ahol a kód található.
Válassza a PHP lehetőséget a Konfigurálás lapon.
Győződjön meg arról, hogy a PHP-verzió 8.3.
Vizsgálja meg az új folyamatot. Ha elkészült, válassza a Mentés és futtatás lehetőséget.
A rendszer kérni fogja, hogy véglegesítsen egy új azure-pipelines.yml fájlt az adattárban. Válassza a Mentés és futtatás lehetőséget.
Ha működés közben szeretné megtekinteni a folyamatot, válassza ki a buildelési feladatot.
Most már rendelkezik egy működő YAML-folyamat (azure-pipelines.yml) az adattárban, amely készen áll a testreszabásra!
Ha módosítani szeretné a folyamatot, jelölje ki a folyamatot a Folyamatok lapon, majd szerkessze a azure-pipelines.yml fájlt.
További információ a folyamat testreszabásának leggyakoribb módjairól.
Üzembe helyezés az App Service-ben
Php-webalkalmazás létrehozása és üzembe helyezése a Azure-alkalmazás Szolgáltatásban folyamat használatával. Azure-alkalmazás szolgáltatás egy HTTP-alapú szolgáltatás webalkalmazások, REST API-k és mobil háttérrendszerek üzemeltetésére.
A feladatok segítségével archiválhatja a fájlokat, közzétehet egy buildösszetevőt, majd az Azure Web App-feladattal üzembe helyezheti a Azure-alkalmazás Szolgáltatásban.
Ez a folyamat két fázisból áll: buildelés és üzembe helyezés. A buildelési szakaszban a PHP 8.3 telepítve van a zeneszerzővel. Az alkalmazásfájlokat a rendszer archiválja és feltölti egy nevű drop
csomagba. Az üzembe helyezési fázis során a drop
csomag üzembe lesz helyezve Azure-alkalmazás Szolgáltatásban webalkalmazásként.
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
Buildkörnyezet konfigurálása
Az Azure Pipelines használatával infrastruktúra beállítása nélkül hozhat létre PHP-projekteket.
Adott PHP-verzió használata
A PHP előre telepítve van a Microsoft által üzemeltetett ügynökökre, valamint a PHP-verziónkénti számos gyakori kódtárra. Linux, macOS vagy Windows-ügynökök használatával futtathatja a buildeket. További információkért és az előre telepített PHP pontos verzióiért tekintse meg a Microsoft által üzemeltetett ügynököket.
A Microsoft által üzemeltetett Ubuntu-ügynökön a PHP több verziója is telepítve van. Egy szimlink /usr/bin/php
a jelenleg beállított PHP-verzióra mutat, így a futtatáskor php
a beállított verzió fut.
Ha nem az alapértelmezett PHP-verziót szeretné használni, a symlink erre a verzióra mutathat az update-alternatives
eszközzel. Állítsa be a kívánt PHP-verziót úgy, hogy hozzáadja a következő kódrészletet a azure-pipelines.yml
fájlhoz, és módosítja a phpVersion változó értékét.
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)'
Függőségek telepítése
Ha a Composer használatával szeretne függőségeket telepíteni, adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz.
- script: composer install --no-interaction --prefer-dist
displayName: 'composer install'
Tesztelés phpunittal
A phpunittal végzett tesztek futtatásához adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz.
- script: ./phpunit
displayName: 'Run tests with phpunit'
A PHP-alkalmazás megőrzése a buildrekorddal
Ha a build összetevőit a buildrekorddal együtt szeretné menteni, adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz.
Igény szerint testre szabhatja a rootFolderOrFile értékét az archívumban található elemek módosításához.
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(system.defaultWorkingDirectory)'
includeRootFolder: false
- task: PublishBuildArtifacts@1
Egyéni zeneszerzői hely használata
Ha a composer.json a gyökérkönyvtár helyett egy almappában van, az argumentum segítségével megadhatja a --working-dir
szerzőnek, hogy melyik könyvtárat használja. Ha például a composer.json az almappában található pkgs
composer install --no-interaction --working-dir=pkgs
Az abszolút elérési utat a beépített rendszerváltozók használatával is megadhatja:
composer install --no-interaction --working-dir='$(system.defaultWorkingDirectory)/pkgs'