Difficulty migrating large WordPress site to new WordPress on App Service

mytechnerdca 31 Reputation points
2022-06-29T21:10:11.233+00:00

Hi,
My colleague and I are having great difficulty migrating our client's large (300-400MB database and 300-400MB of files) WordPress site from HostGator shared hosting to the new WordPress on App Service template.

I generally support small businesses, rarely deal with domain servers, no automation/scripting, and I don't use the command line typically, I hated coding so I went into support, so I'm way more comfortable with a GUI/WebUI than a CLI, so please provide instructions accordingly. My colleague is a developer, mostly PHP/HTML/CSS/JS, has extensive experience with WordPress and managing sites, however, mostly with Apache, CPanel, and phpMyAdmin.

The new WordPress on App Service deploys an Azure Database for MySQL VM (any reason it's not MariaDB which is fully open source and generally better than MySQL?, still can't figure out why it's more expensive on Azure) and automatically connects the app service to this DB. Is the only way to access MySQL on this VM to configure it via SSH/CLI? Does it have phpMyAdmin? Can it be added? When we installed phpMyAdmin on the Web App VM (docker image) with WordPress, we couldn't get it to connect to the DB, not make it private (was publicly accessible, which for testing/development would be manageable, but definitely not good for production).

Yes there's SSH/CLI, but neither of us are really familiar with doing things this way, and shouldn't have to. We tried MySQL Workbench, but again, lack of familiarity, but at least it's a GUI, and wasn't as useful as phpMyAdmin (at least where my colleague to work comfortably).

I tried some WordPress plugins to access the DB, some could access the DB, some couldn't, but still not really useful.

As for migrating the data, upload limits and php timeouts were major issues. to get around the lack of phpMyAdmin, I tried 4 or 5 migration plugins, including ones that would breakup the data and DB into 50MB or less chunks, I tried ones that would allow the two WordPress sites to talk to each other and automatically transfer the data and DB, but none of these worked.

I tried increasing the max upload limit, but WordPress didn't see this, then it did, then it didn't.

Also, since this new template is so new, most of the documentation and any answers found through Google are essentially out of data. Additionally, since it's nginx and not Apache, configurations are even more different.

Could someone please help guide us to up to date documentation, or provide us details on how the template is configured, where we can change nginx settings (such as the equivalent to htaccess), php settings, wordpress settings, etc. and make sure they stay persistent and actually work. And how to get a secure working phpMyAdmin working? Also, any suggestions to getting the database and data moved over? Also what changes has Microsoft made to WordPress compared to standard WordPress installs? Are we better off setting up a generic Linux/Apache/PHP container in the App Service and manually installing WordPress so we can get this site migrated?

The major benefit we thought the App Service would give us is a Managed WordPress hosting environment that we didn't really need to worry about in terms of manually deploying and fully hardening a LAMP server environment, this service theoretically gives us a mostly hardened WordPress environment that we don't have to worry about and just have to manage the WordPress side of things once the site is migrated, plus it should give major performance benefits compared to HostGator and other hosting providers.

Thanks for any and all assistance in advance.

Daniel

Azure Database for MySQL
Azure Database for MySQL
An Azure managed MySQL database service for app development and deployment.
721 questions
Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
6,963 questions
0 comments No comments
{count} vote

1 answer

Sort by: Most helpful
  1. Ryan Hill 26,226 Reputation points Microsoft Employee
    2022-07-01T12:40:13.897+00:00

    There's a lot to unpack here @mytechnerdca . Now unfortunately, there's a magic bullet for your current situation but hopefully this will help point you in the right direction.

    As for why the Wordpress template for App Service uses MySQL, I can't say for certain but I'm willing to bet it has to do with the WordPress coming out the gate with using MySQL as a dependency. I can't speak for configuring WordPress with a MariaDB instance but one option you could have used to implement that would have been to utilize multi-container apps. Here, you could create a docker image based off your current hosting environment and run it on App Service. To get a feel for that, you can use appsvcorg/wordpress-alpine-php docker image to deploy to a test site and play around with.

    Another (and in my opinion most feasible) option you could have done is literally FTP the files from your client's server to an app service and configure the database endpoint. If the client's WordPress site was already configured with MariaDb, then create an instance on the portal and update wp-config.php to point to it. That's not to say there won't any hiccups along the way but it's at least viable option.

    With regards to increasing the max upload limit, try using customizing your PHP app those types of settings. It's simple to do and you can use the portal/kudu to do it. Now as far as phpMyAdmin, I know that's part of the template that uses a local in-app database but that's something you definitely don't want to use. Therefore, I'm not 100% sure how you can use phpMyAdmin with a cloud hosted database instance. But let's start with the above and see where the chips fall.

    1 person found this answer helpful.
    0 comments No comments