Deploying PHP Applications to Azure App Service with Azure DevOps
October 20, 2021 by Anuraj
PHP DevOps AzureDevOps Azure
This post is about deploying PHP applications to Azure App Service with Azure DevOps. Recently I had to deploy PHP application to Azure App Service. You can deploy it to Azure App Service using FTP, since there is no compilation steps required. If you’re using Composer - Dependency Manager for PHP, you need to run the composer install before deploying the files to app service via FTP. Instead of using deploying FTP deploy the app, I choose to implement a deployment pipeline, so that I don’t want to share the FTP credentials to the developer. And if I enable continuous integration - when ever developer commit some changes, can be deployed automatically to the app service.
In the Azure DevOps I used a classic editor option to create the pipeline. Firstly I created a pipeline with empty job since there is no predefined task available for PHP deployment. In the tasks I added first Bash script task - for running the command - composer install --no-interaction --prefer-dist
. Next I added Archive files
task. In this task make sure, un select the Prepend root folder name to archive paths
option.
Next I am adding Publish Artifact
task, so that I can publish the Zip file from the directory to the artifacts location. And finally I am adding Azure App Service deployment task. In the task you need to select the Package or folder
as the $(Build.ArtifactStagingDirectory)/**/*.zip
file - which the output of the Publish Artifact Task.
And you need to choose the Runtime Stack - 7.4 - the PHP runtime you would like to use. And here is the complete build pipeline.
And here is the YAML - Exported from Azure DevOps.
Here few helpful links which talks about deploying PHP apps to Azure App Service.
Happy Programming :)
Copyright © 2024 Anuraj. Blog content licensed under the Creative Commons CC BY 2.5 | Unless otherwise stated or granted, code samples licensed under the MIT license. This is a personal blog. The opinions expressed here represent my own and not those of my employer. Powered by Jekyll. Hosted with ❤ by GitHub