Megosztás a következőn keresztül:


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

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és nyissa meg a projektet.

  2. Lépjen a folyamatokhoz, majd válassza az Új folyamat lehetőséget.

  3. Válassza ki a forráshelyet (GitHub, Azure Repos Git, Bitbucket Cloud vagy más Git-adattárak).

  4. Válassza ki azt az adattárat, ahol a kód található.

  5. Válassza a PHP lehetőséget a Konfigurálás lapon.

  6. Győződjön meg arról, hogy a PHP-verzió 8.3.

  7. Vizsgálja meg az új folyamatot. Ha elkészült, válassza a Mentés és futtatás lehetőséget.

    Mentés és futtatás gomb egy új YAML-folyamatban

  8. 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ű dropcsomagba. 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 phpa 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'