Blog Post

Apps on Azure Blog
5 MIN READ

Transitioning from Non-managed to Managed WordPress on App Service Linux

abhishekreddy's avatar
abhishekreddy
Icon for Microsoft rankMicrosoft
Mar 10, 2025

Introduction

We've received numerous queries about WordPress on App Service, and we love it! Your feedback helps us improve our offerings. A common theme is the challenges faced with non-managed WordPress setups. Our managed WordPress offering on App Service is designed to be highly performant, secure, and seamlessly integrated with Azure services like MySQL flexible server, CDN/Front Door, Blob Storage, VNET, and Azure Communication Services.

While some specific cases might require a custom WordPress setup, most users benefit significantly from our managed service, enjoying better performance, security, easier management, and cost savings.

If you're experiencing performance issues or problems with stack updates, you might be using a non-managed WordPress setup. This could happen if you didn't use our marketplace offering or if you replaced WordPress files via FTP after setup. In such cases, check if you're using the managed WordPress service.

In this article, we'll explore how to check if you're using the managed offering and how to transition if you're not.

Why Choose Managed WordPress on App Service?

Under the Hood

  1. Optimized Container Image: We use a container image with numerous optimizations. Learn more: https://github.com/Azure/wordpress-linux-appservice
  2. Environment Variables: These configure WordPress and integrate various Azure resources. Learn more: https://github.com/Azure/wordpress-linux-appservice/blob/main/WordPress/wordpress_application_settings.md
  3. Azure resources: We integrate multiple Azure resources like App Service, MySQL flexible database, Entra ID, VNET, ACS Email, CDN/Front Door, and Blob storage, all configured via environment variables. Also, the resources individually are configured to best work with WordPress.

Benefits of Managed Offering

  1. Managed Tech Stack: Our team handles updates for PHP, Nginx, WordPress, etc., ensuring you're always on the latest versions without performance or security concerns. Read more: https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-keep-your-wordpress-website-stack-on-azure-app-service-up-to-date/3832193
  2. Managed MySQL Instance: We use Azure Database for MySQL flexible server as the WordPress database. Many customers use in-App databases, which increase maintenance costs and require manual configurations. Our managed MySQL instance is optimized (server parameters) for performance and security, and you don't need to worry about upgrades.
  3. Azure Service Integrations: Our managed offering integrates seamlessly with Azure services like CDN, Front Door, Entra ID, VNET, and Communication Services for Email. These integrations are important for enhancing the WordPress experience. For example, without ACS Email, WordPress can't send emails, affecting tasks like password resets and user invitations. We handle these integrations through environment variables, simplifying the setup. Learn more: https://github.com/Azure/wordpress-linux-appservice/blob/main/WordPress/wordpress_application_settings.md
  4. Simplified creation: Creating WordPress site involves configuring various resources, which can be complex. Our managed service simplifies this process. See how to create a WordPress site: https://learn.microsoft.com/en-us/azure/app-service/quickstart-wordpress
  5. Simplified management: Managing multiple resources can be complex. We manage this by environment variables. We extend this capability to complex WordPress configurations as well. For example, WordPress multisite: https://github.com/Azure/wordpress-linux-appservice/blob/main/WordPress/wordpress_multisite_installation.md
  6. Security: We provide best in class security – like use of managed identities: https://techcommunity.microsoft.com/blog/appsonazureblog/managed-identity-support-for-wordpress-on-app-service/4241435. We ensure all resources are within a VNET and privde phpMyAdmin for database management: https://github.com/Azure/wordpress-linux-appservice/blob/main/WordPress/wordpress_phpmyadmin.md
  7. Performance improvements: We have optimized performance with the W3TC plugin, local storage caching, and efficient use of caching, content delivery, and storage.
  8. Others: There are a bunch of other interesting features that you might be interested in:
    1. https://learn.microsoft.com/en-us/azure/app-service/overview-wordpress
    2. https://learn.microsoft.com/en-us/azure/app-service/wordpress-faq

How to Check if You're Using the Managed WordPress on App Service?

To determine if you're using the managed offering, follow these steps:

  1. Check the Container Image:
    1. Go to the App Service overview page in the Azure portal.
    2. Look for the "Container image" in the properties tab.
    3. If the image matches one of our supported images(https://github.com/Azure/wordpress-linux-appservice), you're likely using the managed service. If not, you'll need to migrate to the managed offering, which we'll cover later.
Fig 1.1: Managed WordPress - Container imageFig 1.2: Non-Managed WordPress - No container image

2. Verify Environment Variables:

    1. Access the Kudo console and navigate to the File manager.
    2. Open the /home/site/wwwroot/wp-config.php file and check if it uses the environment variables correctly.
Fig 2.1: Managed WordPress – use of genenv() function for database credentialsFig 2.2: Non-Managed WordPress – hardcoded DB credentials

3. Check Deployment Status:

    1. In the File manager, locate the /home/wp-locks/wp_deployment_status.txt file
    2. WARNING: Do not edit this file as it may cause unintended issues. Simply check the entries.
    3. If the file is missing or its contents differ from the expected entries, you're using a non-managed WordPress site. If the file is present and the contents match, you're on the managed offering.
Fig 3.1: Managed WordPress – wp_deployment_status.txt has entriesFig 3.2: Non-Managed WordPress – No /home/wp-locks folder

How to transition to the managed offering?

Transitioning to the managed WordPress on App Service can be done in two ways:

Highly Recommended Approach:

Follow these steps:

  1. Create a new managed WordPress site: Follow the steps in this setup guide to create a new managed WordPress site on App Service. https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-set-up-a-new-wordpress-website-on-azure-app-service/3729150
  2. Migrate Content Using All-in-One Migration Plugin: Use the All-in-One Migration plugin to transfer your content from the source site to the new managed site. This migration guide provides detailed instructions. Although it’s tailored for migrating from WP Engine, the steps are applicable to this scenario as well. Simply skip the WP Engine-specific steps. https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-migrate-from-wp-engine-to-wordpress-on-app-service/4259573
  1. Point Your Custom Domain to the New Site: Update your custom domain to point to the new managed WordPress site. Follow the instructions in this custom domain guide. https://techcommunity.microsoft.com/blog/appsonazureblog/how-to-use-custom-domains-with-wordpress-on-app-service/3886247
Not Recommended Approach:

Some customers ask if they can simply apply the managed container image, add environment variables, and create the necessary resources manually. While this is technically possible, it often leads to numerous errors and involves many steps. If any step goes wrong, you might not achieve the desired outcome and could potentially break your existing site.

The recommended approach ensures your existing site remains safe and intact until the new site is fully operational.

We hope you transition to the managed WordPress on App Service and enjoy the best WordPress experience!

Support and Feedback

We’re here to help! If you need any assistance, feel free to open a support request through the Microsoft Azure portal. New support request - Microsoft Azure

For more details about our offering, check out the announcement on the General Availability of WordPress on Azure App Service in the Microsoft Tech Community. Announcing the General Availability of WordPress on Azure App Service - Microsoft Tech Community.

We value your feedback and ideas on how we can improve WordPress on Azure App Service. Share your thoughts and suggestions on our Community page Post idea · Community (azure.com) or report any issues on our GitHub repository Issues · Azure/wordpress-linux-appservice (github.com).

Alternatively, you can start a conversation with us by emailing wordpressonazure@microsoft.com.

Updated Mar 12, 2025
Version 4.0
No CommentsBe the first to comment