在 Azure Web 应用程序上安装 Composer(Linux)

问题描述 投票:0回答:1

我用 Drupal 10 制作了一个网站,在我的本地主机上使用了 Composer。然后我使用 Github action CI/CD 将其迁移到 客户端服务器(Azure Web 应用程序 Linux)。该网站运行良好。

现在我们有新的要求,我必须安装库。因为没有作曲家我们就无法安装库。

我必须在生产服务器上安装 Composer,但我可以看到服务器上已有 Composer 文件夹。

如何在服务器上安装composer?

如果我安装,composer 文件夹会被覆盖吗?会影响网站吗?

azure drupal azure-web-app-service github-actions cicd
1个回答
1
投票

为了安装 Composer 并使用 PHP + Drupal 和 Github Actions,请确保在您的 PHP 版本中添加

composer.json
,然后安装 Composer(如果 Github Actions 工作流程的构建阶段中存在 Composer.json):-

我的

composer.json
:-

{
    "require": {
        "php": "8.2.14",
        "ext-json": "*"
    }
}

我的 Github Action 工作流程:-

name: Build and deploy PHP app to Azure Web App - siliconphp

on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'

      - name: Check if composer.json exists
        id: check_files
        uses: andstor/file-existence-action@v1
        with:
          files: 'composer.json'

      - name: Run composer install if composer.json exists
        if: steps.check_files.outputs.files_exists == 'true'
        run: composer validate --no-check-publish && composer install --prefer-dist --no-progress

      - name: Zip artifact for deployment
        run: zip release.zip ./* -r

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v3
        with:
          name: php-app
          path: release.zip

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    permissions:
      id-token: write #This is required for requesting the JWT

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: php-app

      - name: Unzip artifact for deployment
        run: unzip release.zip
      
      - name: Login to Azure
        uses: azure/login@v1
        with:
          client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_CAE11DA0DFBC4E8DB1AE0A113DDCC7EE }}
          tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_8F3D8711605B401D8FBC48CACF4E93F9 }}
          subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_7DB451A63F4244D3AD08C4F85F84EFDD }}

      - name: 'Deploy to Azure Web App'
        uses: azure/webapps-deploy@v2
        id: deploy-to-webapp
        with:
          app-name: 'siliconphp'
          slot-name: 'Production'
          package: .
          

输出:-

enter image description here

您可以通过 ssh 进入 Web 应用程序来手动安装 Composer,如下所示:-

curl -sS https://getcomposer.org/installer

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.